protected override IActionResult Handle()

in src/app/ContosoTraders.Api.Core/Requests/Handlers/GetProductsRequestHandler.cs [21:44]


    protected override IActionResult Handle(GetProductsRequest request)
    {
        var brands = _productService.GetBrands();

        var types = _productService.GetTypes();

        var typeIds = types
            .Where(t => request.Types.Contains(t.Code))
            .Select(t => t.Id)
            .ToArray();

        var productDtos = _productService.GetProducts(request.Brands, typeIds);

        if (!productDtos.Any()) return new NoContentResult();

        var aggregateResponse = new
        {
            Products = productDtos,
            Brands = brands,
            Types = types
        };

        return new OkObjectResult(aggregateResponse);
    }