コード例 #1
0
        public void EnviarEmailDeCadastroNoSite(Models.Response.LoginResponse loginResponse)
        {
            string titulo = "Confirmação de Cadastro";
            string corpo  = $"Olá {loginResponse.Nome}, nós da Odonto estamos muito felizes pelo seu cadastro em nosso site. Estamos esperando pela sua primeira consulta.";

            this.EnviarEmail(loginResponse.Email, titulo, corpo);
        }
コード例 #2
0
        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)
                           ));
            }
        }
コード例 #3
0
        public Models.Response.LoginResponse ToLoginResponse(Models.TbLogin tb)
        {
            Models.Response.LoginResponse resp = new Models.Response.LoginResponse();

            resp.IdLogin     = tb.IdLogin;
            resp.NomeUsuario = tb.TbUsuario.FirstOrDefault().NmUsuario;

            return(resp);
        }
コード例 #4
0
        public Models.Response.LoginResponse ToLoginResponse(Models.TbLogin tb, string nomeUsuario)
        {
            Models.Response.LoginResponse resp = new Models.Response.LoginResponse();

            resp.IdLogin     = tb.IdLogin;
            resp.NomeUsuario = nomeUsuario;

            return(resp);
        }
コード例 #5
0
        public Models.Response.LoginResponse ParaLoginResponse(Models.TbLogin tb)
        {
            Models.Response.LoginResponse resp = new Models.Response.LoginResponse();

            resp.Login  = tb.IdLogin;
            resp.Perfil = tb.DsPerfil;
            resp.Nome   = tb.TbCliente.Any() ? tb.TbCliente.FirstOrDefault()?.NmCliente
                                           : tb.TbFuncionario.FirstOrDefault()?.NmFuncionario;

            return(resp);
        }
コード例 #6
0
        public Models.Response.LoginResponse ParaLoginResponse(Models.TbLogin request)
        {
            Models.Response.LoginResponse resp = new Models.Response.LoginResponse();

            resp.IdUsuario = dbLogin.RetornarIdDoUsuario(request);

            resp.Perfil = request.DsPerfil;

            resp.Foto = dbLogin.RetornarFotoDoUsuario(request);

            return(resp);
        }
コード例 #7
0
        public Models.Response.LoginResponse ToLoginResponse(Models.TbLogin req)
        {
            Models.Response.LoginResponse resp = new Models.Response.LoginResponse();

            resp.Login     = req.IdLogin;
            resp.Permissao = req.DsPermissao;
            resp.Nome      = req.TbCliente.Any() ?
                             req.TbCliente.FirstOrDefault()?.NmCliente :
                             req.TbFuncionario.FirstOrDefault()?.NmFuncionario;

            return(resp);
        }
コード例 #8
0
        public Models.Response.LoginResponse Convert(Models.TbLogin user)
        {
            Models.Response.LoginResponse result = new Models.Response.LoginResponse();

            result.usuario = user.DsEmail;
            if (user.IdClienteNavigation.IdCliente > 1)
            {
                result.cargo = "cliente";
            }
            else
            {
                result.cargo = user.IdFuncionarioNavigation.NmCargo;
            }

            return(result);
        }
コード例 #9
0
 public ActionResult <Models.Response.LoginResponse> CadastrarCliente(Models.Request.CadastrarClienteRequest cadastroCliente)
 {
     try
     {
         Models.TbCliente dadosCliente = conversor.ParaTbCliente(cadastroCliente);
         Models.TbLogin   dadosLogin   = conversor.ParaTbLogin(cadastroCliente);
         dadosLogin = business.CadastrarCliente(dadosLogin, dadosCliente);
         Models.Response.LoginResponse loginResponse = conversor.ParaLoginResponse(dadosLogin);
         return(loginResponse);
     }
     catch (System.Exception ex)
     {
         return(BadRequest(new Models.Response.ErroResponse(
                               ex.Message, 400
                               )));
     }
 }
コード例 #10
0
        public ActionResult <Models.Response.LoginResponse> Logar(Models.Request.LoginRequest loginRequest)
        {
            try
            {
                Models.TbLogin tbLogin = loginConversor.ParaTbLogin(loginRequest);
                tbLogin = business.Logar(tbLogin);

                Models.Response.LoginResponse resp = loginConversor.ParaLoginResponse(tbLogin);

                return(resp);
            }
            catch (System.Exception ex)
            {
                return(BadRequest(new Models.Response.ErroResponse(
                                      400, ex.Message
                                      )));
            }
        }
コード例 #11
0
        public ActionResult <Models.Response.LoginResponse> Login(Models.Request.LoginRequest req)
        {
            try
            {
                Models.TbLogin tb = conv.ParaLoginTabela(req);

                tb = busi.Login(tb);

                Models.Response.LoginResponse resp = conv.ParaLoginResponse(tb);

                return(resp);
            }
            catch (Exception ex)
            {
                return(BadRequest(
                           new Models.Response.ErroResponse(400, ex.Message)
                           ));
            }
        }
コード例 #12
0
        public ActionResult <Models.Response.LoginResponse> Login(Models.Request.LoginRequest req)
        {
            try
            {
                Models.TbLogin loginTb = cnv.ToLoginTable(req);

                loginTb = bsn.Login(loginTb);

                Models.Response.LoginResponse resp = cnv.ToLoginResponse(loginTb);

                return(resp);
            }
            catch (Exception e)
            {
                return(BadRequest(
                           new Models.Response.ErroResponse(e.Message, 400)
                           ));
            }
        }
コード例 #13
0
        public async Task <ActionResult <Models.Response.LoginResponse> > CadastrarCliente([FromForm] Models.Request.CadastroClienteRequest cadastroCliente)
        {
            try
            {
                validador.VerSeSenhasSaoIguais(cadastroCliente.Senha1, cadastroCliente.Senha2);

                Models.TbLogin   login   = cadastroConversor.ParaTbLogin(cadastroCliente);
                Models.TbCliente cliente = cadastroConversor.ParaTbCliente(cadastroCliente);

                if (cadastroCliente.ImagemUsuario != null)
                {
                    cliente.DsFoto = gerenciadorFoto.GerarNovoNome(cadastroCliente.ImagemUsuario.FileName);
                }

                else
                {
                    cliente.DsFoto = "user.png";
                }

                login = business.CadastrarCliente(login, cliente);

                if (cadastroCliente.ImagemUsuario != null)
                {
                    gerenciadorFoto.SalvarFoto(cliente.DsFoto, cadastroCliente.ImagemUsuario);
                }

                Models.Response.LoginResponse loginResponse = loginConversor.ParaLoginResponse(login);

                string corpo = $"Olá {cliente.NmCliente}. Nós da AgendaCar ficamos muito felizes por você se juntar a nós. Que tal agendar seu primeiro Test Drive?";

                await _mailer.EnviarEmailAsync(login.DsEmail, "Cadastro no AgendaCar", corpo);

                return(loginResponse);
            }
            catch (System.Exception ex)
            {
                return(BadRequest(new Models.Response.ErroResponse(
                                      400, ex.Message
                                      )));
            }
        }
コード例 #14
0
        public async Task <ActionResult <Models.Response.LoginResponse> > CadastrarFuncionario([FromForm] Models.Request.CadastroFuncionarioRequest cadastroFuncionario)
        {
            try
            {
                validador.VerSeSenhasSaoIguais(cadastroFuncionario.Senha1, cadastroFuncionario.Senha2);

                Models.TbLogin       login       = cadastroConversor.ParaTbLogin(cadastroFuncionario);
                Models.TbFuncionario funcionario = cadastroConversor.ParaTbFuncionario(cadastroFuncionario);

                if (cadastroFuncionario.ImagemUsuario != null)
                {
                    funcionario.DsFoto = gerenciadorFoto.GerarNovoNome(cadastroFuncionario.ImagemUsuario.FileName);
                }

                else
                {
                    funcionario.DsFoto = "user.png";
                }

                login = business.CadastrarFuncionario(login, funcionario);

                if (cadastroFuncionario.ImagemUsuario != null)
                {
                    gerenciadorFoto.SalvarFoto(funcionario.DsFoto, cadastroFuncionario.ImagemUsuario);
                }

                Models.Response.LoginResponse loginResponse = loginConversor.ParaLoginResponse(login);

                string corpo = $"Olá {funcionario.NmFuncionario}. Agora você faz parte da familía AgendaCar.";

                await _mailer.EnviarEmailAsync(login.DsEmail, "Cadastro no AgendaCar", corpo);

                return(loginResponse);
            }
            catch (System.Exception ex)
            {
                return(BadRequest(new Models.Response.ErroResponse(
                                      400, ex.Message
                                      )));
            }
        }
コード例 #15
0
        public async Task <ActionResult <Models.Response.LoginResponse> > LoginAsync(Models.Request.LoginRequest req)
        {
            try
            {
                Models.TbLogin tbLoginAtual  = usuarioCnv.ToCadastrarTbLogin(req.Email, req.Senha);
                Models.TbLogin tbLoginAntigo = await usuarioBsn.ConsultarLoginPorEmailAsync(req.Email);

                tbLoginAntigo = await usuarioBsn.LoginAsync(tbLoginAtual);

                tbLoginAtual = await usuarioBsn.AtualizarLoginAsync(tbLoginAntigo, tbLoginAtual);

                Models.Response.LoginResponse resp = usuarioCnv.ToLoginResponse(tbLoginAtual);

                return(resp);
            }
            catch (Exception ex)
            {
                return(BadRequest(
                           new Models.Response.ErroResponse(400, ex.Message)
                           ));
            }
        }
コード例 #16
0
    public void Handle_GivenFailedUseCaseResponse_SetsErrors()
    {
        // arrange
        var presenter = new LoginPresenter();

        // act
        presenter.Handle(new LoginResponse(new List <Error> {
            new Error(HttpStatusCode.BadRequest.ToString(), "Invalid username/password")
        }));

        // assert
        Models.Response.LoginResponse response = JsonSerializer.DeSerializeObject <Models.Response.LoginResponse>(presenter.ContentResult.Content);
        Assert.Equal((int)HttpStatusCode.Unauthorized, presenter.ContentResult.StatusCode);
        Assert.NotNull(response);
        Assert.NotNull(response.Errors);
        Assert.NotEmpty(response.Errors);
        Assert.False(response.Success);
        Assert.NotNull(response.Errors);
        Assert.False(string.IsNullOrEmpty(response.Errors.First().Code));
        Assert.False(string.IsNullOrEmpty(response.Errors.First().Description));
        Assert.Equal(HttpStatusCode.BadRequest.ToString(), response.Errors.First().Code);
        Assert.Equal("Invalid username/password", response.Errors.First().Description);
    }
コード例 #17
0
        public Models.Response.LoginResponse ParaLoginResponse(Models.TbLogin login)
        {
            Models.Response.LoginResponse loginResponse = new Models.Response.LoginResponse();

            loginResponse.IdLogin = login.IdLogin;
            loginResponse.Perfil  = login.DsPerfil;
            loginResponse.Email   = login.DsEmail;

            if (loginResponse.Perfil == "Cliente")
            {
                Models.TbCliente cliente = dbLogin.PegarInformacoesCliente(login.IdLogin);
                loginResponse.Nome      = cliente.NmCliente;
                loginResponse.IdUsuario = cliente.IdCliente;
            }

            if (loginResponse.Perfil == "Funcionário")
            {
                Models.TbFuncionario funcionario = dbLogin.PegarInformacoesFuncionario(login.IdLogin);
                loginResponse.Nome      = funcionario.NmFuncionario;
                loginResponse.IdUsuario = funcionario.IdFuncionario;
            }

            return(loginResponse);
        }