public async Task <IEnumerable <OpcaoDropdownDto> > Handle(ObterFiltroRelatoriosModalidadesPorUeQuery request, CancellationToken cancellationToken) { if (request.CodigoUe == "-99") { return(EnumExtensao.ListarDto <Modalidade>().Select(c => new OpcaoDropdownDto(c.Id.ToString(), c.Descricao))); } var login = servicoUsuario.ObterLoginAtual(); var perfil = servicoUsuario.ObterPerfilAtual(); var listaAbrangencia = await repositorioAbrangencia.ObterModalidades(login, perfil, request.AnoLetivo, request.ConsideraHistorico); var modalidades = await repositorioAbrangencia.ObterModalidadesPorUe(request.CodigoUe); return(modalidades?.Where(m => listaAbrangencia.Contains((int)m))?.Select(c => new OpcaoDropdownDto(((int)c).ToString(), c.Name()))); }
public async Task <IEnumerable <OpcaoDropdownDto> > Handle(ObterFiltroRelatoriosAnosEscolaresPorModalidadeUeQuery request, CancellationToken cancellationToken) { if (request.CodigoUe == "-99") { return(ObterAnosEscolaresPorModalidade(request.Modalidade)); } var modalidadesUe = await repositorioAbrangencia.ObterModalidadesPorUe(request.CodigoUe); var modalidadeSelecionada = modalidadesUe?.FirstOrDefault(c => c == request.Modalidade); if (modalidadeSelecionada == null) { throw new NegocioException("Modalidade localizada na UE informada."); } return(ObterAnosEscolaresPorModalidade(modalidadeSelecionada.Value)); }