/// <summary> /// On Save - Happens before the record is saved /// </summary> /// <typeparam name="T">Entity Type</typeparam> /// <typeparam name="S">Request Type</typeparam> /// <typeparam name="R">Response Type</typeparam> /// <param name="request">Request</param> /// <param name="record">That that has been Mapped</param> public override R OnSave <T, R, S>(S request, T originalRecord, T record) { var saveRequest = request as SecurityUserMaintenanceSaveRequest; var securityUser = record as SecurityUser; // //Set the password expiration date accordingly // if (securityUser.PasswordNeverExpires || securityUser.UserCannotChangePassword) { securityUser.PasswordExpirationDate = null; } else if (!securityUser.PasswordNeverExpires && securityUser.PasswordExpirationDate == null && !String.IsNullOrWhiteSpace(saveRequest.NewPassword)) { var passwordExpirationDateResponse = _passwordService.CalculatePasswordExpirationDate(new CalculatePasswordExpirationDateRequest()); //securityUser.PasswordExpirationDate = passwordExpirationDateResponse.PasswordExpirationDate; } // //Set other account flags accordingly // if (!securityUser.AccountLocked) { securityUser.AccountLockedDate = null; } else if (securityUser.AccountLocked && securityUser.AccountLockedDate == null) { securityUser.AccountLockedDate = DateTime.Now; } //Simply return null to indicate success return(null); }