コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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();
        }
コード例 #5
0
 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;
 }
コード例 #6
0
        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"));
        }
コード例 #7
0
        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);
            }
        }
コード例 #8
0
        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();
        }
コード例 #9
0
        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();
        }
コード例 #10
0
        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);
            }
        }
コード例 #11
0
        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);
        }
コード例 #12
0
        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);
        }
コード例 #13
0
        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);
        }
コード例 #14
0
        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);
        }
コード例 #15
0
        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\"}"));
            }
        }
コード例 #16
0
 public async Task CriarNotificacaoIndividual(UsuarioADE usuario, NotificacaoIndividual notificacao)
 {
     await ServicoNotificacaoIndividual.CadastrarAsync(usuario, notificacao);
 }
コード例 #17
0
 public async Task CriarNotificacaoIndividual(UsuarioADE usuario, NotificacaoIndividual entity)
 {
     entity.DataHoraUltimaAlteracao = DateTime.Now;
     await ServicoNotificacaoIndividual.CadastrarAsync(usuario, entity);
 }