public List <RequisicaoMaterialDTO> ListarPeloFiltro(RequisicaoMaterialFiltro filtro, int?idUsuario, out int totalRegistros) { var specification = (Specification <RequisicaoMaterial>) new TrueSpecification <RequisicaoMaterial>(); if (usuarioAppService.UsuarioPossuiCentroCustoDefinidoNoModulo(idUsuario, Resource.Sigim.NomeModulo.OrdemCompra)) { specification &= RequisicaoMaterialSpecification.UsuarioPossuiAcessoAoCentroCusto(idUsuario, Resource.Sigim.NomeModulo.OrdemCompra); } else { specification &= RequisicaoMaterialSpecification.EhCentroCustoAtivo(); } if (filtro.Id.HasValue) { specification &= RequisicaoMaterialSpecification.MatchingId(filtro.Id); } else { specification &= RequisicaoMaterialSpecification.DataMaiorOuIgual(filtro.DataInicial); specification &= RequisicaoMaterialSpecification.DataMenorOuIgual(filtro.DataFinal); specification &= RequisicaoMaterialSpecification.PertenceAoCentroCustoIniciadoPor(filtro.CentroCusto.Codigo); if (filtro.EhAprovada || filtro.EhCancelada || filtro.EhFechada || filtro.EhRequisitada) { specification &= ((filtro.EhAprovada ? RequisicaoMaterialSpecification.EhAprovada() : new FalseSpecification <RequisicaoMaterial>()) || ((filtro.EhCancelada) ? RequisicaoMaterialSpecification.EhCancelada() : new FalseSpecification <RequisicaoMaterial>()) || ((filtro.EhFechada) ? RequisicaoMaterialSpecification.EhFechada() : new FalseSpecification <RequisicaoMaterial>()) || ((filtro.EhRequisitada) ? RequisicaoMaterialSpecification.EhRequisitada() : new FalseSpecification <RequisicaoMaterial>())); } } return(requisicaoMaterialRepository.ListarPeloFiltroComPaginacao( specification, filtro.PaginationParameters.PageIndex, filtro.PaginationParameters.PageSize, filtro.PaginationParameters.OrderBy, filtro.PaginationParameters.Ascending, out totalRegistros, l => l.ListaItens.Select(c => c.RequisicaoMaterial)).To <List <RequisicaoMaterialDTO> >()); }
public RequisicaoMaterialListaViewModel() { Filtro = new RequisicaoMaterialFiltro(); }