예제 #1
0
        public async Task <FhirResponse> Delete(IKey key)
        {
            Validate.Key(key);
            Validate.HasNoVersion(key);

            var current = await _storageService.Get(key).ConfigureAwait(false);

            return(current is { IsPresent : true }
예제 #2
0
        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));
        }
예제 #3
0
        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));
        }
예제 #4
0
 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);
 }
예제 #5
0
        public FhirResponse Delete(IKey key)
        {
            Validate.Key(key);
            Validate.HasNoVersion(key);

            var resourceStorage = GetFeature <IResourceStorageService>();

            Entry current = resourceStorage.Get(key);

            if (current != null && current.IsPresent)
            {
                return(Delete(Entry.DELETE(key, DateTimeOffset.UtcNow)));
            }
            return(Respond.WithCode(HttpStatusCode.NoContent));
        }
예제 #6
0
        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));
        }
예제 #7
0
        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));
        }
예제 #8
0
 public FhirResponse Delete(Entry entry)
 {
     Validate.Key(entry.Key);
     Store(entry);
     return(Respond.WithCode(HttpStatusCode.NoContent));
 }