public MemberDetailViewModel UpdateMemberDetail(MemberDetailViewModel memberDetail) { return _connection.DbPath.ExecStoredProcedure<MemberDetailViewModel>("UpdateMemberDetail", new { memberDetail.MemberId, memberDetail.PasswordHash, memberDetail.PasswordSalt, memberDetail.NickName }).FirstOrDefault(); }
public ActionResult MemberProfile(MemberDetailViewModel memberDetailViewModel) { memberDetailViewModel.MemberId = GetSessionUser.Id; var result = _memberBusiness.UpdateMemberDetail(memberDetailViewModel); if (!result.Success) { ModelState.AddModelError("errorMemberProfile", result.Message); memberDetailViewModel.Error = Errors(GetModelErrors()); } return Json(memberDetailViewModel); }
public ResultSet<MemberDetailViewModel> UpdateMemberDetail(MemberDetailViewModel memberDetail) { var result = new ResultSet<MemberDetailViewModel>(); result.Object = memberDetail; var member = GetMemberByMemberId(memberDetail.MemberId); if (member.Success) { DateTime dateTime; #region Basic Fields Validations if (string.IsNullOrEmpty(memberDetail.NickName) || !ValidationUtils.UserNameIsValid(memberDetail.NickName)) { result.Message = "Invalid nickname"; return result; } else if ((!string.IsNullOrEmpty(memberDetail.CurrentPassword) && memberDetail.CurrentPassword.Length > 16)) { result.Message = "Invalid password(maximum current password length can be 16 character)"; return result; } else if ((!string.IsNullOrEmpty(memberDetail.NewPassword) && memberDetail.NewPassword.Length > 16)) { result.Message = "Invalid password(maximum new password length can be 16 character)"; return result; } else if ((!string.IsNullOrEmpty(memberDetail.NewPasswordMatch) && memberDetail.NewPasswordMatch.Length > 16)) { result.Message = "Invalid password(maximum password repeat length can be 16 character)"; } #endregion #region This fields are exists? /*************This nickname is exists***************************************/ var _existMember = _memberRepository.GetMemberByNickname(memberDetail.NickName); if (_existMember != null && _existMember.Id != member.Object.Id) { result.Message = "This nick name is in use"; return result; } #endregion #region Password Operations else if (!string.IsNullOrEmpty(memberDetail.NewPassword) && string.IsNullOrEmpty(memberDetail.NewPasswordMatch)) { result.Message = "New password and repeat did not match"; return result; } else if ((!string.IsNullOrEmpty(memberDetail.NewPassword) || !string.IsNullOrEmpty(memberDetail.NewPasswordMatch)) && (!string.IsNullOrEmpty(member.Object.PasswordHash)) && string.IsNullOrEmpty(memberDetail.CurrentPassword)) { result.Message = "Please enter current password"; return result; } else if (!string.IsNullOrEmpty(memberDetail.NewPassword) && !string.IsNullOrEmpty(memberDetail.NewPasswordMatch)) { if (memberDetail.NewPassword != memberDetail.NewPasswordMatch) { result.Message = "New password and repeat did not match"; return result; } string _hash = string.Empty, _salt = string.Empty; if (!string.IsNullOrEmpty(member.Object.PasswordHash)) if (!_hashProvider.VerifyHashString(memberDetail.CurrentPassword, member.Object.PasswordHash, member.Object.PasswordSalt)) { result.Message = "Current password is wrong"; return result; } _hashProvider.GetHashAndSaltString(memberDetail.NewPassword, out _hash, out _salt); memberDetail.PasswordHash = _hash; memberDetail.PasswordSalt = _salt; } #endregion var tempMemberDetail = _memberRepository.UpdateMemberDetail(memberDetail); if (tempMemberDetail != null) { result.Success = true; result.Object = tempMemberDetail; result.Message = "Your informations are updated"; } } return result; }