Ejemplo n.º 1
0
        public async Task <IActionResult> ReindexSingleResource(string typeParameter, string idParameter)
        {
            CheckIfReindexIsEnabledAndRespond();

            ReindexSingleResourceResponse response = await _mediator.SendReindexSingleResourceRequestAsync(Request.Method, typeParameter, idParameter, HttpContext.RequestAborted);

            var result = FhirResult.Create(response.ParameterResource, HttpStatusCode.OK);

            return(result);
        }
Ejemplo n.º 2
0
        public static async Task <ReindexSingleResourceResponse> SendReindexSingleResourceRequestAsync(
            this IMediator mediator,
            string resourceType,
            string resourceId,
            CancellationToken cancellationToken)
        {
            EnsureArg.IsNotNull(mediator, nameof(mediator));

            var request = new ReindexSingleResourceRequest(resourceType, resourceId);

            ReindexSingleResourceResponse response = await mediator.Send(request, cancellationToken);

            return(response);
        }
        public async Task GivenDuplicateNewSearchIndices_WhenHandle_ThenBothValuesArePresentInResponse(string httpMethodName)
        {
            SetupDataStoreToReturnDummyResourceWrapper();

            var searchParamInfo = new SearchParameterInfo("newSearchParam", "newSearchParam");
            var searchIndex     = new SearchIndexEntry(searchParamInfo, new StringSearchValue("name1"));
            var searchIndex2    = new SearchIndexEntry(searchParamInfo, new StringSearchValue("name2"));
            var searchIndices   = new List <SearchIndexEntry>()
            {
                searchIndex, searchIndex2
            };

            _searchIndexer.Extract(Arg.Any <ResourceElement>()).Returns(searchIndices);

            var request = GetReindexRequest(httpMethodName);

            ReindexSingleResourceResponse response = await _reindexHandler.Handle(request, _cancellationToken);

            Assert.NotNull(response.ParameterResource);

            Parameters parameterResponse     = response.ParameterResource.ToPoco <Parameters>();
            bool       newSearchParamPresent = false;
            bool       name1Present          = false;
            bool       name2Present          = false;

            foreach (Parameters.ParameterComponent param in parameterResponse.Parameter)
            {
                if (param.Name == "newSearchParam")
                {
                    newSearchParamPresent = true;
                    if (param.Value.ToString() == "name1")
                    {
                        name1Present = true;
                    }

                    if (param.Value.ToString() == "name2")
                    {
                        name2Present = true;
                    }
                }
            }

            Assert.True(newSearchParamPresent);
            Assert.True(name1Present);
            Assert.True(name2Present);

            await ValidateUpdateCallBasedOnHttpMethodType(httpMethodName);
        }
        public async Task GivenNewSearchIndices_WhenHandle_ThenTheirValuesArePresentInResponse()
        {
            SetupDataStoreToReturnDummyResourceWrapper();

            var searchIndex  = new SearchIndexEntry(new SearchParameterInfo("newSearchParam"), new NumberSearchValue(1));
            var searchIndex2 = new SearchIndexEntry(new SearchParameterInfo("newSearchParam2"), new StringSearchValue("paramValue"));

            var searchIndices = new List <SearchIndexEntry>()
            {
                searchIndex, searchIndex2
            };

            _searchIndexer.Extract(Arg.Any <ResourceElement>()).Returns(searchIndices);

            var request = GetReindexRequest();

            ReindexSingleResourceResponse response = await _reindexHandler.Handle(request, _cancellationToken);

            Assert.NotNull(response.ParameterResource);

            Parameters parameterResponse      = response.ParameterResource.ToPoco <Parameters>();
            bool       newSearchParamPresent  = false;
            bool       newSearchParam2Present = false;

            foreach (Parameters.ParameterComponent param in parameterResponse.Parameter)
            {
                if (param.Name == "newSearchParam")
                {
                    newSearchParamPresent = true;
                    Assert.Equal("1", param.Value.ToString());
                }

                if (param.Name == "newSearchParam2")
                {
                    newSearchParam2Present = true;
                    Assert.Equal("paramValue", param.Value.ToString());
                }
            }

            Assert.True(newSearchParamPresent);
            Assert.True(newSearchParam2Present);
        }