private void SaveAllSettings(SystemSecurityViewModel  model)
 {
     _settingService.SaveSetting<int>(SettingKeys.PasswordRequirement.MinimumLength, model.MinimumPasswordLength);
     _settingService.SaveSetting<int>(SettingKeys.PasswordRequirement.MinimumNonAlphanumericCharacters, model.MinimumNonAlphaNumericCharacter);
     _settingService.SaveSetting<int>(SettingKeys.PasswordRequirement.NumPasswordsRemembered, model.NumPasswordsRemembered);
     _settingService.SaveSetting<int>(SettingKeys.PasswordRequirement.PasswordExpiresInDays, model.PasswordExpires);
     _settingService.SaveSetting<bool>(SettingKeys.PasswordRequirement.NeedsUpperCase, model.IsUppercase);
     _settingService.SaveSetting<bool>(SettingKeys.PasswordRequirement.NeedsLowerCase, model.IsLowercase);
     _settingService.SaveSetting<bool>(SettingKeys.PasswordRequirement.NeedsSpecialCharacters, model.IsSpecialCharacter);
     _settingService.SaveSetting<bool>(SettingKeys.PasswordRequirement.NeedsNumeric, model.IsNumeric);
     _settingService.SaveSetting<bool>(SettingKeys.SystemSecurity.LoginAsEmailAddress, model.LoginAsEmailAddress);
     _settingService.SaveSetting<bool>(SettingKeys.SystemSecurity.ForgotPasswordEmailTemporaryPassword, model.ForgetPasswordTemporaryPassword);
     _settingService.SaveSetting<bool>(SettingKeys.SystemSecurity.ForgotPasswordSendEmailVerification, model.ForgetPasswordSendEmailVerification);
     _settingService.SaveEmailVerificationTemplate(model.EmailVerificationTemplate);
     _settingService.SaveForgotUserNameTemplate(model.ForgotUsernameTemplate);
     _settingService.SaveForgotPasswordEmailTemporaryPasswordTemplate(model.ForgotPasswordEmailTemplate);
     _settingService.SaveTermsOfServiceTemplate(model.TermsOfServiceTemplate);
     _settingService.SaveSaltValue(model.SaltValue);
 }
        public ActionResult Index()
        {
            var model = new SystemSecurityViewModel()
            {
                AllowSelfRegister = _settingService.GetSetting<bool>(SettingKeys.SystemSecurity.AllowSelfRegister),
                EmailVerificationTemplate = _settingService.GetSettingEmailVerificationTemplate(),
                ForgetPasswordSendEmailVerification = _settingService.GetSetting<bool>(SettingKeys.SystemSecurity.ForgotPasswordSendEmailVerification),
                ForgetPasswordTemporaryPassword = _settingService.GetSetting<bool>(SettingKeys.SystemSecurity.ForgotPasswordEmailTemporaryPassword),
                ForgotPasswordEmailTemplate = _settingService.GetSettingForgotPasswordEmailTemplate(),
                ForgotUsernameTemplate = _settingService.GetSettingForgotUsernameTemplate(),
                IsLowercase = _settingService.GetSetting<bool>(SettingKeys.PasswordRequirement.NeedsLowerCase),
                IsNumeric = _settingService.GetSetting<bool>(SettingKeys.PasswordRequirement.NeedsNumeric),
                IsSpecialCharacter = _settingService.GetSetting<bool>(SettingKeys.PasswordRequirement.NeedsSpecialCharacters),
                IsUppercase = _settingService.GetSetting<bool>(SettingKeys.PasswordRequirement.NeedsUpperCase),
                LoginAsEmailAddress = _settingService.GetSetting<bool>(SettingKeys.SystemSecurity.LoginAsEmailAddress),
                MinimumNonAlphaNumericCharacter = _settingService.GetSettingMinimumNonAlphaNumericCharacter(),
                MinimumPasswordLength = _settingService.GetSettingMinimumPasswordLength(),
                PasswordExpires = _settingService.GetSettingPasswordExpires(),
                NumPasswordsRemembered = _settingService.GetSettingReusePassword(),
                SaltValue = _settingService.GetSettingSaltValue(),
                TermsOfServiceTemplate = _settingService.GetSettingTermsOfServiceTemplate()
            };

            return View(model);
        }
        public ActionResult Index(SystemSecurityViewModel model, FormCollection form)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    model.LoginAsEmailAddress = form["UseEmailAddressAsUserName"] == "Yes";

                    if (form["ForgotPasswordSetting"] == "EmailTemporaryPassword")
                    {
                        model.ForgetPasswordTemporaryPassword = true;
                        model.ForgetPasswordSendEmailVerification = false;
                    }
                    else if (form["ForgotPasswordSetting"] == "SendEmailVerification")
                    {
                        model.ForgetPasswordTemporaryPassword = false;
                        model.ForgetPasswordSendEmailVerification = true;
                    }
                    else
                    {
                        model.ForgetPasswordTemporaryPassword = false;
                        model.ForgetPasswordSendEmailVerification = false;
                    }

                    SaveAllSettings(model);

                    ModelState.AddModelError("SuccessMessage", "System security saved successfully.");
                }
                catch (Exception ex)
                {
                    logger.ErrorException("Unable to Save System Security :- ", ex);
                    ModelState.AddModelError("Message", ex.Message);
                }
            }
            return View(model);
        }