public async Task <FhirResponse> AddMeta(IKey key, Parameters parameters) { var entry = await _storageService.Get(key).ConfigureAwait(false); if (entry != null && !entry.IsDeleted()) { entry.Resource.AffixTags(parameters); await _storageService.Add(entry).ConfigureAwait(false); } return(_responseFactory.GetMetadataResponse(entry, key)); }
public FhirResponse History(IKey key, HistoryParameters parameters) { IResourceStorageService storageService = GetFeature <IResourceStorageService>(); if (storageService.Get(key) == null) { return(Respond.NotFound(key)); } IHistoryService historyExtension = this.GetFeature <IHistoryService>(); return(CreateSnapshotResponse(historyExtension.History(key, parameters))); }
private FhirResponse CreateSnapshotResponse(Snapshot snapshot, int pageIndex = 0) { IPagingService pagingExtension = this.FindExtension <IPagingService>(); IResourceStorageService resourceStorage = this.FindExtension <IResourceStorageService>(); if (pagingExtension == null) { Bundle bundle = new Bundle() { Type = snapshot.Type, Total = snapshot.Count }; bundle.Append(resourceStorage.Get(snapshot.Keys)); return(responseFactory.GetFhirResponse(bundle)); } else { Bundle bundle = pagingExtension.StartPagination(snapshot).GetPage(pageIndex); return(responseFactory.GetFhirResponse(bundle)); } }