public async Task <bool> ShopperHasPurchasedProduct(string shopperId, string productId) { bool hasPurchased = false; try { VtexOrderList vtexOrderList = await _productReviewRepository.ListOrders($"q={shopperId}"); var orderIds = vtexOrderList.List.Select(o => o.OrderId); foreach (string orderId in orderIds) { VtexOrder vtexOrder = await _productReviewRepository.GetOrderInformation(orderId); var productIds = vtexOrder.Items.Select(i => i.ProductId); hasPurchased = productIds.Contains(productId); if (hasPurchased) { break; } } } catch (Exception ex) { _context.Vtex.Logger.Error("ShopperHasPurchasedProduct", null, "Request Error", ex); } return(hasPurchased); }
public async Task <VtexOrderList> ListOrders(string queryString) { VtexOrderList vtexOrderList = new VtexOrderList(); try { var request = new HttpRequestMessage { Method = HttpMethod.Get, RequestUri = new Uri($"http://{this._httpContextAccessor.HttpContext.Request.Headers[VTEX_ACCOUNT_HEADER_NAME]}.{ENVIRONMENT}.com.br/api/oms/pvt/orders?{queryString}") }; string authToken = this._httpContextAccessor.HttpContext.Request.Headers[HEADER_VTEX_CREDENTIAL]; if (authToken != null) { request.Headers.Add(AUTHORIZATION_HEADER_NAME, authToken); request.Headers.Add(VTEX_ID_HEADER_NAME, authToken); request.Headers.Add(PROXY_AUTHORIZATION_HEADER_NAME, authToken); } var client = _clientFactory.CreateClient(); var response = await client.SendAsync(request); string responseContent = await response.Content.ReadAsStringAsync(); _context.Vtex.Logger.Info("ListOrders", null, $"[{response.StatusCode}] {responseContent}"); if (response.IsSuccessStatusCode) { vtexOrderList = JsonConvert.DeserializeObject <VtexOrderList>(responseContent); //Console.WriteLine($"ListOrders: [{response.StatusCode}] "); } else { //Console.WriteLine($"ListOrders: [{response.StatusCode}] '{responseContent}'"); } } catch (Exception ex) { _context.Vtex.Logger.Error("ListOrders", null, "Request Error", ex); } return(vtexOrderList); }