RepoProcessingQueue.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. using Quadarax.Application.QLiberace.Processor.Entities;
  2. using Quadarax.Application.QLiberace.Common.Domain;
  3. using Quadarax.Application.QLiberace.Processor.Enums;
  4. using Quadarax.Foundation.Core.Data;
  5. using Quadarax.Foundation.Core.Data.Domain;
  6. using Quadarax.Foundation.Core.Data.Interface.Domain;
  7. using Quadarax.Foundation.Core.Value.Extensions;
  8. namespace Quadarax.Application.QLiberace.Processor.Repositories
  9. {
  10. public class RepoProcessingQueue : BaseRepoQueue<ProcessingQueue>
  11. {
  12. public RepoProcessingQueue(IUnitOfWork<IDataDomain> unitOfWork, QlbrcContext operationContext) : base(unitOfWork, operationContext)
  13. {
  14. }
  15. public IQueryable<ProcessingQueue> GetAssignedOrWorking(string workerPwin, int takeCount)
  16. {
  17. return Query(new Paging(takeCount)).Where(x =>
  18. x.Status.In(QueueStatusEnum.Assigned, QueueStatusEnum.Working) && x.AffinityWorker == workerPwin).
  19. OrderBy(x=>x.Priority).ThenBy(x=>x.Created);
  20. }
  21. public ProcessingQueue NewFromPending(PendingQueue pending)
  22. {
  23. var processing = New();
  24. processing.CloneFrom(pending);
  25. Set(processing);
  26. //Context.Commit();
  27. return processing;
  28. }
  29. }
  30. }