Пример #1
0
        public IActionResult Index(Guid?marcaId, string minValor, string maxValor, int?minEstoque, int?maxEstoque, string nome, int pageNumber = 1, int pageSize = 20)
        {
            var marcaIdSpecification = new ProdutoMarcaIdSpecification(marcaId);
            var valorSpecification   = new ProdutoPrecoVendaSpecification(minValor.ToDecimal(), maxValor.ToDecimal());
            var estoqueSpecification = new ProdutoEstoqueSpecification(minEstoque, maxEstoque);
            var nomeSpecification    = new ProdutoNomeSpecification(nome);

            var list = _produtoApplicationService.Get(valorSpecification
                                                      .And(estoqueSpecification)
                                                      .And(nomeSpecification)
                                                      .And(marcaIdSpecification)
                                                      .ToExpression());

            var viewModel = new ProdutosIndexViewModel
            {
                Produtos   = list.ToPagedList(pageNumber, pageSize),
                Marcas     = _marcaApplicationService.Get().OrderBy(m => m.Nome),
                MarcaId    = marcaId,
                Nome       = nome,
                MinValor   = minValor,
                MaxValor   = maxValor,
                MinEstoque = minEstoque,
                MaxEstoque = maxEstoque,
            };

            return(View(viewModel));
        }