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>()); }