Exemplo n.º 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));
        }
Exemplo n.º 2
0
        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));
        }