using Quadarax.Application.QLiberace.Processor.Entities; using Quadarax.Application.QLiberace.Common.Domain; using Quadarax.Application.QLiberace.Processor.Enums; using Quadarax.Foundation.Core.Data; using Quadarax.Foundation.Core.Data.Domain; using Quadarax.Foundation.Core.Data.Interface.Domain; using Quadarax.Foundation.Core.Value.Extensions; namespace Quadarax.Application.QLiberace.Processor.Repositories { public class RepoProcessingQueue : BaseRepoQueue { public RepoProcessingQueue(IUnitOfWork unitOfWork, QlbrcContext operationContext) : base(unitOfWork, operationContext) { } public IQueryable GetAssignedOrWorking(string workerPwin, int takeCount) { return Query(new Paging(takeCount)).Where(x => x.Status.In(QueueStatusEnum.Assigned, QueueStatusEnum.Working) && x.AffinityWorker == workerPwin). OrderBy(x=>x.Priority).ThenBy(x=>x.Created); } public ProcessingQueue NewFromPending(PendingQueue pending) { var processing = New(); processing.CloneFrom(pending); Set(processing); //Context.Commit(); return processing; } } }