コード例 #1
0
        private async Task TrataNovoFuncionarioNivel(WorkflowAprovacao wfAprovacao, WorkflowAprovacaoNivel nivelDoCargo, string funcionarioRF)
        {
            var notificacaoBase = wfAprovacao.Niveis.Where(a => a.Notificacoes.Any()).SelectMany(a => a.Notificacoes).FirstOrDefault();

            var notificarUsuarioCommand = new NotificarUsuarioCommand(
                wfAprovacao.NotifacaoTitulo,
                wfAprovacao.NotifacaoMensagem,
                funcionarioRF,
                (NotificacaoCategoria)wfAprovacao.NotificacaoCategoria,
                (NotificacaoTipo)wfAprovacao.NotificacaoTipo,
                wfAprovacao.DreId,
                wfAprovacao.UeId,
                wfAprovacao.TurmaId,
                wfAprovacao.Ano,
                notificacaoBase.Codigo,
                notificacaoBase.CriadoEm);

            var notificacaoId = await mediator.Send(notificarUsuarioCommand);

            repositorioWorkflowAprovacaoNivelNotificacao.Salvar(new WorkflowAprovacaoNivelNotificacao()
            {
                NotificacaoId            = notificacaoId,
                WorkflowAprovacaoNivelId = nivelDoCargo.Id
            });
        }
コード例 #2
0
        private async Task TrataNovoNivel(WorkflowAprovacao wfAprovacao, WorkflowAprovacaoNivel nivelDoCargo, List <FuncionarioCargoDTO> funcionariosCargosDaUe)
        {
            var funcionariosDoNivel = funcionariosCargosDaUe.Where(a => a.CargoId == (int)nivelDoCargo.Cargo);
            var notificacaoBase     = wfAprovacao.Niveis.Where(a => a.Notificacoes.Any()).SelectMany(a => a.Notificacoes).FirstOrDefault();

            foreach (var funcionarioDoNivel in funcionariosDoNivel)
            {
                var notificarUsuarioCommand = new NotificarUsuarioCommand(
                    wfAprovacao.NotifacaoTitulo,
                    wfAprovacao.NotifacaoMensagem,
                    funcionarioDoNivel.FuncionarioRF,
                    (NotificacaoCategoria)wfAprovacao.NotificacaoCategoria,
                    (NotificacaoTipo)wfAprovacao.NotificacaoTipo,
                    wfAprovacao.DreId,
                    wfAprovacao.UeId,
                    wfAprovacao.TurmaId,
                    wfAprovacao.Ano,
                    notificacaoBase.Codigo,
                    notificacaoBase.CriadoEm);

                var notificacaoId = await mediator.Send(notificarUsuarioCommand);

                repositorioWorkflowAprovacaoNivelNotificacao.Salvar(new WorkflowAprovacaoNivelNotificacao()
                {
                    NotificacaoId            = notificacaoId,
                    WorkflowAprovacaoNivelId = nivelDoCargo.Id
                });
            }
        }
コード例 #3
0
        private void NotificarErroUsuario(string message, string usuarioRf, string nomeProcesso)
        {
            if (!string.IsNullOrEmpty(usuarioRf))
            {
                var command = new NotificarUsuarioCommand($"Ocorreu um erro ao: '{nomeProcesso}'",
                                                          message,
                                                          usuarioRf,
                                                          NotificacaoCategoria.Aviso,
                                                          NotificacaoTipo.Worker);

                var request  = new MensagemRabbit(string.Empty, command, Guid.NewGuid(), usuarioRf);
                var mensagem = JsonConvert.SerializeObject(request);
                var body     = Encoding.UTF8.GetBytes(mensagem);

                canalRabbit.QueueBind(RotasRabbit.FilaSgp, RotasRabbit.ExchangeSgp, RotasRabbit.RotaNotificacaoUsuario);
                canalRabbit.BasicPublish(RotasRabbit.ExchangeSgp, RotasRabbit.RotaNotificacaoUsuario, null, body);
            }
        }