public static async Task <HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestMessage req, TraceWriter log) { KrogerClient krogerClient = Startup.KrogerClient; SearchAllRequest searchAllRequest = JsonConvert.DeserializeObject <SearchAllRequest>(req.Content.ReadAsStringAsync().Result); SearchAllResponse searchAllResponse = krogerClient.SearchAll(searchAllRequest); ProductsDetailsResponse productsDetailsResponse = await krogerClient.ProductsDetailsAsync(new ProductsDetailsRequest() { UPCs = searchAllResponse.Upcs }); return(req.CreateResponse(HttpStatusCode.OK, new { productsDetailsResponse.Products } )); }
public void ConvertToDataSearchRequest(SearchAllRequest <TModel> request, SearchAllRequest <TData> result) { if (request.Filter != null) { result.Filter = request.Filter.RemapForType <TModel, TData, bool>(); } if (request.Sort != null && request.Sort.Count() > 0) { List <SortExpression <TData> > sortList = new List <SortExpression <TData> >(); foreach (var sortExpression in request.Sort.ToList()) { var sort = sortExpression.Sort.RemapForType <TModel, TData, object>(); sortList.Add(new SortExpression <TData>(sort, sortExpression.IsAscending)); } result.Sort = sortList.ToArray(); } }
/// <summary> /// Peform a keyword search across site content /// </summary> /// <param name="request"></param> /// <returns></returns> public async Task <SearchAllResponse> SearchAllAsync(SearchAllRequest request) { SearchAllResponse response = null; string urlQuery = string.Format(SITE_SEARCH_ALL, request.Start, request.Count, request.Query, 0); //0 products tab IRestRequest restRequest = new RestRequest(urlQuery, Method.POST); restRequest.AddCookie("_", "_"); //a cookie is required by the request contract, //restsharp requires that this not be an empty string in order for the header be set IRestResponse <SearchAllResponse> restResponse = await _client.ExecutePostTaskAsync <SearchAllResponse>(restRequest); response = restResponse.Data; return(response); }
/// <summary> /// Peform a keyword search across site content /// </summary> /// <param name="request"></param> /// <returns></returns> public SearchAllResponse SearchAll(SearchAllRequest request) { return(SearchAllAsync(request).Result); }