public Task <CasePlanResult> Get(string id, CancellationToken token) { var result = _definitions.FirstOrDefault(d => d.AggregateId == id); if (result == null) { return(Task.FromResult((CasePlanResult)null)); } return(Task.FromResult(CasePlanResult.ToDto(result))); }
public async Task <CasePlanResult> Get(string id, CancellationToken token) { var result = await _dbContext.CasePlans .FirstOrDefaultAsync(_ => _.AggregateId == id, token); if (result == null) { return(null); } return(CasePlanResult.ToDto(result)); }
public async Task <SearchResult <CasePlanResult> > Find(FindCasePlansParameter parameter, CancellationToken token) { IQueryable <CasePlanAggregate> result = _dbContext.CasePlans; if (MAPPING_WORKFLOWDEFINITION_TO_PROPERTYNAME.ContainsKey(parameter.OrderBy)) { result = result.InvokeOrderBy(MAPPING_WORKFLOWDEFINITION_TO_PROPERTYNAME[parameter.OrderBy], parameter.Order); } if (!string.IsNullOrWhiteSpace(parameter.CaseFileId)) { result = result.Where(r => r.CaseFileId == parameter.CaseFileId); } if (!string.IsNullOrWhiteSpace(parameter.Text)) { result = result.Where(r => r.Name.IndexOf(parameter.Text, StringComparison.InvariantCultureIgnoreCase) >= 0); } if (!string.IsNullOrWhiteSpace(parameter.CasePlanId)) { result = result.Where(r => r.CasePlanId == parameter.CasePlanId); } int totalLength = result.Count(); result = result.Skip(parameter.StartIndex).Take(parameter.Count); var content = await result.ToListAsync(token); if (parameter.TakeLatest) { content = content.OrderByDescending(r => r.Version).GroupBy(r => r.CasePlanId).Select(r => r.First()).ToList(); } return(new SearchResult <CasePlanResult> { StartIndex = parameter.StartIndex, Count = parameter.Count, TotalLength = totalLength, Content = content.Select(_ => CasePlanResult.ToDto(_)).ToList() }); }