in Source/ApiGWs/Tailwind.Traders.WebBff/Controllers/ProductsController.cs [87:114]
public async Task<IActionResult> GetProducts([FromQuery] int[] brand = null, [FromQuery] string[] type = null)
{
var client = _httpClientFactory.CreateClient(HttpClients.ApiGW);
var result = await client.GetStringAsync(API.Products.GetTypes(_settings.ProductsApiUrl, VERSION_API));
var types = JsonConvert.DeserializeObject<IEnumerable<ProductType>>(result);
var selectedTypeIds = types.Where(t => type.Contains(t.Code)).Select(t => t.Id).ToArray();
var productsUrl = brand.Count() > 0 || type.Count() > 0 ?
API.Products.GetProductsByFilter(_settings.ProductsApiUrl, VERSION_API, brand, selectedTypeIds) :
API.Products.GetProducts(_settings.ProductsApiUrl, VERSION_API);
var resultProducts = await client.GetAsync(productsUrl);
result = await resultProducts.Content.ReadAsStringAsync();
var products = JsonConvert.DeserializeObject<IEnumerable<Product>>(result);
result = await client.GetStringAsync(API.Products.GetBrands(_settings.ProductsApiUrl, VERSION_API));
var brands = JsonConvert.DeserializeObject<IEnumerable<ProductBrand>>(result);
var aggresponse = new
{
Products = products,
Brands = brands,
Types = types
};
return Ok(aggresponse);
}