コード例 #1
0
        public async Task <OneOf <NotFound, AlreadyOnboarded, Success> > Execute(DocumentClient client, Configuration configuration, UpdateProviderOnboarded request)
        {
            var documentUri = UriFactory.CreateDocumentUri(
                configuration.DatabaseId,
                configuration.ProviderCollectionName,
                request.ProviderId.ToString());

            try
            {
                var response = await client.ReadDocumentAsync <Provider>(documentUri);

                var provider = response.Document;

                if (provider.Status == ProviderStatus.Onboarded)
                {
                    return(new AlreadyOnboarded());
                }

                provider.Status        = ProviderStatus.Onboarded;
                provider.DateOnboarded = request.UpdatedDateTime;
                provider.DateUpdated   = request.UpdatedDateTime;
                provider.UpdatedBy     = request.UpdatedBy.UserId;

                await client.ReplaceDocumentAsync(documentUri, provider);

                return(new Success());
            }
            catch (DocumentClientException dex) when(dex.StatusCode == HttpStatusCode.NotFound)
            {
                return(new NotFound());
            }
        }
        public OneOf <NotFound, AlreadyOnboarded, Success> Execute(InMemoryDocumentStore inMemoryDocumentStore, UpdateProviderOnboarded request)
        {
            var provider = inMemoryDocumentStore.Providers.All.FirstOrDefault(p => p.Id == request.ProviderId);

            if (provider == null)
            {
                return(new NotFound());
            }

            if (provider.Status == ProviderStatus.Onboarded)
            {
                return(new AlreadyOnboarded());
            }

            provider.Status        = ProviderStatus.Onboarded;
            provider.DateOnboarded = request.UpdatedDateTime;
            provider.DateUpdated   = request.UpdatedDateTime;
            provider.UpdatedBy     = request.UpdatedBy.UserId;

            inMemoryDocumentStore.Providers.Save(provider);

            return(new Success());
        }