コード例 #1
0
        /// <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);
        }