BaseQueue.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using Quadarax.Application.QLiberace.Common.Entities.Base;
  2. using Quadarax.Application.QLiberace.Processor.Enums;
  3. namespace Quadarax.Application.QLiberace.Processor.Entities
  4. {
  5. public abstract class BaseQueue : QlbrcEntityTenantCode
  6. {
  7. /// <summary>
  8. /// Reference to data collection
  9. /// </summary>
  10. public long DataId { get; set; }
  11. /// <summary>
  12. /// Reference to status history collection
  13. /// </summary>
  14. public long StatusHistoryId { get; set; }
  15. /// <summary>
  16. /// Owner (abstract) key identifier. Usually entity code
  17. /// </summary>
  18. public string Owner { get; set; } = null!;
  19. /// <summary>
  20. /// Owner worker identifier who processing task
  21. /// </summary>
  22. public string AffinityWorker { get; set; } = null!;
  23. /// <summary>
  24. /// Defines item priority (default = 100). Higher value represents lower priority. Priority is used to ordering gathering data.
  25. /// </summary>
  26. public int Priority { get; set; }
  27. /// <summary>
  28. /// Defines Fully qualified name of provider class to execute item.
  29. /// </summary>
  30. public string Provider { get; set; } = null!;
  31. /// <summary>
  32. /// Record status <seealso cref="QueueStatusEnum"/>
  33. /// </summary>
  34. public QueueStatusEnum Status { get; set; }
  35. /// <summary>
  36. /// Record processing from datetime
  37. /// </summary>
  38. public DateTime StartFrom { get; set; }
  39. /// <summary>
  40. /// Record processing to datetime. If overflow then record is expired.
  41. /// </summary>
  42. public DateTime? StartTo { get; set; }
  43. /// <summary>
  44. /// Last status change timestamp
  45. /// </summary>
  46. public DateTime LastStatusChanged { get; set; }
  47. /// <summary>
  48. /// Record created timestamp
  49. /// </summary>
  50. public DateTime Created { get; set; }
  51. //public virtual QueueData RootData { get; set; } = null!;
  52. //public virtual StatusHistory RootStatusHistory { get; set; } = null!;
  53. public virtual void CloneFrom(BaseQueue source)
  54. {
  55. Id = source.Id;
  56. DataId = source.DataId;
  57. StatusHistoryId = source.StatusHistoryId;
  58. Owner = source.Owner;
  59. AffinityWorker = source.AffinityWorker;
  60. Status = source.Status;
  61. StartFrom = source.StartFrom;
  62. StartTo = source.StartTo;
  63. LastStatusChanged = source.LastStatusChanged;
  64. Created = source.Created;
  65. Modified = source.Modified;
  66. Modifier = source.Modifier;
  67. TenantCode = source.TenantCode;
  68. Priority = source.Priority;
  69. Provider = source.Provider;
  70. }
  71. }
  72. }