RepoPendingQueue.cs 1008 B

123456789101112131415161718192021222324
  1. using Quadarax.Application.QLiberace.Processor.Entities;
  2. using Quadarax.Application.QLiberace.Common.Domain;
  3. using Quadarax.Foundation.Core.Data.Domain;
  4. using Quadarax.Foundation.Core.Data.Interface.Domain;
  5. using Quadarax.Application.QLiberace.Processor.Enums;
  6. using Quadarax.Foundation.Core.Data;
  7. namespace Quadarax.Application.QLiberace.Processor.Repositories
  8. {
  9. public class RepoPendingQueue : BaseRepoQueue<PendingQueue>
  10. {
  11. public RepoPendingQueue(IUnitOfWork<IDataDomain> unitOfWork, QlbrcContext operationContext) : base(unitOfWork, operationContext)
  12. {
  13. }
  14. public IQueryable<PendingQueue> GetPending(int takeCount)
  15. {
  16. var now = DateTime.Now;
  17. return Query(new Paging(takeCount)).Where(x =>
  18. x.Status == QueueStatusEnum.Pending && string.IsNullOrEmpty(x.AffinityWorker) && x.StartFrom <= now && x.StartTo >= now).
  19. OrderBy(x=>x.Priority).ThenBy(x=>x.Created);
  20. }
  21. }
  22. }