public async Task <SearchResult <CasePlanInstanceResult> > Find(FindCasePlanInstancesParameter parameter, CancellationToken token) { IQueryable <CasePlanInstanceAggregate> result = _dbContext.CasePlanInstances; if (!string.IsNullOrWhiteSpace(parameter.CasePlanId)) { result = result.Where(r => r.CasePlanId == parameter.CasePlanId); } if (!string.IsNullOrWhiteSpace(parameter.CaseFileId)) { result = result.Where(r => r.CaseFileId == parameter.CaseFileId); } if (MAPPING_WORKFLOWINSTANCE_TO_PROPERTYNAME.ContainsKey(parameter.OrderBy)) { result = result.InvokeOrderBy(MAPPING_WORKFLOWINSTANCE_TO_PROPERTYNAME[parameter.OrderBy], parameter.Order); } int totalLength = result.Count(); result = result.Skip(parameter.StartIndex).Take(parameter.Count); var content = await result.ToListAsync(); return(new SearchResult <CasePlanInstanceResult> { StartIndex = parameter.StartIndex, Count = parameter.Count, TotalLength = totalLength, Content = content.Select(_ => CasePlanInstanceResult.ToDto(_)).ToList() }); }
public Task <FindResponse <CasePlanInstanceAggregate> > Find(FindCasePlanInstancesParameter parameter, CancellationToken token) { IQueryable <CasePlanInstanceAggregate> result = _instances.AsQueryable(); if (!string.IsNullOrWhiteSpace(parameter.CasePlanId)) { result = result.Where(_ => _.CasePlanId == parameter.CasePlanId); } if (!string.IsNullOrWhiteSpace(parameter.CaseFileId)) { result = result.Where(_ => _.CaseFileId == parameter.CaseFileId); } if (MAPPING_WORKFLOWINSTANCE_TO_PROPERTYNAME.ContainsKey(parameter.OrderBy)) { result = result.InvokeOrderBy(MAPPING_WORKFLOWINSTANCE_TO_PROPERTYNAME[parameter.OrderBy], parameter.Order); } int totalLength = result.Count(); result = result.Skip(parameter.StartIndex).Take(parameter.Count); return(Task.FromResult(new FindResponse <CasePlanInstanceAggregate> { StartIndex = parameter.StartIndex, Count = parameter.Count, TotalLength = totalLength, Content = result.ToList() })); }
public async Task <FindResponse <CasePlanInstanceAggregate> > Find(FindCasePlanInstancesParameter parameter, CancellationToken token) { using (var lck = await _dbContext.Lock()) { IQueryable <CasePlanInstanceModel> result = _dbContext.CasePlanInstances .Include(_ => _.Roles).ThenInclude(_ => _.Claims) .Include(_ => _.Files) .Include(_ => _.WorkerTasks) .Include(_ => _.Children).ThenInclude(_ => _.Children); if (!string.IsNullOrWhiteSpace(parameter.CasePlanId)) { result = result.Where(r => r.CasePlanId == parameter.CasePlanId); } if (MAPPING_WORKFLOWINSTANCE_TO_PROPERTYNAME.ContainsKey(parameter.OrderBy)) { result = result.InvokeOrderBy(MAPPING_WORKFLOWINSTANCE_TO_PROPERTYNAME[parameter.OrderBy], parameter.Order); } int totalLength = result.Count(); result = result.Skip(parameter.StartIndex).Take(parameter.Count); var content = await result.ToListAsync(); return(new FindResponse <CasePlanInstanceAggregate> { StartIndex = parameter.StartIndex, Count = parameter.Count, TotalLength = totalLength, Content = content.Select(_ => _.ToDomain()).ToList() }); } }