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)); }
public IActionResult Index(string produtoId, string nome, string aplicacaoMarca, string aplicacaoModelo, string aplicacaoMotor, string aplicacaoObservacao, string referenciaFabricante, string referenciaOriginal, string referenciaAuxiliar, Guid?marcaId, string minValor, string maxValor, int?minEstoque, int?maxEstoque, int pageNumber = 1, int pageSize = 20) { var idSpecification = new ProdutoIdSpecification(produtoId); var nomeSpecification = new ProdutoNomeSpecification(nome); var referenciaFabricanteSpecification = new ProdutoReferenciaFabricanteSpecification(referenciaFabricante); var referenciaOriginalSpecification = new ProdutoReferenciaOriginalSpecification(referenciaOriginal); var referenciaAuxiliarSpecification = new ProdutoReferenciaAuxiliarSpecification(referenciaAuxiliar); var marcaIdSpecification = new ProdutoMarcaIdSpecification(marcaId); var valorSpecification = new ProdutoPrecoVendaSpecification(minValor.ToDecimal(), maxValor.ToDecimal()); var estoqueSpecification = new ProdutoEstoqueSpecification(minEstoque, maxEstoque); var aplicacaoMarcaSpecification = new ProdutoAplicacaoMarcaSpecification(aplicacaoMarca); var aplicacaoModeloSpecification = new ProdutoAplicacaoModeloSpecification(aplicacaoModelo); var aplicacaoMotorSpecification = new ProdutoAplicacaoMotorSpecification(aplicacaoMotor); var aplicacaoObservacaoSpecification = new ProdutoAplicacaoObservacaoSpecification(aplicacaoObservacao); var list = _produtoApplicationService.Get(idSpecification .And(nomeSpecification) .And(aplicacaoMarcaSpecification) .And(aplicacaoModeloSpecification) .And(aplicacaoMotorSpecification) .And(aplicacaoObservacaoSpecification) .And(referenciaFabricanteSpecification) .And(referenciaOriginalSpecification) .And(referenciaAuxiliarSpecification) .And(valorSpecification) .And(estoqueSpecification) .And(marcaIdSpecification) .ToExpression()); var viewModel = new ProdutosIndexViewModel { Produtos = list.ToPagedList(pageNumber, pageSize), Marcas = _marcaApplicationService.Get().OrderBy(m => m.Nome), MarcaId = marcaId, ProdutoId = produtoId, Nome = nome, ReferenciaFabricante = referenciaFabricante, ReferenciaOriginal = referenciaOriginal, ReferenciaAuxiliar = referenciaAuxiliar, MinValor = minValor, MaxValor = maxValor, MinEstoque = minEstoque, MaxEstoque = maxEstoque, }; return(View(viewModel)); }