public IActionResult ProviderSearch([FromQuery] string filter, [FromQuery] int pageNumber, [FromQuery] int pageSize) { var request = new ProviderSearchRequest() { PageNumber = pageNumber, PageSize = pageSize, SearchTerm = filter }; return(Ok(_providerService.SearchProviderAsync(request).Result)); }
public async Task <PagedResult <ProviderGridItem> > SearchProviderAsync(ProviderSearchRequest request) { var items = new ProviderGridItem[] { }; var pagedResult = new PagedResult <ProviderGridItem>(); HttpResponseMessage response = await client.GetAsync(QueryWithWhereClause(request)).ConfigureAwait(false); if (response.IsSuccessStatusCode) { items = await response.Content.ReadAsAsync <ProviderGridItem[]>(); } pagedResult.PageSize = request.PageSize.GetValueOrDefault(100); pagedResult.PageNumber = request.PageNumber.GetValueOrDefault(1); pagedResult.TotalRowCount = items.Count(); pagedResult.Items = items.Skip((pagedResult.PageNumber - 1) * pagedResult.PageSize).Take(pagedResult.PageSize).ToArray(); return(pagedResult); }
private string QueryWithWhereClause(ProviderSearchRequest request) { var selectClause = QuerySelectClause(); var whereClause = new StringBuilder(); whereClause.Append(QuerySelectClause()); if (!string.IsNullOrWhiteSpace(request.SearchTerm)) { whereClause.Append(" where"); whereClause.Append($" provider_name like %27%25{request.SearchTerm}%25%27"); whereClause.Append(" OR "); whereClause.Append($"federal_provider_number like %27%25{request.SearchTerm}%25%27"); whereClause.Append(" OR "); whereClause.Append($"provider_zip_code like %27%25{request.SearchTerm}%25%27"); } return(whereClause.ToString()); }
public async Task <ActionResult> ProviderSearch([FromBody] ProviderSearchRequest request) { var criteria = new ProviderSearchCriteriaStructure() { Keyword = request.Keyword, Region = request.Region, TopResults = request.TopResults, Town = request.Town }; _log.LogInformation($"Provider search with keyword {request.Keyword}"); var result = await _service.ProviderSearch(_log, criteria); var response = new ProviderSearchResponse() { ODataContext = result.ODataContext, ODataCount = result.ODataCount, SearchFacets = result.SearchFacets, Value = result.Value.Select(i => new ProviderSearchResponseItem() { CourseDirectoryName = i.CourseDirectoryName, id = i.id, Name = i.Name, Postcode = i.Postcode, ProviderAlias = i.ProviderAlias, ProviderStatus = i.ProviderStatus, Region = i.Region, Status = i.Status, Town = i.Town, TradingName = i.TradingName, UKPRN = i.UKPRN }) }; return(new OkObjectResult(response)); }