public async Task <IActionResult> Index(string searchText)
        {
            if (string.IsNullOrWhiteSpace(searchText))
            {
                return(View());
            }

            var request = new SearchRequest()
            {
                SearchText = searchText
            };
            await _context.SearchRequests.AddAsync(request);

            await _context.SaveChangesAsync();

            var res = _searchManager.Search(searchText);

            if (!res.IsOk || res.Value == null)
            {
                _logger.LogInformation(res.ErrorMessage);
                return(View("Index", new SearchResponseDto()
                {
                    HasError = true,
                    Error = res.ErrorMessage
                }));
            }

            res.Value.SearchRequestId = request.Id;
            await _context.SearchResponses.AddAsync(res.Value);

            await _context.SaveChangesAsync();

            var resultDto    = _mapper.Map <SearchResponseDto>(res.Value);
            var searchSystem = await _context.SearchSystems.FindAsync(res.Value?.SearchSystemId);

            resultDto.SearchSystem = searchSystem?.SystemName ?? resultDto.SearchSystem;

            return(View("Index", resultDto));
        }
 public async Task SaveChangesAsync()
 {
     await _context.SaveChangesAsync();
 }