public async Task <IActionResult> Search([FromHeader(Name = "X-RequestId")] string id, [FromBody] PersonSearchRequest personSearchRequest)
        {
            using (LogContext.PushProperty("FileId", " - FileId: " + personSearchRequest?.FileID))
            {
                if (id == null || !Guid.TryParse(id, out var searchRequestId))
                {
                    searchRequestId = Guid.NewGuid();
                }

                _logger.LogInformation($"Successfully received new search request [{searchRequestId}].");

                _tracer.ActiveSpan.SetTag("searchRequestId", $"{searchRequestId}");

                SearchRequest searchRequest = new SearchRequest
                {
                    Person          = personSearchRequest,
                    SearchRequestId = searchRequestId,
                    FileId          = personSearchRequest.FileID,
                    DataPartners    = personSearchRequest.DataProviders.Select(x => new DataPartner {
                        Name = x.Name, Completed = false
                    })
                };

                _logger.LogInformation($"Save Complete Request [{searchRequestId}] to cache. ");
                await _cacheService.SaveRequest(searchRequest);

                _logger.LogDebug($"Attempting to publish ${nameof(PersonSearchOrdered)} to destination queue.");

                await _dispatcher.Dispatch(personSearchRequest, searchRequestId);

                _logger.LogInformation($"Successfully published ${nameof(PersonSearchOrdered)} to destination queue.");

                return(Accepted(new PersonSearchResponse(searchRequestId)));
            }
        }
Example #2
0
        public async Task <IActionResult> Search([FromHeader(Name = "X-RequestId")] string id, [FromBody] PersonSearchRequest personSearchRequest)
        {
            if (id == null || !Guid.TryParse(id, out var searchRequestId))
            {
                searchRequestId = Guid.NewGuid();
            }

            _logger.LogInformation($"Successfully received new search request [{searchRequestId}].");

            _tracer.ActiveSpan.SetTag("searchRequestId", $"{searchRequestId}");

            _logger.LogDebug($"Attempting to publish ${nameof(PersonSearchOrdered)} to destination queue.");

            await _busControl.Publish <PersonSearchOrdered>(new PersonSearchOrderEvent(searchRequestId)
            {
                Person = personSearchRequest
            });

            _logger.LogInformation($"Successfully published ${nameof(PersonSearchOrdered)} to destination queue.");

            return(Accepted(new PersonSearchResponse(searchRequestId)));
        }