public override async Task LogRemocao(UsuarioADE usuario, RegistroDeHoras entity) { string Cabecalho = MensagemDelecaoRegistroHoras(usuario, entity); NotificacaoIndividual notificacao = new NotificacaoIndividual(entity.IdUsuario, entity.IdUsuario, Cabecalho, $"{usuario.UserName}, sua atividade {entity.Atividade} foi removida com sucesso. Data: {DateTime.Now.ToLocalTime()} "); await CriarNotificacaoIndividual(usuario, notificacao); }
public override async Task LogCadastramento(UsuarioADE usuario, RegistroDeHoras entidade) { string Mensagem = $"Sua atividade {entidade.Atividade} foi cadastrada com a carga horaria de {entidade.CargaHoraria} minutos"; string Cabecalho = MensagemCriacaoRegistroHoras(usuario, entidade); NotificacaoIndividual notificacao = new NotificacaoIndividual(usuario.Id, usuario.Id, Cabecalho, Mensagem); await CriarNotificacaoIndividual(usuario, notificacao); }
public override async Task LogAtualizacao(UsuarioADE usuario, RegistroDeHoras entidade, string Mensagem = null) { Mensagem = Mensagem ?? entidade.GerarMensagemAlteracao(entidade); string Cabecalho = MensagemAlteracaoRegistroHoras(usuario, entidade, entidade); NotificacaoIndividual notificacao = new NotificacaoIndividual(usuario.Id, usuario.Id, Cabecalho, Mensagem); await CriarNotificacaoIndividual(usuario, notificacao); }
public async Task RemoverAtividadeUsuarioAsync(UsuarioADE usuario, AtividadeUsuario entity) { unitOfWork.RepositorioBase <AtividadeUsuario>().Remover(entity); NotificacaoIndividual notificacao = new NotificacaoIndividual(usuario.Id, usuario.Id, $"<i class='material-icons medium btn-outline-yellow prefix'>assignment_return</i> Sua atividade {entity}, foi deletada com sucesso!", $"Sua atividade {entity}, foi deletada com sucesso! na data {entity.DataHoraUltimaAlteracao.ToLocalTime()}."); await ServicoNotificacaoIndividual.CadastrarAsync(usuario, notificacao); await unitOfWork.Commit(); }
public Notificacao(NotificacaoIndividual Evento, IModeloADE Entidade) { Identificador = Evento.Identificador; Mensagem = Evento.Conteudo; Mensagem = Evento.Cabecalho; IdAutor = Evento.IdUsuarioRemetente; Data = Evento.DataHoraInclusao; this.Entidade = Entidade; TipoEntidade = Entidade.GetType().Name; }
public async Task <IActionResult> AtualizarPerfil(string NomeUsuario, string EmailUsuario) { try { UsuarioADE usuario = await ObterUsuarioLogado(); if (!ValidarEmail(EmailUsuario)) { throw new Exception("E-mail inválido ao alterar informações pessoais."); } string AlteracaoEmail = usuario.Email != EmailUsuario ? $"Confirme o seu novo e-mail! <br> Email alterado para {EmailUsuario}" : string.Empty; string AlteracaoUserName = usuario.UserName != NomeUsuario ? $"Nome de exibição alterado para {NomeUsuario}" : string.Empty; if (usuario.UserName != NomeUsuario) { usuario.UserName = NomeUsuario; await AtualizarUsuario(usuario); NotificacaoIndividual notificacao = new NotificacaoIndividual(usuario.Id, usuario.Id, "Nome alterado com sucesso!", AlteracaoUserName); await CriarNotificacaoIndividual(usuario, notificacao); } if (ValidarEmail(EmailUsuario)) { if (usuario.Email != EmailUsuario) { usuario.Email = EmailUsuario; usuario.EmailConfirmed = false; await AtualizarUsuario(usuario); NotificacaoIndividual notificacao = new NotificacaoIndividual(usuario.Id, usuario.Id, "Tudo pronto, só falta confirmar o seu novo e-mail", AlteracaoEmail); await CriarNotificacaoIndividual(usuario, notificacao); await EnviarEmailDeConfirmacaoDeRegistro(EmailUsuario); } } else { await LogError($"E-mail inválido utilizado ao alterar o perfil - usuario {usuario.ToString()}", "AlterarPerfil", EnumTipoLog.AlteracaoEmailUsuario); ViewBag.RetornoEnvioEmail = "Erro alterar o e-mail do usuário, e-mail inválido"; ModelState.AddModelError("Falha", "Erro alterar o e-mail do usuário, e-mail inválido"); RedirectToPage("/Acesso/Account/Manage"); } ViewBag.Retorno = $"{AlteracaoUserName} <hr> {AlteracaoEmail}"; await RefreshSignIn(usuario); } catch (Exception ex) { await LogError(ex.Message, ex.Source, EnumTipoLog.AlteracaoNomeUsuario); ViewBag.RetornoEnvioEmail = "Erro ao alterar informações do usuário"; ModelState.AddModelError("Falha", "Erro ao alterar informações do usuário"); } return(RedirectToPage("/Acesso/Account/Manage")); }
public override async Task LogRemocao(UsuarioADE usuario, FAQ entidade) { IList <string> AutorizacoesUsuario = await ServicoUsuario.ObterAutorizacaoUsuario(usuario); if (AutorizacoesUsuario.Any(x => x == EnumTipoUsuario.Admin.GetDescription())) { string Cabecalho = MensagemCabecalhoDelecaoFAQ(entidade); NotificacaoIndividual notificacao = new NotificacaoIndividual(entidade.IdUsuarioResposta, entidade.IdUsuarioPergunta, Cabecalho, $"Sua pergunta '{entidade.Pergunta}' foi removida por um administrador"); await CriarNotificacaoIndividual(usuario, notificacao); } }
public async Task CriarNotificacaoConclusaoAtividade(UsuarioADE usuario, AtividadeEstagio atividade) { ServicoAlteracaoEntidadesSistema servicoAlteracaoEntidadesSistema = new ServicoAlteracaoEntidadesSistema(ref unitOfWork); ModeloBase recurso = await servicoAlteracaoEntidadesSistema.ObterEntidadeAlteracao(atividade.EnumEntidade, atividade.IdentificadorEntidadeAtividade); string Descricao = $"<i class='material-icons medium prefix'>assignment_turned_in</i> Você concluiu a atividade {atividade.Titulo} ao realizar {atividade.TipoAtividade.ObterNomeEnum()} do recurso {recurso.ToString()} na data {atividade.DataHoraUltimaAlteracao.ToLocalTime()}"; NotificacaoIndividual notificacao = new NotificacaoIndividual(usuario.Id, usuario.Id, $"Atividade {atividade.Titulo} Concluida!", Descricao); await ServicoNotificacaoIndividual.CadastrarAsync(usuario, notificacao); await unitOfWork.Commit(); }
public async Task CriarNotificacaoParaAtividade(UsuarioADE usuario, AtividadeUsuario atividade) { EnumEstadoAtividade estado = atividade.VerificarEstado(); string icon = string.Empty; string verbo = string.Empty; string adjetivo = string.Empty; switch (estado) { case EnumEstadoAtividade.Aberto: if (atividade.Concluido) { icon = "assignment_turned_in"; verbo = "Concluiu"; adjetivo = "com sucesso"; } else { icon = "assignment_turned_in"; verbo = "Cadastrou"; adjetivo = "com sucesso"; } break; case EnumEstadoAtividade.Adiantado: icon = "card_giftcard"; verbo = "Concluiu"; adjetivo = "com extrema eficiência!"; break; case EnumEstadoAtividade.Atrasado: if (atividade.Concluido) { verbo = "Concluiu"; } else { verbo = "Cadastrou"; } icon = "assignment_late"; adjetivo = $"um pouco atrasado ({(DateTime.Today - atividade.Data).TotalDays} dias atrasado)"; break; } string tipoAtividade = atividade.TipoAtividade.GetDescription(); string titulo = $"<i class='material-icons medium btn-outline-yellow'>{icon}</i> {verbo} a atividade."; string descricao = $" <hr>Parabéns pelo seu empenho, continue assim!<hr> {verbo} {atividade.Titulo} {adjetivo} em {DateTime.Now.ToLocalTime()}"; NotificacaoIndividual notificacao = new NotificacaoIndividual(usuario.Id, usuario.Id, titulo, descricao); await ServicoNotificacaoIndividual.CadastrarAsync(usuario, notificacao); await unitOfWork.Commit(); }
private async Task NotificarAdminsAdicaoPergunta(string Pergunta, string IDUsuarioPergunta, Instituicao instituicao) { ServicoInformacaoDocumento servico = new ServicoInformacaoDocumento(ref unitOfWork); IList <UsuarioADE> Admins = await ObterUsuariosPorFuncao(EnumTipoUsuario.CriadorConteudo.GetDescription()); List <NotificacaoIndividual> ListaNotificoes = new List <NotificacaoIndividual>(); foreach (UsuarioADE Admin in Admins) { NotificacaoIndividual Notificacao = new NotificacaoIndividual(IDUsuarioPergunta, Admin.Id, $"Nova Pergunta ({Pergunta}) adicionada a instituição {instituicao.ToString()}", $"Nova Pergunta ({Pergunta}) adicionada a instituição {instituicao.ToString()}", EnumStatusNotificacaoIndividual.Enviado); await servico.CriarNotificacaoIndividual(Admin, Notificacao); } }
public override async Task LogCadastramento(UsuarioADE usuario, FAQ entidade) { string Mensagem = $"Sua pergunta ({entidade.Pergunta}) foi cadastrada e está no estado ({entidade.Status.GetDescription()})"; IList <string> AutorizacoesUsuario = await ServicoUsuario.ObterAutorizacaoUsuario(usuario); if (AutorizacoesUsuario.Any(x => x == EnumTipoUsuario.Admin.GetDescription())) { await LogAlteracaoEntidade(usuario, new FAQ(), entidade, EnumEntidadesSistema.FAQ, EnumTipoLog.CriacaoFAQ, Mensagem); } string Cabecalho = $"Sua pergunta ({entidade.Pergunta}) foi cadastrada"; NotificacaoIndividual notificacao = new NotificacaoIndividual(entidade.IdUsuarioResposta, entidade.IdUsuarioPergunta, Cabecalho, Mensagem); await CriarNotificacaoIndividual(usuario, notificacao); }
public override async Task LogAtualizacao(UsuarioADE usuario, FAQ Resposta, string Mensagem = null) { FAQ Pergunta = await BuscarPorId(Resposta.Identificador); IList <string> AutorizacoesUsuario = await ServicoUsuario.ObterAutorizacaoUsuario(usuario); if (AutorizacoesUsuario.Any(x => x == EnumTipoUsuario.Admin.GetDescription())) { await LogAlteracaoEntidade(usuario, Pergunta, Resposta, EnumEntidadesSistema.FAQ, EnumTipoLog.AlteracaoFAQ, Mensagem); } string Cabecalho = MensagemCabecalhoAtualizacaoFAQ(Resposta); NotificacaoIndividual notificacao = new NotificacaoIndividual(Resposta.IdUsuarioResposta, Resposta.IdUsuarioPergunta, Cabecalho, Mensagem); await CriarNotificacaoIndividual(usuario, notificacao); }
public override async Task LogRemocao(UsuarioADE usuario, ListaAmigos entidade) { UsuarioADE solicitado = await ServicoUsuario.BuscarPorId(entidade.IdAmigo); string Mensagem1 = $"Sua amizade com {solicitado.UserName} foi encerrada."; string Mensagem2 = $"{usuario.UserName} pode ter te removido da lista de amigos."; string Cabecalho1 = $"Encerrar solicitação de amizade."; string Cabecalho2 = $"Alteração em lista de amigos."; NotificacaoIndividual notificacao1 = new NotificacaoIndividual(entidade.IdUsuario, entidade.IdUsuario, Cabecalho1, Mensagem1); NotificacaoIndividual notificacao2 = new NotificacaoIndividual(entidade.IdUsuario, entidade.IdAmigo, Cabecalho2, Mensagem2); await CriarNotificacaoIndividual(usuario, notificacao1); await CriarNotificacaoIndividual(usuario, notificacao2); }
public override async Task LogCadastramento(UsuarioADE usuario, ListaAmigos entidade) { UsuarioADE solicitado = await ServicoUsuario.BuscarPorId(entidade.IdAmigo); string Mensagem1 = $"Sua solicitação de amizade foi enviada para {solicitado.UserName}. <br> Você já pode encontrá-lo no chat!"; string Mensagem2 = $"Você recebeu uma solicitação de amizade de {usuario.UserName}. <br> Ao aceitar, vocês poderão trocar mensagens no chat!"; string Cabecalho1 = $"Solicitação de amizade enviada."; string Cabecalho2 = $"Solicitação de amizade recebida."; NotificacaoIndividual notificacao1 = new NotificacaoIndividual(entidade.IdUsuario, entidade.IdUsuario, Cabecalho1, Mensagem1); NotificacaoIndividual notificacao2 = new NotificacaoIndividual(entidade.IdUsuario, entidade.IdAmigo, Cabecalho2, Mensagem2); await CriarNotificacaoIndividual(usuario, notificacao1); await CriarNotificacaoIndividual(usuario, notificacao2); }
public async Task <IActionResult> CadastrarVisualizacaoNotificacaoIndividual(int idNotificacao) { try { UsuarioADE usuario = await ObterUsuarioLogado(); using (unitOfWork = new UnitOfWork(context)) { _servicoNotificacaoIndividual = new ServicoNotificacaoIndividual(ref unitOfWork); NotificacaoIndividual notificacao = await _servicoNotificacaoIndividual.BuscarPorId(idNotificacao); await _servicoNotificacaoIndividual.Dismiss(usuario, notificacao); return(Json("{\"Sucesso\": \"Visualização de notificação incluida.\"}")); } } catch (Exception ex) { await LogError(ex.Message, ex.Source, EnumTipoLog.ErroInterno); return(Json("{\"Erro\": \"Erro ao incluir visualizaçao de notificação\"}")); } }
public async Task CriarNotificacaoIndividual(UsuarioADE usuario, NotificacaoIndividual notificacao) { await ServicoNotificacaoIndividual.CadastrarAsync(usuario, notificacao); }
public async Task CriarNotificacaoIndividual(UsuarioADE usuario, NotificacaoIndividual entity) { entity.DataHoraUltimaAlteracao = DateTime.Now; await ServicoNotificacaoIndividual.CadastrarAsync(usuario, entity); }