public List <PreRequisicaoMaterialDTO> ListarPeloFiltro(PreRequisicaoMaterialFiltro filtro, int?idUsuario, out int totalRegistros) { var specification = (Specification <PreRequisicaoMaterial>) new TrueSpecification <PreRequisicaoMaterial>(); if (usuarioAppService.UsuarioPossuiCentroCustoDefinidoNoModulo(idUsuario, Resource.Sigim.NomeModulo.OrdemCompra)) { specification &= PreRequisicaoMaterialSpecification.UsuarioPossuiAcessoAoCentroCusto(idUsuario, Resource.Sigim.NomeModulo.OrdemCompra); } if (filtro.Id.HasValue) { specification &= PreRequisicaoMaterialSpecification.MatchingId(filtro.Id); } else { specification &= PreRequisicaoMaterialSpecification.DataMaiorOuIgual(filtro.DataInicial); specification &= PreRequisicaoMaterialSpecification.DataMenorOuIgual(filtro.DataFinal); if (filtro.EhCancelada || filtro.EhFechada || filtro.EhParcialmenteAprovada || filtro.EhRequisitada) { specification &= ((filtro.EhCancelada ? PreRequisicaoMaterialSpecification.EhCancelada() : new FalseSpecification <PreRequisicaoMaterial>()) || ((filtro.EhFechada) ? PreRequisicaoMaterialSpecification.EhFechada() : new FalseSpecification <PreRequisicaoMaterial>()) || ((filtro.EhParcialmenteAprovada) ? PreRequisicaoMaterialSpecification.EhParcialmenteAprovada() : new FalseSpecification <PreRequisicaoMaterial>()) || ((filtro.EhRequisitada) ? PreRequisicaoMaterialSpecification.EhRequisitada() : new FalseSpecification <PreRequisicaoMaterial>())); } } return(preRequisicaoMaterialRepository.ListarPeloFiltroComPaginacao( specification, filtro.PaginationParameters.PageIndex, filtro.PaginationParameters.PageSize, filtro.PaginationParameters.OrderBy, filtro.PaginationParameters.Ascending, out totalRegistros, l => l.ListaItens.Select(c => c.PreRequisicaoMaterial), l => l.ListaItens.Select(c => c.CentroCusto.ListaUsuarioCentroCusto), l => l.ListaItens.Select(o => o.ListaRequisicaoMaterialItem.Select(s => s.RequisicaoMaterial))).To <List <PreRequisicaoMaterialDTO> >()); }
public PreRequisicaoMaterialListaViewModel() { Filtro = new PreRequisicaoMaterialFiltro(); }