예제 #1
0
        public void GantiPassword(IGantiPasswordModel model)
        {
            _moelDAC.ValidateModel(model);

            if (!model.password_baru.ToLower().Equals(model.konf_password_baru.ToLower()))
            {
                throw new ArgumentException("Password Baru dan Konfirmasi Password tidak sama !!!");
            }

            _repo.GantiPassword(model);
        }
예제 #2
0
        public void GantiPassword(IGantiPasswordModel model)
        {
            var dataAccessStatus = new DataAccessStatus();

            using (var context = new DbContext())
            {
                try
                {
                    var queryStr  = "SELECT * FROM user WHERE login_id = @login_id";
                    var userModel = context.Conn.Query <UserModel>(queryStr, new { model.login_id }).FirstOrDefault();

                    if (userModel != null)
                    {
                        if (!PasswordHash.ValidatePassword(model.password_sekarang, userModel.password))
                        {
                            dataAccessStatus.Status        = "Password Wrong";
                            dataAccessStatus.CustomMessage = "Password Sekarang salah !!!";

                            throw new DataAccessException(dataAccessStatus);
                        }

                        userModel.password = PasswordHash.CreateHash(model.password_baru);
                        context.Conn.Update(userModel);
                    }
                    else
                    {
                        dataAccessStatus.Status        = "User Not Found";
                        dataAccessStatus.CustomMessage = "User tidak ditemukan.";

                        throw new DataAccessException(dataAccessStatus);
                    }
                }
                catch (MySqlException ex)
                {
                    dataAccessStatus = SetDataAccessValues(ex, ErrorMessageType.Update);
                    throw new DataAccessException(message: ex.Message, innerException: ex.InnerException,
                                                  dataAccessStatus: dataAccessStatus);
                }
            }
        }