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); }
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); }