private ICodeSystemCode QueryCodeSystemCode(Guid codeGuid) { var factory = new CodeSystemCodeFactory(this.codeSystems.Value); var dto = this.GetBaseQuery(true).SingleOrDefault(d => d.CodeGUID == codeGuid); return(dto != null?factory.Build(dto) : null); }
private async Task <IReadOnlyCollection <ICodeSystemCode> > GetCodesByBatch( IReadOnlyCollection <string> codes, IReadOnlyCollection <Guid> codeSystemGuids) { var dtos = this.GetBaseQuery(true).Where(dto => codes.Contains(dto.CodeCD)); if (codeSystemGuids.Any()) { dtos = dtos.Where(dto => codeSystemGuids.Contains(dto.CodeSystemGUID)); } var factory = new CodeSystemCodeFactory(this.codeSystems.Value); var results = await dtos.ToListAsync().ConfigureAwait(false); return(results.Select(factory.Build).ToList()); }
private IReadOnlyCollection <ICodeSystemCode> QueryCodeSystemCodeList(bool includeRetired, Guid[] codeGuids) { if (!codeGuids.Any()) { return(new List <ICodeSystemCode>()); } var factory = new CodeSystemCodeFactory(this.codeSystems.Value); var dtos = this.GetBaseQuery(includeRetired).Where(dto => codeGuids.Contains(dto.CodeGUID)); if (!includeRetired) { dtos = dtos.Where(dto => dto.RetiredFLG == "N"); } return(dtos.ToList().Select(factory.Build).ToList()); }
private async Task <PagedCollection <ICodeSystemCode> > CreatePagedCollectionAsync( IQueryable <CodeSystemCodeDto> source, IPagerSettings pagerSettings) { var defaultItemsPerPage = this.sharedContext.Settings.DefaultItemsPerPage; var pagingStrategy = this.pagingStrategyFactory.GetPagingStrategy <ICodeSystemCode>(defaultItemsPerPage); pagingStrategy.EnsurePagerSettings(pagerSettings); var count = await source.CountAsync().ConfigureAwait(false); var items = await source.OrderBy(dto => dto.CodeDSC) .Skip((pagerSettings.CurrentPage - 1) * pagerSettings.ItemsPerPage) .Take(pagerSettings.ItemsPerPage) .ToListAsync().ConfigureAwait(false); var factory = new CodeSystemCodeFactory(this.codeSystems.Value); return(pagingStrategy.CreatePagedCollection( items.Select(i => this.codeSystemCodeCachingManager.GetOrSet(i.CodeGUID, () => factory.Build(i)) ).Values(), count, pagerSettings)); }