예제 #1
0
        //recuperar senha etapa1
        public async Task <Models.TbLogin> VerificarEmailRecuperarSenha(Models.Request.EmailRequest.EmailRecuperarSenha request, string codigo)
        {
            Models.TbLogin   login  = new Models.TbLogin();
            Models.TbCliente tabela = context.TbCliente.Include(x => x.IdLoginNavigation)
                                      .FirstOrDefault(x => x.DsEmail == request.Email);

            Models.TbFuncionario tabelaFuncionario = context.TbFuncionario.Include(x => x.IdLoginNavigation)
                                                     .FirstOrDefault(x => x.DsEmail == request.Email);
            if (tabela != null)
            {
                tabela.IdLoginNavigation.DsCodigoVerificacao = codigo;
                tabela.IdLoginNavigation.DtCodigoVerificacao = DateTime.Now;
                login = await ConsultarLoginPorId(tabela.IdLogin);
            }

            else if (tabelaFuncionario != null)
            {
                tabelaFuncionario.IdLoginNavigation.DsCodigoVerificacao = codigo;
                tabelaFuncionario.IdLoginNavigation.DtCodigoVerificacao = DateTime.Now;
                login = await ConsultarLoginPorId(tabelaFuncionario.IdLogin);
            }

            else
            {
                throw new ArgumentException("Esse email ainda não esta cadastrado.");
            }
            await context.SaveChangesAsync();

            return(login);
        }
예제 #2
0
        public async Task <Models.TbLogin> EnviarCodigoRecuperarSenha(Models.Request.EmailRequest.EmailRecuperarSenha request)
        {
            Database.LoginDatabase database = new Database.LoginDatabase();
            string codigo = GerarCodigolAleatorio();

            Models.TbLogin login = await database.VerificarEmailRecuperarSenha(request, codigo);

            string titulo = "Resetar Senha";
            string corpo  = $"<div><h3>Paresce que você esqueceu sua senha :(</h3></div>" + $"<div>não se preocupe, basta digitar esse código {codigo}</div>" +
                            $"<div>na pagina para qual foi direcionado.</div>";

            this.EnvioEmail(request.Email, titulo, corpo);

            return(login);
        }
예제 #3
0
        public async Task <ActionResult <Models.Response.EmailResponse.RecuperarSenhar> > ResetarSenha(Models.Request.EmailRequest.EmailRecuperarSenha request)
        {
            try
            {
                Models.TbLogin tabela = await gerenciadorEmail.EnviarCodigoRecuperarSenha(request);

                return(conversor.ParaResponse(tabela));
            }
            catch (System.Exception ex)
            {
                return(BadRequest(new Models.Response.ErroResponse(400, ex.Message)));
            }
        }