示例#1
0
        private async Task <long> CriarWorkflowParaEventoExcepcionais(Evento evento, Dto.AbrangenciaUeRetorno escola, string linkParaEvento)
        {
            var tipoCalendario = evento.TipoCalendario ?? ObterTipoCalendario(evento);

            var wfAprovacaoEvento = new WorkflowAprovacaoDto()
            {
                Ano = evento.DataInicio.Year,
                NotificacaoCategoria  = NotificacaoCategoria.Workflow_Aprovacao,
                EntidadeParaAprovarId = evento.Id,
                Tipo                = WorkflowAprovacaoTipo.Evento_Liberacao_Excepcional,
                UeId                = evento.UeId,
                DreId               = evento.DreId,
                NotificacaoTitulo   = "Criação de Eventos Excepcionais",
                NotificacaoTipo     = NotificacaoTipo.Calendario,
                NotificacaoMensagem = $"O evento {evento.Nome} - {evento.DataInicio.Day}/{evento.DataInicio.Month}/{evento.DataInicio.Year} foi criado no calendário {tipoCalendario.Nome} da {escola.NomeSimples}. Para que este evento seja considerado válido, você precisa aceitar esta notificação. Para visualizar o evento clique <a href='{linkParaEvento}'>aqui</a>."
            };

            wfAprovacaoEvento.Niveis.Add(new WorkflowAprovacaoNivelDto()
            {
                Cargo = Cargo.Diretor,
                Nivel = 1
            });
            wfAprovacaoEvento.Niveis.Add(new WorkflowAprovacaoNivelDto()
            {
                Cargo = Cargo.Supervisor,
                Nivel = 2
            });

            return(await comandosWorkflowAprovacao.Salvar(wfAprovacaoEvento));
        }
示例#2
0
        private long CriarWorkflowParaDataPassada(Evento evento, AbrangenciaUeRetorno escola, string linkParaEvento)
        {
            var wfAprovacaoEvento = new WorkflowAprovacaoDto()
            {
                Ano = evento.DataInicio.Year,
                NotificacaoCategoria  = NotificacaoCategoria.Workflow_Aprovacao,
                EntidadeParaAprovarId = evento.Id,
                Tipo                = WorkflowAprovacaoTipo.Evento_Data_Passada,
                UeId                = evento.UeId,
                DreId               = evento.DreId,
                NotificacaoTitulo   = "Criação de evento com data passada",
                NotificacaoTipo     = NotificacaoTipo.Calendario,
                NotificacaoMensagem = $"O evento {evento.Nome} - {evento.DataInicio.Day}/{evento.DataInicio.Month}/{evento.DataInicio.Year} foi criado no calendário {evento.TipoCalendario.Nome} da {escola.Nome}. Para que este evento seja considerado válido, você precisa aceitar esta notificação. Para visualizar o evento clique <a href='{linkParaEvento}'>aqui</a>."
            };

            wfAprovacaoEvento.Niveis.Add(new WorkflowAprovacaoNivelDto()
            {
                Cargo = Cargo.Supervisor,
                Nivel = 1
            });

            return(comandosWorkflowAprovacao.Salvar(wfAprovacaoEvento));
        }
示例#3
0
        private async Task EnviarNotasWfAprovacao(long fechamentoTurmaDisciplinaId, PeriodoEscolar periodoEscolar, Usuario usuarioLogado)
        {
            if (notasEnvioWfAprovacao.Any())
            {
                var lancaNota            = !notasEnvioWfAprovacao.First().ConceitoId.HasValue;
                var notaConceitoMensagem = lancaNota ? "nota" : "conceito";

                var mensagem = await MontaMensagemWfAprovacao(notaConceitoMensagem, periodoEscolar, usuarioLogado);

                var wfAprovacaoNota = new WorkflowAprovacaoDto()
                {
                    Ano = DateTime.Today.Year,
                    NotificacaoCategoria  = NotificacaoCategoria.Workflow_Aprovacao,
                    EntidadeParaAprovarId = fechamentoTurmaDisciplinaId,
                    Tipo                = WorkflowAprovacaoTipo.AlteracaoNotaFechamento,
                    TurmaId             = turmaFechamento.CodigoTurma,
                    UeId                = turmaFechamento.Ue.CodigoUe,
                    DreId               = turmaFechamento.Ue.Dre.CodigoDre,
                    NotificacaoTitulo   = $"Alteração em {notaConceitoMensagem} final - Turma {turmaFechamento.Nome} ({turmaFechamento.AnoLetivo})",
                    NotificacaoTipo     = NotificacaoTipo.Notas,
                    NotificacaoMensagem = mensagem
                };

                wfAprovacaoNota.AdicionarNivel(Cargo.CP);
                wfAprovacaoNota.AdicionarNivel(Cargo.Diretor);
                wfAprovacaoNota.AdicionarNivel(Cargo.Supervisor);

                var idWorkflow = await comandosWorkflowAprovacao.Salvar(wfAprovacaoNota);

                foreach (var notaFechamento in notasEnvioWfAprovacao)
                {
                    await repositorioWfAprovacaoNotaFechamento.SalvarAsync(new WfAprovacaoNotaFechamento()
                    {
                        WfAprovacaoId    = idWorkflow,
                        FechamentoNotaId = notaFechamento.Id,
                        Nota             = notaFechamento.Nota,
                        ConceitoId       = notaFechamento.ConceitoId
                    });
                }
            }
        }
        public async Task <long> Handle(InserirWorkflowReposicaoAulaCommand request, CancellationToken cancellationToken)
        {
            var linkParaReposicaoAula = $"{configuration["UrlFrontEnd"]}calendario-escolar/calendario-professor/cadastro-aula/editar/:{request.AulaId}/";

            var wfAprovacaoAula = new WorkflowAprovacaoDto()
            {
                Ano = request.Ano,
                NotificacaoCategoria  = NotificacaoCategoria.Workflow_Aprovacao,
                EntidadeParaAprovarId = request.AulaId,
                Tipo                = WorkflowAprovacaoTipo.ReposicaoAula,
                UeId                = request.UeCodigo,
                DreId               = request.DreCodigo,
                NotificacaoTitulo   = $"Criação de Aula de Reposição na turma {request.TurmaNome}",
                NotificacaoTipo     = NotificacaoTipo.Calendario,
                NotificacaoMensagem = $"Foram criadas {request.Quantidade} aula(s) de reposição de {request.ComponenteCurricularNome} na turma {request.TurmaNome} da {request.UeNome} ({request.DreNome}). Para que esta aula seja considerada válida você precisa aceitar esta notificação. Para visualizar a aula clique  <a href='{linkParaReposicaoAula}'>aqui</a>."
            };

            wfAprovacaoAula.AdicionarNivel(Cargo.CP);
            wfAprovacaoAula.AdicionarNivel(Cargo.Diretor);

            return(await comandosWorkflowAprovacao.Salvar(wfAprovacaoAula));
        }
示例#5
0
        public async Task <IActionResult> Post(WorkflowAprovacaoDto workflowAprovaNivelDto)
        {
            await comandosWorkflowAprovacao.Salvar(workflowAprovaNivelDto);

            return(Ok());
        }
 public IActionResult Post(WorkflowAprovacaoDto workflowAprovaNivelDto)
 {
     comandosWorkflowAprovacao.Salvar(workflowAprovaNivelDto);
     return(Ok());
 }