예제 #1
0
        public ResourceUpsertedEvent(Resource resource, SaveOutcomeType outcome)
        {
            EnsureArg.IsNotNull(resource, nameof(resource));

            Resource = resource;
            Outcome  = outcome;
        }
예제 #2
0
        public UpsertOutcome(ResourceWrapper wrapper, SaveOutcomeType outcomeType)
        {
            EnsureArg.IsNotNull(wrapper, nameof(wrapper));

            Wrapper     = wrapper;
            OutcomeType = outcomeType;
        }
예제 #3
0
        public SaveOutcome(ResourceElement resource, SaveOutcomeType outcome)
        {
            EnsureArg.IsNotNull(resource);

            Resource = resource;
            Outcome  = outcome;
        }
예제 #4
0
        public SaveOutcome(RawResourceElement rawResourceElement, SaveOutcomeType outcome)
        {
            EnsureArg.IsNotNull(rawResourceElement, nameof(rawResourceElement));

            RawResourceElement = rawResourceElement;
            Outcome            = outcome;
        }
예제 #5
0
        public UpsertOutcome(ResourceWrapper wrapper, SaveOutcomeType outcomeType)
        {
            EnsureArg.IsNotNull(wrapper, nameof(wrapper));

            Wrapper     = wrapper;
            OutcomeType = outcomeType;

            if (outcomeType == SaveOutcomeType.Updated)
            {
                wrapper.RawResource.IsMetaSet = false;
            }
        }
        private ConditionalUpsertResourceRequest SetupConditionalUpdate(SaveOutcomeType outcomeType, ResourceElement requestResource, params SearchResultEntry[] searchResults)
        {
            IReadOnlyList <Tuple <string, string> > list = new[] { Tuple.Create("_tag", Guid.NewGuid().ToString()) };

            _searchService.SearchAsync(Arg.Any <string>(), list, CancellationToken.None)
            .Returns(new SearchResult(searchResults, Enumerable.Empty <Tuple <string, string> >().ToArray(), Enumerable.Empty <(string, string)>().ToArray(), null));

            _fhirDataStore.UpsertAsync(Arg.Any <ResourceWrapper>(), Arg.Any <WeakETag>(), true, true, Arg.Any <CancellationToken>())
            .Returns(x => new UpsertOutcome(x.ArgAt <ResourceWrapper>(0), outcomeType));

            var message = new ConditionalUpsertResourceRequest(requestResource, list);

            return(message);
        }