public async Task Excluir(NotificacaoCartaIntencoesObservacao notificacao) { await database.Conexao.DeleteAsync(notificacao); }
public async Task Salvar(NotificacaoCartaIntencoesObservacao notificacao) { await database.Conexao.InsertAsync(notificacao); }
public async Task <bool> Executar(MensagemRabbit mensagemRabbit) { var dadosMensagem = mensagemRabbit.ObterObjetoMensagem <SalvarNotificacaoCartaIntencoesObservacaoDto>(); var turma = dadosMensagem.Turma; var usuarioLogado = dadosMensagem.Usuario; var cartaIntencoesObservacaoId = dadosMensagem.CartaIntencoesObservacaoId; var titulares = await mediator.Send(new ObterProfessoresTitularesDaTurmaQuery(turma.CodigoTurma)); if (titulares != null) { var mensagem = new StringBuilder($"O usuário {usuarioLogado.Nome} ({usuarioLogado.CodigoRf}) inseriu uma nova observação na Carta de intenções da turma <strong>{turma.Nome}</strong> da <strong>{turma.Ue.TipoEscola}-{turma.Ue.Nome}</strong> ({turma.Ue.Dre.Abreviacao})."); if (dadosMensagem.Observacao.Trim().Length > 200) { mensagem.AppendLine($"<br/><br/>Observação: Acesse Carta de intenções para consultar o conteúdo da observação."); } else { mensagem.AppendLine($"<br/><br/>Observação: {dadosMensagem.Observacao.TrimEnd('.').Trim()}."); } if (titulares.Count() == 1) { titulares = titulares.FirstOrDefault().Split(','); } foreach (var titular in titulares) { var codigoRf = titular.Trim(); if (codigoRf != usuarioLogado.CodigoRf) { var usuario = await mediator.Send(new ObterUsuarioPorRfQuery(codigoRf)); if (usuario != null) { var notificacao = new Notificacao() { Ano = DateTime.Now.Year, Categoria = NotificacaoCategoria.Aviso, Tipo = NotificacaoTipo.Planejamento, Titulo = $"Nova observação na Carta de intenções da turma {turma.Nome}", Mensagem = mensagem.ToString(), UsuarioId = usuario.Id, TurmaId = "", UeId = "", DreId = "", }; await servicoNotificacao.SalvarAsync(notificacao); var notificacaoObservacao = new NotificacaoCartaIntencoesObservacao() { NotificacaoId = notificacao.Id, CartaIntencoesObservacaoId = cartaIntencoesObservacaoId }; await repositorioNotificacaoCartaIntencoesObservacao.Salvar(notificacaoObservacao); } } } return(true); } return(false); }