public async Task <bool> Handle(TrataNotificacaoCargosNiveisCommand request, CancellationToken cancellationToken) { foreach (var notificacaoParaTratarAgrupada in request.Notificacoes.GroupBy(a => a.UECodigo)) { var cargosIdsDaUe = notificacaoParaTratarAgrupada.Select(a => a.Cargo).Distinct().ToList(); var listaCargoDosNiveis = EnumExtensao.ListarDto <Cargo>(); cargosIdsDaUe.AddRange(listaCargoDosNiveis.Select(a => a.Id)); cargosIdsDaUe = cargosIdsDaUe.Distinct().ToList(); var dreCodigo = notificacaoParaTratarAgrupada.FirstOrDefault(a => !string.IsNullOrEmpty(a.DRECodigo)).DRECodigo; var funcionariosCargosDaUe = await mediator.Send(new ObterFuncionariosCargosPorUeCargosQuery(notificacaoParaTratarAgrupada.Key, cargosIdsDaUe, dreCodigo)); var workflowsIdsParaTratar = notificacaoParaTratarAgrupada.Select(a => a.WorkflowId).Distinct().ToList(); foreach (var workflowsIdParaTratar in workflowsIdsParaTratar) { var notificacaoParaTratar = notificacaoParaTratarAgrupada.FirstOrDefault(a => a.WorkflowId == workflowsIdParaTratar); var funcionariosNoCargo = funcionariosCargosDaUe.Where(a => a.CargoId == notificacaoParaTratar.Cargo).ToList(); if (!funcionariosNoCargo.Any()) { await mediator.Send(new AlteraWorkflowAprovacaoNivelNotificacaoCargoCommand(notificacaoParaTratar.WorkflowId, notificacaoParaTratar.NotificacaoId, funcionariosCargosDaUe.ToList())); } else { await mediator.Send(new AlteraWorkflowAprovacaoNotificacaoCargoCommand(notificacaoParaTratar.WorkflowId, notificacaoParaTratar.NotificacaoId, funcionariosNoCargo)); } } } return(true); }
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(ObterFiltroRelatoriosModalidadesPorUeAbrangenciaQuery request, CancellationToken cancellationToken) { if (request.CodigoUe == "-99") { return(EnumExtensao.ListarDto <Modalidade>().Select(c => new OpcaoDropdownDto(c.Id.ToString(), c.Descricao))); } var usuarioLogado = await mediator.Send(new ObterUsuarioLogadoQuery()); if (usuarioLogado == null) { throw new NegocioException("Não foi possível localizar o usuario logado."); } var modalidades = await repositorioAbrangencia.ObterModalidadesPorUeAbrangencia(request.CodigoUe, usuarioLogado.Login, usuarioLogado.PerfilAtual); return(modalidades?.Select(c => new OpcaoDropdownDto(((int)c).ToString(), c.Name()))); }
public IEnumerable <EnumeradoRetornoDto> ObterCategorias() { return(EnumExtensao.ListarDto <NotificacaoCategoria>()); }
public IEnumerable <EnumeradoRetornoDto> ObterTipos() { return(EnumExtensao.ListarDto <NotificacaoTipo>()); }
public IEnumerable <EnumeradoRetornoDto> ObterStatus() { return(EnumExtensao.ListarDto <NotificacaoStatus>()); }
public async Task <IList <DisciplinaRetornoDto> > Handle(ObterCCPorTurmaUsuarioQuery request, CancellationToken cancellationToken) { var componenteMat = new DisciplinaRetornoDto() { CodigoComponenteCurricular = "math", Nome = "Matemática" }; var componentePor = new DisciplinaRetornoDto() { CodigoComponenteCurricular = "port", Nome = "Língua Portuguesa" }; var listFixaComponentes = new List <DisciplinaRetornoDto>() { componenteMat, componentePor }; var perfilAtual = await mediator.Send(new ObterPerfilUsuarioLogadoQuery()); if (perfilAtual.ToUpper() == "40E1E074-37D6-E911-ABD6-F81654FE895D") { var token = await mediator.Send(new ObterTokenUsuarioLogadoQuery()); using (var httpClient = httpClientFactory.CreateClient("apiSGP")) { httpClient.DefaultRequestHeaders.Add("Authorization", $"Bearer {token}"); var resposta = await httpClient.GetAsync($"v1/professores/turmas/{request.TurmaCodigo}/disciplinas"); if (!resposta.IsSuccessStatusCode || resposta.StatusCode == HttpStatusCode.NoContent) { if (resposta.StatusCode == HttpStatusCode.Unauthorized) { throw new NegocioException("Não autorizado", 401); } else { return(null); } } var json = await resposta.Content.ReadAsStringAsync(); var listaComponentesSGP = JsonConvert.DeserializeObject <List <DisciplinaRetornoDto> >(json); //Verificar se tem regencia, se tiver, deve visualizar PT e MT, caso não, verifico se tem MT e PT para deixar na lista var listaIdsEnum = EnumExtensao.Listar <ComponentesCurricularesRegenciaEnum>().Select(a => (int)a); if (!listaComponentesSGP.Any(a => listaIdsEnum.Contains(int.Parse(a.CodigoComponenteCurricular)))) { //Verifico se tem Mat if (!listaComponentesSGP.Any(a => a.CodigoComponenteCurricular == "2")) { listFixaComponentes.Remove(componenteMat); } //Verifico se tem Pt if (!listaComponentesSGP.Any(a => a.CodigoComponenteCurricular == "138")) { listFixaComponentes.Remove(componentePor); } } } } return(listFixaComponentes); }