public IQueryable <ProcessamentoDTO> Execute(ProcessamentoFiltro filtro) { var consulta = _db.Contribuintes.Where(c => c.Processamentos.Any(p => p.AnoExercicio == filtro.AnoExercicio) && c.TipoContribuinteId == (short)filtro.TipoContribuinte) .Select(pr => new ProcessamentoDTO() { Id = pr.Processamentos.FirstOrDefault(p => p.AnoExercicio == filtro.AnoExercicio).Id, TipoContribuinte = (TipoContribuinte)pr.TipoContribuinteId }); if (consulta.FirstOrDefault() != null) { return(consulta); } var query = _db.Processamentos.Where(p => (p.AnoExercicio == filtro.AnoExercicio && p.Contribuintes.Count == 0)) .Select(pr => new ProcessamentoDTO() { Id = pr.Id, TipoContribuinte = null }); return(query); }
public static ProcessamentoFiltro Converter(int anoExercicio, TipoContribuinte tipo) { var filtro = new ProcessamentoFiltro() { AnoExercicio = anoExercicio, TipoContribuinte = tipo }; return(filtro); }