public async Task <ActionResult> Filter(CoffeesFilterViewModel model)
        {
            var parameters = new List <IQueryParameter> {
                new EqualsFilter("system.type", "coffee"),
                new OrderParameter("elements.product_name"),
                new ElementsParameter(Coffee.ImageCodename, Coffee.PriceCodename, Coffee.ProductStatusCodename, Coffee.ProductNameCodename, Coffee.UrlPatternCodename),
                new DepthParameter(0),
            };

            var filterProcessing = model.GetFilteredProcessings().ToArray();

            if (filterProcessing.Any())
            {
                parameters.Add(new AnyFilter($"elements.{Coffee.ProcessingCodename}", filterProcessing));
            }

            var filterStatus = model.GetFilteredProductStatuses().ToArray();

            if (filterStatus.Any())
            {
                parameters.Add(new AnyFilter($"elements.{Coffee.ProductStatusCodename}", filterStatus));
            }

            var response = await client.GetItemsAsync <Coffee>(parameters);

            return(PartialView("ProductListing", response.Items));
        }
        public async Task <ActionResult> Filter(CoffeesFilterViewModel model)
        {
            var filters = new List <IFilter> {
                new EqualsFilter("system.type", "coffee"),
                new Order("elements.product_name"),
                new ElementsFilter("image", "price", "product_status", "processing"),
                new DepthFilter(0),
            };

            var filter = model.GetFilteredValues().ToArray();

            if (filter.Any())
            {
                filters.Add(new InFilter("elements.processing", filter));
            }

            var response = await client.GetItemsAsync(filters);

            return(PartialView("CoffeeList", response.Items));
        }