Example #1
0
        public ActionResult PesquisarMaterial(MaterialPesquisaFiltro filtro)
        {
            //var model = materialAppService.PesquisarMaterial(filtro);
            int totalRegistros;
            var result = materialAppService.PesquisarAtivosPeloFiltro(filtro, out totalRegistros);

            if (result.Any())
            {
                var listaViewModel = CreateListaViewModel(filtro, totalRegistros, result);
                return(PartialView("ListaPesquisaPartial", listaViewModel));
            }
            return(PartialView("_EmptyListPartial"));
        }
Example #2
0
        public List <MaterialDTO> PesquisarAtivosPeloFiltro(MaterialPesquisaFiltro filtro, out int totalRegistros)
        {
            var specification = (Specification <Material>) new TrueSpecification <Material>();

            specification &= MaterialSpecification.EhAtivo();
            specification &= ObterTipoTabelaSpecification(specification, filtro.CodigoCentroCusto);

            bool EhTipoSelecaoContem = filtro.TipoSelecao == TipoPesquisa.Contem;

            switch (filtro.Campo)
            {
            case "unidadeMedida":
                specification &= EhTipoSelecaoContem ? MaterialSpecification.UnidadeMedidaContem(filtro.TextoInicio)
                        : MaterialSpecification.UnidadeMedidaNoIntervalo(filtro.TextoInicio, filtro.TextoFim);
                break;

            case "id":
                int?inicio = !string.IsNullOrEmpty(filtro.TextoInicio) ? Convert.ToInt32(filtro.TextoInicio) : (int?)null;
                int?fim    = !string.IsNullOrEmpty(filtro.TextoFim) ? Convert.ToInt32(filtro.TextoFim) : (int?)null;
                specification &= EhTipoSelecaoContem ? MaterialSpecification.MatchingId(inicio)
                        : MaterialSpecification.IdNoIntervalo(inicio, fim);
                break;

            case "classeInsumo":
                specification &= EhTipoSelecaoContem ? MaterialSpecification.ClasseInsumoContem(filtro.TextoInicio)
                        : MaterialSpecification.ClasseInsumoNoIntervalo(filtro.TextoInicio, filtro.TextoFim);
                break;

            case "codigoExterno":
                specification &= EhTipoSelecaoContem ? MaterialSpecification.CodigoExternoContem(filtro.TextoInicio)
                        : MaterialSpecification.CodigoExternoNoIntervalo(filtro.TextoInicio, filtro.TextoFim);
                break;

            case "descricao":
            default:
                specification &= EhTipoSelecaoContem ? MaterialSpecification.DescricaoContem(filtro.TextoInicio)
                        : MaterialSpecification.DescricaoNoIntervalo(filtro.TextoInicio, filtro.TextoFim);
                break;
            }

            return(materialRepository.Pesquisar(
                       specification,
                       filtro.PageIndex,
                       filtro.PageSize,
                       filtro.OrderBy,
                       filtro.Ascending,
                       out totalRegistros).To <List <MaterialDTO> >());
        }