Example #1
0
        /// <summary>
        ///     Controller para que el usuario inicie sesion
        /// </summary>
        /// <param name="loginDTO">Objeto login a ingresar a la aplicaicon</param>
        /// <returns>Objeto tipo Entity con los datos del usuario que se a logeado </returns>
        /// <exception cref="LoginUserNotFoundException">El objeto a retornar es nulo</exception>
        /// <exception cref="DatabaseException">Algun error con la base de datos</exception>

        //POST : /api/Login
        public ActionResult <LoginDTO> Login([FromBody] LoginDTO loginDTO)
        {
            try{
                LoginMapper    LoginMapper = MapperFactory.createLoginMapper();
                Entity         entity      = LoginMapper.CreateEntity(loginDTO);
                GetUserCommand command     = CommandFactory.loginGetUserCommand((Login)entity);
                command.Execute();

                Login answer = command.GetResult();
                if (answer == null)
                {
                    throw new LoginUserNotFoundException("Correo o clave invalido");
                }
                else
                {
                    DTO lDTO = LoginMapper.CreateDTO(answer);
                    return(Ok(lDTO));
                }
            }
            catch (DatabaseException ex) {
                _logger?.LogError(ex, "Database exception cuando se intento iniciar sesion.");
                return(StatusCode(500, ex.Message));
            }
            catch (LoginUserNotFoundException) {
                return(BadRequest(new { message = "Correo o clave invalida." }));
            }
        }
        /// <summary>
        ///     Controller para cambiar la clave del usuario
        /// </summary>
        /// <param name="loginDTO">Objeto login a cambiar su clave</param>
        /// <returns>Objeto tipo Entity con los datos del usuario luego de cambiar su clave</returns>
        /// <exception cref="PasswordRecoveryException">El objeto a retornar es nulo</exception>
        /// <exception cref="DatabaseException">Algun error con la base de datos</exception>

        //POST : /api/Email
        public ActionResult <LoginDTO> Recovery([FromBody] LoginDTO loginDTO)
        {
            try{
                LoginMapper             LoginMapper = MapperFactory.createLoginMapper();
                Entity                  entity      = LoginMapper.CreateEntity(loginDTO);
                RecoveryPasswordCommand command     = CommandFactory.RecoveryPasswordCommand((Login)entity);
                command.Execute();

                Login objUser = command.GetResult();

                if (objUser != null)
                {
                    Console.WriteLine("Correo del usuario que modifico: ");
                    Console.WriteLine(objUser.email);
                    Console.WriteLine("Clave del usuario modificada: ");
                    Console.WriteLine(objUser.password);

                    //logica correo
                    var message = new MimeMessage();
                    //From Address
                    message.From.Add(new MailboxAddress("Vacanze Administracion", "*****@*****.**"));
                    //To Address
                    message.To.Add(new MailboxAddress("Usuario", address: objUser.email));
                    //Subject
                    message.Subject = "Recuperacion De ContraseƱa : ";

                    message.Body = new TextPart("plain")
                    {
                        Text = "Su contraseƱa nueva: " + objUser.password
                    };


                    using (var client = new MailKit.Net.Smtp.SmtpClient()){
                        client.CheckCertificateRevocation = false;
                        client.Connect("smtp.gmail.com", 587);
                        client.Authenticate("*****@*****.**", "_Gx123456");
                        client.Send(message);
                        client.Disconnect(true);
                        client.Dispose();
                    }
                    LoginDTO ldto = LoginMapper.CreateDTO(objUser);
                    return(Ok(ldto));
                }
                else
                {
                    return(BadRequest(new { message = "Correo invalido." }));
                }
            }
            catch (DatabaseException ex) {
                _logger?.LogError(ex, "Database exception cuando se intenta mandar el correo con la nueva clave al cliente");
                return(StatusCode(500, ex.Message));
            }
            catch (PasswordRecoveryException) {
                return(BadRequest(new { message = "Correo invalido." }));
            }
        }
Example #3
0
        public void CreateLoginEntityTest()
        {
            var loginEntity = _loginMapper.CreateEntity(_loginDto);

            Assert.AreEqual(_loginDto.email, loginEntity.email);
        }