public FhirResponse VersionSpecificUpdate(IKey versionedkey, Resource resource) { Validate.HasTypeName(versionedkey); Validate.HasVersion(versionedkey); Key key = versionedkey.WithoutVersion(); Entry current = GetFeature <IResourceStorageService>().Get(key); Validate.IsSameVersion(current.Key, versionedkey); return(this.Put(key, resource)); }
public async Task <FhirResponse> Create(IKey key, Resource resource) { Validate.Key(key); Validate.HasTypeName(key); Validate.ResourceType(key, resource); key = key.CleanupForCreate(); var result = await Store(Entry.Post(key, resource)).ConfigureAwait(false); return(Respond.WithResource(HttpStatusCode.Created, result)); }
public FhirResponse Create(IKey key, Resource resource) { Validate.Key(key); Validate.HasTypeName(key); Validate.ResourceType(key, resource); Validate.HasNoResourceId(key); Validate.HasNoVersion(key); Entry result = Store(Entry.POST(key, resource)); return(Respond.WithResource(HttpStatusCode.Created, result)); }
private static void ValidateKey(IKey key, bool withVersion = false) { Validate.HasTypeName(key); Validate.HasResourceId(key); if (withVersion) { Validate.HasVersion(key); } else { Validate.HasNoVersion(key); } Validate.Key(key); }
public FhirResponse Put(Entry entry) { Validate.Key(entry.Key); Validate.ResourceType(entry.Key, entry.Resource); Validate.HasTypeName(entry.Key); Validate.HasResourceId(entry.Key); var storageService = GetFeature <IResourceStorageService>(); Entry current = storageService.Get(entry.Key.WithoutVersion()); Entry result = Store(entry); return(Respond.WithResource(current != null ? HttpStatusCode.OK : HttpStatusCode.Created, result)); }
public FhirResponse Create(Entry entry) { Validate.Key(entry.Key); Validate.HasTypeName(entry.Key); Validate.ResourceType(entry.Key, entry.Resource); if (entry.State != EntryState.Internal) { Validate.HasNoResourceId(entry.Key); Validate.HasNoVersion(entry.Key); } Entry result = Store(entry); return(Respond.WithResource(HttpStatusCode.Created, result)); }