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