public async Task <Models.TbLogin> ConsultarLoginPorEmailAsync(string email)
        {
            if (email == string.Empty)
            {
                throw new Exception("Email não pode ser vazio.");
            }

            if (!email.Contains('@'))
            {
                throw new Exception("Email inválido, insira a empresa de seu email.");
            }

            bool emailOk = await this.ValidarEmailAlterarUsuario(email);

            if (emailOk == false)
            {
                throw new Exception("Email não cadastrado, por favor insira outro email.");
            }

            Models.TbLogin resp = await usuarioDb.ConsultarLoginPorEmailAsync(email);

            if (resp == null)
            {
                throw new Exception("Usuário não existe.");
            }

            return(resp);
        }
示例#2
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);
        }
示例#3
0
        public Models.TbLogin ConversorTabelaLoginRequestCadastrar(Models.Request.AnuncioRoupasRequest.Cadastro req)
        {
            Models.TbLogin resp = new Models.TbLogin();
            resp.DsUsername = req.Username.Trim();
            resp.DsSenha    = req.Senha.Trim();

            Models.TbUsuario user = new Models.TbUsuario();
            user.NmUsuario             = req.NomeUsuario.Trim();
            user.DsEmail               = req.Email.Trim();
            user.DtNascimento          = req.DataDeNascimento;
            user.DsSexo                = req.Sexo.Trim();
            user.DsCpf                 = req.CPF.Trim();
            user.DsRg                  = req.RG.Trim();
            user.DsCelular             = req.Celular.Trim();
            user.DsEstado              = req.Estado.Trim();
            user.DsCidade              = req.Cidade.Trim();
            user.DsCep                 = req.CEP.Trim();
            user.DsBairro              = req.Bairro.Trim();
            user.DsNEndereco           = req.N_Endereco.Trim();
            user.DsEndereco            = req.Endereco.Trim();
            user.DsComplementoEndereco = req.ComplementoEndereco.Trim();
            user.BtConcordoTermos      = req.ConcordoTermos;

            resp.TbUsuario.Add(user);

            return(resp);
        }
示例#4
0
        /*- Login -*/

        public Models.TbLogin Login(Models.TbLogin req)
        {
            if (req.DsEmail == string.Empty || !req.DsEmail.Contains('@'))
            {
                throw new Exception("Email inválido.");
            }
            if (req.DsSenha == string.Empty)
            {
                throw new Exception("Senha inválida.");
            }

            req = db.Login(req);

            if (req.IdLogin <= 0 || req.DsPermissao == string.Empty)
            {
                throw new Exception("Usuário não existe.");
            }
            if (req.TbCliente.Any() ? req.TbCliente.FirstOrDefault().NmCliente == string.Empty
                                   : req.TbFuncionario.FirstOrDefault().NmFuncionario == string.Empty)
            {
                throw new Exception("Usuário não existe.");
            }

            return(req);
        }
        public ActionResult <Models.Response.SucessoResponse> AlterarInformacoesCliente([FromForm] Models.Request.InformacoesClienteRequest informacoesRequest, int idUsuario)
        {
            try
            {
                Models.TbLogin   login   = conversorInfoUsuario.ParaTbLogin(informacoesRequest);
                Models.TbCliente cliente = conversorInfoUsuario.ParaTbCliente(informacoesRequest, idUsuario);

                if (informacoesRequest.ImagemUsuario != null)
                {
                    cliente.DsFoto = gerenciadorFotoBusiness.GerarNovoNome(informacoesRequest.ImagemUsuario.FileName);
                }

                business.AlterarInformacoesCliente(login, cliente);

                if (informacoesRequest.ImagemUsuario != null)
                {
                    gerenciadorFotoBusiness.SalvarFoto(cliente.DsFoto, informacoesRequest.ImagemUsuario);
                }

                return(new Models.Response.SucessoResponse(200, "Alterado Com Sucesso."));
            }
            catch (System.Exception ex)
            {
                return(BadRequest(new Models.Response.ErroResponse(
                                      400, ex.Message
                                      )));
            }
        }
示例#6
0
 public void Cadastrar(Models.TbLogin req, string ConfirmarSenha)
 {
     if (req.DsSenha != ConfirmarSenha)
     {
         throw new ArgumentException("Senhas diferente. Tente conferir a senha novamente.");
     }
     ValidarTexto(req.DsUsername);
     ValidarTexto(req.DsUsername);
     ValidarTexto(req.TbUsuario.FirstOrDefault().NmUsuario);
     ValidarTexto(req.TbUsuario.FirstOrDefault().DsEmail);
     ValidarData(req.TbUsuario.FirstOrDefault().DtNascimento);
     ValidarTexto(req.TbUsuario.FirstOrDefault().DsSexo);
     ValidarTexto(req.TbUsuario.FirstOrDefault().DsCpf);
     ValidarTexto(req.TbUsuario.FirstOrDefault().DsRg);
     ValidarTexto(req.TbUsuario.FirstOrDefault().DsCelular);
     ValidarTexto(req.TbUsuario.FirstOrDefault().DsEstado);
     ValidarTexto(req.TbUsuario.FirstOrDefault().DsCidade);
     ValidarTexto(req.TbUsuario.FirstOrDefault().DsCep);
     ValidarTexto(req.TbUsuario.FirstOrDefault().DsBairro);
     ValidarTexto(req.TbUsuario.FirstOrDefault().DsNEndereco);
     ValidarTexto(req.TbUsuario.FirstOrDefault().DsEndereco);
     ValidarTermos(req.TbUsuario.FirstOrDefault().BtConcordoTermos);
     if (req.TbUsuario.FirstOrDefault().DsCpf.Length != 14)
     {
         throw new ArgumentException("CPF incorreto.");
     }
     if (req.TbUsuario.FirstOrDefault().DsCep.Length != 9)
     {
         throw new ArgumentException("CEP incorreto.");
     }
 }
        public void AlterarSenha(Models.TbLogin login)
        {
            Models.TbLogin alterado = db.TbLogin.FirstOrDefault(x => x.IdLogin == login.IdLogin);
            alterado.DsSenha = "1234";

            db.SaveChanges();
        }
        public void AlterarLogin(Models.TbLogin login)
        {
            Models.TbLogin alterado = db.TbLogin.FirstOrDefault(t => t.IdLogin == login.IdLogin);
            alterado.DsLogin = login.DsLogin;

            db.SaveChanges();
        }
示例#9
0
        public ActionResult <Models.Response.InformacoesContaUsuarioResponse> ProcurarContaUsuario(string email)
        {
            try
            {
                Models.TbLogin login = business.PegarLoginUsuario(email);


                if (login.DsPerfil == "Cliente")
                {
                    int idLogin = login.IdLogin;
                    Models.TbCliente cliente = business.RetornarCliente(idLogin);
                    Models.Response.InformacoesContaUsuarioResponse infoResponse = new Models.Response.InformacoesContaUsuarioResponse();
                    return(conversor.ParaInfoContaResponse(cliente));
                }

                else
                {
                    int idLogin = login.IdLogin;
                    Models.TbFuncionario funcionario = business.RetornarFuncionario(idLogin);
                    Models.Response.InformacoesContaUsuarioResponse infoResponse = new Models.Response.InformacoesContaUsuarioResponse();
                    return(conversor.ParaInfoContaResponse(funcionario));
                }
            }
            catch (System.Exception ex)
            {
                return(BadRequest(new Models.Response.ErroResponse(
                                      400, ex.Message
                                      )));
            }
        }
示例#10
0
        public void Deletar(int id)
        {
            Models.TbLogin login = db.TbLogin.FirstOrDefault(x => x.IdLogin == id);

            db.TbLogin.Remove(login);
            db.SaveChanges();
        }
        public async Task <ActionResult <Models.Response.AlterarUsuarioResponse> > AlterarUsuarioAsync(Models.Request.AlterarUsuarioRequest req)
        {
            try
            {
                esqueciSenhaBsn.ValidarSenhasIdenticas(req.Senha, req.ConfirmarSenha);

                Models.TbLogin tbLoginAtual = await usuarioBsn.ConsultarLoginPorEmailAsync(req.Email);

                Models.TbLogin tbLoginNovo = usuarioCnv.ToTbLogin(req);

                Models.TbUsuario tbUsuarioNovo  = usuarioCnv.ToTbUsuario(req);
                Models.TbUsuario tbUsuarioAtual = await usuarioBsn.ConsultarUsuarioPorIdLoginAsync(tbLoginAtual.IdLogin);

                tbLoginAtual = await usuarioBsn.AlterarLoginAsync(tbLoginAtual, tbLoginNovo);

                tbUsuarioAtual = await usuarioBsn.AlterarUsuarioAsync(tbUsuarioAtual, tbUsuarioNovo);

                Models.Response.AlterarUsuarioResponse resp = usuarioCnv.ToAlterarUsuarioResponse(tbLoginAtual, tbUsuarioAtual);

                return(resp);
            }
            catch (Exception e)
            {
                return(BadRequest(
                           new Models.Response.ErroResponse(400, e.Message)
                           ));
            }
        }
示例#12
0
        public Models.TbLogin Login(Models.TbLogin tb)
        {
            if (tb.DsEmail == string.Empty || !tb.DsEmail.Contains('@'))
            {
                throw new Exception("Email Invalido.");
            }
            if (tb.DsSenha == string.Empty)
            {
                throw new Exception("Senha Invalida.");
            }

            db.Login(tb);

            if (tb.IdLogin <= 0 || tb.DsPerfil == string.Empty)
            {
                throw new Exception("Usuario não existe.");
            }
            if (tb.TbCliente.Any() ? tb.TbCliente.FirstOrDefault().NmCliente == string.Empty
                                  : tb.TbFuncionario.FirstOrDefault().NmFuncionario == string.Empty)
            {
                throw new Exception("Usuario não existe.");
            }

            return(tb);
        }
示例#13
0
        private void ValidarLogin(Models.TbLogin login)
        {
            Models.TbLogin existe = new Models.TbLogin();

            if (login.IdLogin != 0)
            {
                Models.TbLogin antigo = dbLogin.BuscarPorID(login.IdLogin);

                if (antigo.DsLogin != login.DsLogin)
                {
                    existe = dbLogin.VerificarSeExiste(login);

                    if (existe != null)
                    {
                        throw new ArgumentException("Login já existente, escolha outro.");
                    }
                }
            }
            else
            {
                existe = dbLogin.VerificarSeExiste(login);

                if (existe != null)
                {
                    throw new ArgumentException("Login já existente, escolha outro.");
                }
            }

            if (login.DsLogin.Length < 3)
            {
                throw new ArgumentException("Login muito curto.");
            }
        }
示例#14
0
        public void AlterarSenha(string novaSenha, int idLogin)
        {
            Models.TbLogin login = this.PegarLoginUsuario(idLogin);
            login.DsSenha = novaSenha;

            ctx.SaveChanges();
        }
示例#15
0
        public string LerToken(Models.TbLogin login, string token)
        {
            string key = this.GerarKey(login).PadRight(16, '#');
            string msn = Decrypt(key, token);

            return(msn);
        }
示例#16
0
        public async Task <ActionResult <Models.Response.CodigoRecuperacaoResponse> > GerarCodigoAsync(Models.Request.CodigoRecupecaoRequest req)
        {
            try
            {
                long codigo = esqueciSenhaBsn.GerarCodigoRecuperacao();

                Models.TbLogin usuario = await usuarioBsn.ConsultarLoginPorEmailAsync(req.Email);

                Models.TbEsqueciSenha tb = esqueciSenhaCnv.ToTbEsqueciSenha(codigo, usuario, req.Email);

                tb = await esqueciSenhaBsn.SalvarCodigoRecuperacaoAsync(tb);

                gerenciadorEmailBsn.EnviarEmailCodigo(tb.DsEmail, tb.TmExpiracao, tb.NrCodigo);

                Models.Response.CodigoRecuperacaoResponse resp = esqueciSenhaCnv.ToEsqueciSenhaResponse(tb, usuario);

                return(resp);
            }
            catch (Exception e)
            {
                return(BadRequest(
                           new Models.Response.ErroResponse(400, e.Message)
                           ));
            }
        }
示例#17
0
        public async Task <ActionResult <Models.Response.AcessoResponse> > Acessar(Models.Request.AcessoRequest request)
        {
            try
            {
                Models.TbLogin login = await business.ConsultarLoginBusiness(request.user, request.senha);

                string perfil;
                int    idpessoa;

                if (login.TbCliente.FirstOrDefault(x => x.IdLogin == login.IdLogin) != null)
                {
                    idpessoa = login.TbCliente.FirstOrDefault(x => x.IdLogin == login.IdLogin).IdCliente;
                    perfil   = "cliente";
                }
                else
                {
                    idpessoa = login.TbFuncionario.FirstOrDefault(x => x.IdLogin == login.IdLogin).IdFuncionario;
                    perfil   = "funcionario";
                }

                string token = business.GerarToken(login, idpessoa);

                Models.Response.AcessoResponse response = acessoConversor.Conversor(login.NmUsuario, token, idpessoa, perfil);

                return(response);
            }
            catch (System.Exception ex)
            {
                return(NotFound(
                           new Models.Response.ErroResponse(404, ex.Message)
                           ));
            }
        }
示例#18
0
        public async Task <Models.TbLogin> ConsultarUsuario(string user, string senha)
        {
            Models.TbLogin login = await db.TbLogin.Include(x => x.TbCliente)
                                   .Include(x => x.TbFuncionario)
                                   .FirstOrDefaultAsync(x => x.NmUsuario == user);

            if (login != null)
            {
                login.DtUltimoLogin = DateTime.Now;
            }

            if (login == null)
            {
                throw new ArgumentException("Nome de usuario não cadastrado.");
            }

            if (senha != login.DsSenha)
            {
                throw new ArgumentException("Senha informada está incorreta.");
            }

            await db.SaveChangesAsync();

            return(login);
        }
        public async Task <ActionResult <Models.Response.LoginResponse> > CadastrarUsuarioAsync(Models.Request.CadastrarUsuarioRequest req)
        {
            try
            {
                esqueciSenhaBsn.ValidarSenhasIdenticas(req.Senha, req.ConfirmarSenha);

                Models.TbLogin tbLogin = usuarioCnv.ToCadastrarTbLogin(req.Email, req.Senha);

                Models.TbUsuario tbUsuario = usuarioCnv.ToCadastrarTbUsuario(req.NomeUsuario, req.NomeCompleto);

                bool ignoreValidation = await usuarioBsn.ValidarCadastroUsuarioLogin(tbUsuario, tbLogin);

                tbLogin = await usuarioBsn.CadastrarLoginAsync(tbLogin);

                tbUsuario = await usuarioBsn.CadastrarUsuarioAsync(tbUsuario);

                tbUsuario = await usuarioBsn.CadastrarUsuarioLoginAsync(tbUsuario, tbLogin.IdLogin);

                Models.TbQuadro tbQuadro = usuarioCnv.ToTbQuadro(tbUsuario.IdUsuario);

                tbQuadro = await quadroBsn.CadastrarQuadroAsync(tbQuadro);

                gerenciadorEmail.EnviarEmailCadastroDeUsuario(tbLogin.DsEmail);

                Models.Response.LoginResponse resp = usuarioCnv.ToLoginResponse(tbLogin, tbUsuario.NmUsuario);

                return(resp);
            }
            catch (Exception e)
            {
                return(BadRequest(
                           new Models.Response.ErroResponse(400, e.Message)
                           ));
            }
        }
示例#20
0
 public Models.Response.LoginResponse ParaResponse(Models.TbLogin tb)
 {
     return(new Models.Response.LoginResponse {
         Id = tb.IdLogin,
         Email = tb.DsEmail,
     });
 }
        /*- Login -*/

        public Models.TbLogin Login(Models.TbLogin req)
        {
            return(ctx.TbLogin
                   .Include(x => x.TbCliente)
                   .Include(x => x.TbFuncionario)
                   .FirstOrDefault(x => x.DsEmail == req.DsEmail && x.DsSenha == req.DsSenha));
        }
示例#22
0
        public Models.TbLogin PegarLoginUsuario(string email, string senha)
        {
            Models.TbLogin login = ctx.TbLogin.FirstOrDefault(x => x.DsEmail == email &&
                                                              x.DsSenha == senha);

            return(login);
        }
示例#23
0
        public Models.TbLogin RedefinirSenha(int id, string senha)
        {
            Models.TbLogin login = ctx.TbLogin.FirstOrDefault(x => x.IdLogin == id);
            login.DsSenha = senha;
            ctx.SaveChanges();

            return(login);
        }
示例#24
0
        public Models.TbLogin AlterarFuncionario(Models.TbLogin b, Models.TbLogin a)
        {
            b.DsEmail = a.DsEmail;
            b.DsSenha = a.DsSenha;
            ctx.SaveChanges();

            return(b);
        }
示例#25
0
        public Models.TbLogin ParaTabela(Models.Request.AlterarSenhaRequest req)
        {
            Models.TbLogin login = new Models.TbLogin();
            login.IdLogin = req.IdLogin;
            login.DsSenha = req.novaSenha;

            return(login);
        }
        public async Task <Models.TbLogin> DeletarLoginAsync(Models.TbLogin req)
        {
            ctx.TbLogin.Remove(req);

            await ctx.SaveChangesAsync();

            return(req);
        }
示例#27
0
        public string GerarToken(Models.TbLogin login, int idperfil)
        {
            string key   = this.GerarKey(login).PadRight(16, '#');;
            string valor = $"{idperfil}$|${login.NmUsuario}$|${login.IdLogin}$|$Next-Gen-Books";
            string token = Encrypt(key, valor);

            return(token);
        }
示例#28
0
 public Models.TbLogin ParaTbLogin(Models.Request.CadastrarClienteRequest cadastroRequest)
 {
     Models.TbLogin tbLogin = new Models.TbLogin();
     tbLogin.DsEmail  = cadastroRequest.Email;
     tbLogin.DsPerfil = "Cliente";
     tbLogin.DsSenha  = cadastroRequest.Senha;
     return(tbLogin);
 }
示例#29
0
        public Models.TbFuncionario PegarInformacoesFuncionario(int idLogin)
        {
            Models.TbLogin login         = ctx.TbLogin.FirstOrDefault(x => x.IdLogin == idLogin);
            int            numeroIdLogin = login.IdLogin;

            Models.TbFuncionario funcionario = ctx.TbFuncionario.FirstOrDefault(x => x.IdLogin == numeroIdLogin);
            return(funcionario);
        }
        public async Task <Models.TbLogin> AtualizarLoginAsync(Models.TbLogin loginAntigo, Models.TbLogin loginAtual)
        {
            loginAntigo.DtUltLogin = loginAtual.DtUltLogin;

            await ctx.SaveChangesAsync();

            return(loginAntigo);
        }