public ActionResult GeneralCommon() { if (!_permissionService.Authorize(StandardPermissionProvider.ManageSettings)) return AccessDeniedView(); //set page timeout to 5 minutes this.Server.ScriptTimeout = 300; var model = new GeneralCommonSettingsModel(); var storeScope = this.GetActiveStoreScopeConfiguration(_storeService, _workContext); StoreDependingSettings.CreateViewDataObject(storeScope); //store information var storeInformationSettings = _settingService.LoadSetting<StoreInformationSettings>(storeScope); model.StoreInformationSettings.StoreClosed = storeInformationSettings.StoreClosed; model.StoreInformationSettings.StoreClosedAllowForAdmins = storeInformationSettings.StoreClosedAllowForAdmins; StoreDependingSettings.GetOverrideKeys(storeInformationSettings, model.StoreInformationSettings, storeScope, _settingService, false); //seo settings var seoSettings = _settingService.LoadSetting<SeoSettings>(storeScope); model.SeoSettings.PageTitleSeoAdjustment = seoSettings.PageTitleSeoAdjustment; model.SeoSettings.PageTitleSeparator = seoSettings.PageTitleSeparator; model.SeoSettings.DefaultTitle = seoSettings.DefaultTitle; model.SeoSettings.DefaultMetaKeywords = seoSettings.DefaultMetaKeywords; model.SeoSettings.DefaultMetaDescription = seoSettings.DefaultMetaDescription; model.SeoSettings.ConvertNonWesternChars = seoSettings.ConvertNonWesternChars; model.SeoSettings.CanonicalUrlsEnabled = seoSettings.CanonicalUrlsEnabled; model.SeoSettings.CanonicalHostNameRule = seoSettings.CanonicalHostNameRule; StoreDependingSettings.GetOverrideKeys(seoSettings, model.SeoSettings, storeScope, _settingService, false); //security settings var securitySettings = _settingService.LoadSetting<SecuritySettings>(storeScope); model.SecuritySettings.EncryptionKey = securitySettings.EncryptionKey; if (securitySettings.AdminAreaAllowedIpAddresses != null) { for (int i = 0; i < securitySettings.AdminAreaAllowedIpAddresses.Count; i++) { model.SecuritySettings.AdminAreaAllowedIpAddresses += securitySettings.AdminAreaAllowedIpAddresses[i]; if (i != securitySettings.AdminAreaAllowedIpAddresses.Count - 1) model.SecuritySettings.AdminAreaAllowedIpAddresses += ","; } } model.SecuritySettings.HideAdminMenuItemsBasedOnPermissions = securitySettings.HideAdminMenuItemsBasedOnPermissions; var captchaSettings = _settingService.LoadSetting<CaptchaSettings>(storeScope); model.CaptchaSettings.Enabled = captchaSettings.Enabled; model.CaptchaSettings.ShowOnLoginPage = captchaSettings.ShowOnLoginPage; model.CaptchaSettings.ShowOnRegistrationPage = captchaSettings.ShowOnRegistrationPage; model.CaptchaSettings.ShowOnContactUsPage = captchaSettings.ShowOnContactUsPage; model.CaptchaSettings.ShowOnEmailWishlistToFriendPage = captchaSettings.ShowOnEmailWishlistToFriendPage; model.CaptchaSettings.ShowOnEmailProductToFriendPage = captchaSettings.ShowOnEmailProductToFriendPage; model.CaptchaSettings.ShowOnAskQuestionPage = captchaSettings.ShowOnAskQuestionPage; model.CaptchaSettings.ShowOnBlogCommentPage = captchaSettings.ShowOnBlogCommentPage; model.CaptchaSettings.ShowOnNewsCommentPage = captchaSettings.ShowOnNewsCommentPage; model.CaptchaSettings.ShowOnProductReviewPage = captchaSettings.ShowOnProductReviewPage; model.CaptchaSettings.ReCaptchaPublicKey = captchaSettings.ReCaptchaPublicKey; model.CaptchaSettings.ReCaptchaPrivateKey = captchaSettings.ReCaptchaPrivateKey; StoreDependingSettings.GetOverrideKeys(captchaSettings, model.CaptchaSettings, storeScope, _settingService, false); //PDF settings var pdfSettings = _settingService.LoadSetting<PdfSettings>(storeScope); model.PdfSettings.Enabled = pdfSettings.Enabled; model.PdfSettings.LetterPageSizeEnabled = pdfSettings.LetterPageSizeEnabled; model.PdfSettings.LogoPictureId = pdfSettings.LogoPictureId; StoreDependingSettings.GetOverrideKeys(pdfSettings, model.PdfSettings, storeScope, _settingService, false); //localization var localizationSettings = _settingService.LoadSetting<LocalizationSettings>(storeScope); model.LocalizationSettings.UseImagesForLanguageSelection = localizationSettings.UseImagesForLanguageSelection; model.LocalizationSettings.SeoFriendlyUrlsForLanguagesEnabled = localizationSettings.SeoFriendlyUrlsForLanguagesEnabled; model.LocalizationSettings.LoadAllLocaleRecordsOnStartup = localizationSettings.LoadAllLocaleRecordsOnStartup; model.LocalizationSettings.DefaultLanguageRedirectBehaviour = localizationSettings.DefaultLanguageRedirectBehaviour; model.LocalizationSettings.InvalidLanguageRedirectBehaviour = localizationSettings.InvalidLanguageRedirectBehaviour; model.LocalizationSettings.DetectBrowserUserLanguage = localizationSettings.DetectBrowserUserLanguage; StoreDependingSettings.GetOverrideKeys(localizationSettings, model.LocalizationSettings, storeScope, _settingService, false); //full-text support var commonSettings = _settingService.LoadSetting<CommonSettings>(storeScope); model.FullTextSettings.Supported = _fulltextService.IsFullTextSupported(); model.FullTextSettings.Enabled = commonSettings.UseFullTextSearch; model.FullTextSettings.SearchMode = commonSettings.FullTextMode; model.FullTextSettings.SearchModeValues = commonSettings.FullTextMode.ToSelectList(); //company information var companySettings = _settingService.LoadSetting<CompanyInformationSettings>(storeScope); model.CompanyInformationSettings.CompanyName = companySettings.CompanyName; model.CompanyInformationSettings.Salutation = companySettings.Salutation; model.CompanyInformationSettings.Title = companySettings.Title; model.CompanyInformationSettings.Firstname = companySettings.Firstname; model.CompanyInformationSettings.Lastname = companySettings.Lastname; model.CompanyInformationSettings.CompanyManagementDescription = companySettings.CompanyManagementDescription; model.CompanyInformationSettings.CompanyManagement = companySettings.CompanyManagement; model.CompanyInformationSettings.Street = companySettings.Street; model.CompanyInformationSettings.Street2 = companySettings.Street2; model.CompanyInformationSettings.ZipCode = companySettings.ZipCode; model.CompanyInformationSettings.City = companySettings.City; model.CompanyInformationSettings.CountryId = companySettings.CountryId; model.CompanyInformationSettings.Region = companySettings.Region; model.CompanyInformationSettings.VatId = companySettings.VatId; model.CompanyInformationSettings.CommercialRegister = companySettings.CommercialRegister; model.CompanyInformationSettings.TaxNumber = companySettings.TaxNumber; StoreDependingSettings.GetOverrideKeys(companySettings, model.CompanyInformationSettings, storeScope, _settingService, false); foreach (var c in _countryService.GetAllCountries(true)) { model.CompanyInformationSettings.AvailableCountries.Add( new SelectListItem() { Text = c.Name, Value = c.Id.ToString(), Selected = (c.Id == model.CompanyInformationSettings.CountryId) }); } model.CompanyInformationSettings.Salutations.Add(ResToSelectListItem("Admin.Address.Salutation.Mr")); model.CompanyInformationSettings.Salutations.Add(ResToSelectListItem("Admin.Address.Salutation.Mrs")); model.CompanyInformationSettings.ManagementDescriptions.Add( ResToSelectListItem("Admin.Configuration.Settings.GeneralCommon.CompanyInformationSettings.ManagementDescriptions.Manager")); model.CompanyInformationSettings.ManagementDescriptions.Add( ResToSelectListItem("Admin.Configuration.Settings.GeneralCommon.CompanyInformationSettings.ManagementDescriptions.Shopkeeper")); model.CompanyInformationSettings.ManagementDescriptions.Add( ResToSelectListItem("Admin.Configuration.Settings.GeneralCommon.CompanyInformationSettings.ManagementDescriptions.Procurator")); model.CompanyInformationSettings.ManagementDescriptions.Add( ResToSelectListItem("Admin.Configuration.Settings.GeneralCommon.CompanyInformationSettings.ManagementDescriptions.Shareholder")); model.CompanyInformationSettings.ManagementDescriptions.Add( ResToSelectListItem("Admin.Configuration.Settings.GeneralCommon.CompanyInformationSettings.ManagementDescriptions.AuthorizedPartner")); model.CompanyInformationSettings.ManagementDescriptions.Add( ResToSelectListItem("Admin.Configuration.Settings.GeneralCommon.CompanyInformationSettings.ManagementDescriptions.Director")); model.CompanyInformationSettings.ManagementDescriptions.Add( ResToSelectListItem("Admin.Configuration.Settings.GeneralCommon.CompanyInformationSettings.ManagementDescriptions.ManagingPartner")); //contact data var contactDataSettings = _settingService.LoadSetting<ContactDataSettings>(storeScope); model.ContactDataSettings.CompanyTelephoneNumber = contactDataSettings.CompanyTelephoneNumber; model.ContactDataSettings.HotlineTelephoneNumber = contactDataSettings.HotlineTelephoneNumber; model.ContactDataSettings.MobileTelephoneNumber = contactDataSettings.MobileTelephoneNumber; model.ContactDataSettings.CompanyFaxNumber = contactDataSettings.CompanyFaxNumber; model.ContactDataSettings.CompanyEmailAddress = contactDataSettings.CompanyEmailAddress; model.ContactDataSettings.WebmasterEmailAddress = contactDataSettings.WebmasterEmailAddress; model.ContactDataSettings.SupportEmailAddress = contactDataSettings.SupportEmailAddress; model.ContactDataSettings.ContactEmailAddress = contactDataSettings.ContactEmailAddress; StoreDependingSettings.GetOverrideKeys(contactDataSettings, model.ContactDataSettings, storeScope, _settingService, false); //bank connection var bankConnectionSettings = _settingService.LoadSetting<BankConnectionSettings>(storeScope); model.BankConnectionSettings.Bankname = bankConnectionSettings.Bankname; model.BankConnectionSettings.Bankcode = bankConnectionSettings.Bankcode; model.BankConnectionSettings.AccountNumber = bankConnectionSettings.AccountNumber; model.BankConnectionSettings.AccountHolder = bankConnectionSettings.AccountHolder; model.BankConnectionSettings.Iban = bankConnectionSettings.Iban; model.BankConnectionSettings.Bic = bankConnectionSettings.Bic; StoreDependingSettings.GetOverrideKeys(bankConnectionSettings, model.BankConnectionSettings, storeScope, _settingService, false); //social var socialSettings = _settingService.LoadSetting<SocialSettings>(storeScope); model.SocialSettings.ShowSocialLinksInFooter = socialSettings.ShowSocialLinksInFooter; model.SocialSettings.FacebookLink = socialSettings.FacebookLink; model.SocialSettings.GooglePlusLink = socialSettings.GooglePlusLink; model.SocialSettings.TwitterLink = socialSettings.TwitterLink; model.SocialSettings.PinterestLink = socialSettings.PinterestLink; model.SocialSettings.YoutubeLink = socialSettings.YoutubeLink; StoreDependingSettings.GetOverrideKeys(socialSettings, model.SocialSettings, storeScope, _settingService, false); return View(model); }
public ActionResult ChangeEnryptionKey(GeneralCommonSettingsModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageSettings)) return AccessDeniedView(); //set page timeout to 5 minutes this.Server.ScriptTimeout = 300; var storeScope = this.GetActiveStoreScopeConfiguration(_storeService, _workContext); var securitySettings = _settingService.LoadSetting<SecuritySettings>(storeScope); try { if (model.SecuritySettings.EncryptionKey == null) model.SecuritySettings.EncryptionKey = ""; model.SecuritySettings.EncryptionKey = model.SecuritySettings.EncryptionKey.Trim(); var newEncryptionPrivateKey = model.SecuritySettings.EncryptionKey; if (String.IsNullOrEmpty(newEncryptionPrivateKey) || newEncryptionPrivateKey.Length != 16) throw new SmartException(_localizationService.GetResource("Admin.Configuration.Settings.GeneralCommon.EncryptionKey.TooShort")); string oldEncryptionPrivateKey = securitySettings.EncryptionKey; if (oldEncryptionPrivateKey == newEncryptionPrivateKey) throw new SmartException(_localizationService.GetResource("Admin.Configuration.Settings.GeneralCommon.EncryptionKey.TheSame")); //update encrypted order info var orders = _orderService.LoadAllOrders(); foreach (var order in orders) { // new credit card encryption string decryptedCardType = _encryptionService.DecryptText(order.CardType, oldEncryptionPrivateKey); string decryptedCardName = _encryptionService.DecryptText(order.CardName, oldEncryptionPrivateKey); string decryptedCardNumber = _encryptionService.DecryptText(order.CardNumber, oldEncryptionPrivateKey); string decryptedMaskedCreditCardNumber = _encryptionService.DecryptText(order.MaskedCreditCardNumber, oldEncryptionPrivateKey); string decryptedCardCvv2 = _encryptionService.DecryptText(order.CardCvv2, oldEncryptionPrivateKey); string decryptedCardExpirationMonth = _encryptionService.DecryptText(order.CardExpirationMonth, oldEncryptionPrivateKey); string decryptedCardExpirationYear = _encryptionService.DecryptText(order.CardExpirationYear, oldEncryptionPrivateKey); string encryptedCardType = _encryptionService.EncryptText(decryptedCardType, newEncryptionPrivateKey); string encryptedCardName = _encryptionService.EncryptText(decryptedCardName, newEncryptionPrivateKey); string encryptedCardNumber = _encryptionService.EncryptText(decryptedCardNumber, newEncryptionPrivateKey); string encryptedMaskedCreditCardNumber = _encryptionService.EncryptText(decryptedMaskedCreditCardNumber, newEncryptionPrivateKey); string encryptedCardCvv2 = _encryptionService.EncryptText(decryptedCardCvv2, newEncryptionPrivateKey); string encryptedCardExpirationMonth = _encryptionService.EncryptText(decryptedCardExpirationMonth, newEncryptionPrivateKey); string encryptedCardExpirationYear = _encryptionService.EncryptText(decryptedCardExpirationYear, newEncryptionPrivateKey); order.CardType = encryptedCardType; order.CardName = encryptedCardName; order.CardNumber = encryptedCardNumber; order.MaskedCreditCardNumber = encryptedMaskedCreditCardNumber; order.CardCvv2 = encryptedCardCvv2; order.CardExpirationMonth = encryptedCardExpirationMonth; order.CardExpirationYear = encryptedCardExpirationYear; // new direct debit encryption string decryptedAccountHolder = _encryptionService.DecryptText(order.DirectDebitAccountHolder, oldEncryptionPrivateKey); string decryptedAccountNumber = _encryptionService.DecryptText(order.DirectDebitAccountNumber, oldEncryptionPrivateKey); string decryptedBankCode = _encryptionService.DecryptText(order.DirectDebitBankCode, oldEncryptionPrivateKey); string decryptedBankName = _encryptionService.DecryptText(order.DirectDebitBankName, oldEncryptionPrivateKey); string decryptedBic = _encryptionService.DecryptText(order.DirectDebitBIC, oldEncryptionPrivateKey); string decryptedCountry = _encryptionService.DecryptText(order.DirectDebitCountry, oldEncryptionPrivateKey); string decryptedIban = _encryptionService.DecryptText(order.DirectDebitIban, oldEncryptionPrivateKey); string encryptedAccountHolder = _encryptionService.EncryptText(decryptedAccountHolder, newEncryptionPrivateKey); string encryptedAccountNumber = _encryptionService.EncryptText(decryptedAccountNumber, newEncryptionPrivateKey); string encryptedBankCode = _encryptionService.EncryptText(decryptedBankCode, newEncryptionPrivateKey); string encryptedBankName = _encryptionService.EncryptText(decryptedBankName, newEncryptionPrivateKey); string encryptedBic = _encryptionService.EncryptText(decryptedBic, newEncryptionPrivateKey); string encryptedCountry = _encryptionService.EncryptText(decryptedCountry, newEncryptionPrivateKey); string encryptedIban = _encryptionService.EncryptText(decryptedIban, newEncryptionPrivateKey); order.DirectDebitAccountHolder = encryptedAccountHolder; order.DirectDebitAccountNumber = encryptedAccountNumber; order.DirectDebitBankCode = encryptedBankCode; order.DirectDebitBankName = encryptedBankName; order.DirectDebitBIC = encryptedBic; order.DirectDebitCountry = encryptedCountry; order.DirectDebitIban = encryptedIban; _orderService.UpdateOrder(order); } //update user information //optimization - load only users with PasswordFormat.Encrypted var customers = _customerService.GetAllCustomersByPasswordFormat(PasswordFormat.Encrypted); foreach (var customer in customers) { string decryptedPassword = _encryptionService.DecryptText(customer.Password, oldEncryptionPrivateKey); string encryptedPassword = _encryptionService.EncryptText(decryptedPassword, newEncryptionPrivateKey); customer.Password = encryptedPassword; _customerService.UpdateCustomer(customer); } securitySettings.EncryptionKey = newEncryptionPrivateKey; _settingService.SaveSetting(securitySettings); NotifySuccess(_localizationService.GetResource("Admin.Configuration.Settings.GeneralCommon.EncryptionKey.Changed")); } catch (Exception exc) { NotifyError(exc); } return RedirectToAction("GeneralCommon"); }
public ActionResult ToggleFullText(GeneralCommonSettingsModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageSettings)) return AccessDeniedView(); var storeScope = this.GetActiveStoreScopeConfiguration(_storeService, _workContext); var commonSettings = _settingService.LoadSetting<CommonSettings>(storeScope); try { if (! _fulltextService.IsFullTextSupported()) throw new SmartException(_localizationService.GetResource("Admin.Configuration.Settings.GeneralCommon.FullTextSettings.NotSupported")); if (commonSettings.UseFullTextSearch) { _fulltextService.DisableFullText(); commonSettings.UseFullTextSearch = false; _settingService.SaveSetting(commonSettings, storeScope); NotifySuccess(_localizationService.GetResource("Admin.Configuration.Settings.GeneralCommon.FullTextSettings.Disabled")); } else { _fulltextService.EnableFullText(); commonSettings.UseFullTextSearch = true; _settingService.SaveSetting(commonSettings, storeScope); NotifySuccess(_localizationService.GetResource("Admin.Configuration.Settings.GeneralCommon.FullTextSettings.Enabled")); } } catch (Exception exc) { NotifyError(exc); } return RedirectToAction("GeneralCommon"); }
public ActionResult GeneralCommon(GeneralCommonSettingsModel model, FormCollection form) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageSettings)) return AccessDeniedView(); //load settings for a chosen store scope var storeScope = this.GetActiveStoreScopeConfiguration(_storeService, _workContext); //store information var storeInformationSettings = _settingService.LoadSetting<StoreInformationSettings>(storeScope); storeInformationSettings.StoreClosed = model.StoreInformationSettings.StoreClosed; storeInformationSettings.StoreClosedAllowForAdmins = model.StoreInformationSettings.StoreClosedAllowForAdmins; StoreDependingSettings.UpdateSettings(storeInformationSettings, form, storeScope, _settingService); //seo settings var seoSettings = _settingService.LoadSetting<SeoSettings>(storeScope); seoSettings.PageTitleSeparator = model.SeoSettings.PageTitleSeparator; seoSettings.PageTitleSeoAdjustment = model.SeoSettings.PageTitleSeoAdjustment; seoSettings.DefaultTitle = model.SeoSettings.DefaultTitle; seoSettings.DefaultMetaKeywords = model.SeoSettings.DefaultMetaKeywords; seoSettings.DefaultMetaDescription = model.SeoSettings.DefaultMetaDescription; seoSettings.ConvertNonWesternChars = model.SeoSettings.ConvertNonWesternChars; seoSettings.CanonicalUrlsEnabled = model.SeoSettings.CanonicalUrlsEnabled; seoSettings.CanonicalHostNameRule = model.SeoSettings.CanonicalHostNameRule; StoreDependingSettings.UpdateSettings(seoSettings, form, storeScope, _settingService); //security settings var securitySettings = _settingService.LoadSetting<SecuritySettings>(storeScope); if (securitySettings.AdminAreaAllowedIpAddresses == null) securitySettings.AdminAreaAllowedIpAddresses = new List<string>(); securitySettings.AdminAreaAllowedIpAddresses.Clear(); if (model.SecuritySettings.AdminAreaAllowedIpAddresses.HasValue()) { foreach (string s in model.SecuritySettings.AdminAreaAllowedIpAddresses.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)) { if (!String.IsNullOrWhiteSpace(s)) securitySettings.AdminAreaAllowedIpAddresses.Add(s.Trim()); } } securitySettings.HideAdminMenuItemsBasedOnPermissions = model.SecuritySettings.HideAdminMenuItemsBasedOnPermissions; _settingService.SaveSetting(securitySettings); var captchaSettings = _settingService.LoadSetting<CaptchaSettings>(storeScope); captchaSettings.Enabled = model.CaptchaSettings.Enabled; captchaSettings.ShowOnLoginPage = model.CaptchaSettings.ShowOnLoginPage; captchaSettings.ShowOnRegistrationPage = model.CaptchaSettings.ShowOnRegistrationPage; captchaSettings.ShowOnContactUsPage = model.CaptchaSettings.ShowOnContactUsPage; captchaSettings.ShowOnEmailWishlistToFriendPage = model.CaptchaSettings.ShowOnEmailWishlistToFriendPage; captchaSettings.ShowOnEmailProductToFriendPage = model.CaptchaSettings.ShowOnEmailProductToFriendPage; captchaSettings.ShowOnAskQuestionPage = model.CaptchaSettings.ShowOnAskQuestionPage; captchaSettings.ShowOnBlogCommentPage = model.CaptchaSettings.ShowOnBlogCommentPage; captchaSettings.ShowOnNewsCommentPage = model.CaptchaSettings.ShowOnNewsCommentPage; captchaSettings.ShowOnProductReviewPage = model.CaptchaSettings.ShowOnProductReviewPage; captchaSettings.ReCaptchaPublicKey = model.CaptchaSettings.ReCaptchaPublicKey; captchaSettings.ReCaptchaPrivateKey = model.CaptchaSettings.ReCaptchaPrivateKey; StoreDependingSettings.UpdateSettings(captchaSettings, form, storeScope, _settingService); if (captchaSettings.Enabled && (String.IsNullOrWhiteSpace(captchaSettings.ReCaptchaPublicKey) || String.IsNullOrWhiteSpace(captchaSettings.ReCaptchaPrivateKey))) { NotifyError(_localizationService.GetResource("Admin.Configuration.Settings.GeneralCommon.CaptchaEnabledNoKeys")); } //PDF settings var pdfSettings = _settingService.LoadSetting<PdfSettings>(storeScope); pdfSettings.Enabled = model.PdfSettings.Enabled; pdfSettings.LetterPageSizeEnabled = model.PdfSettings.LetterPageSizeEnabled; pdfSettings.LogoPictureId = model.PdfSettings.LogoPictureId; StoreDependingSettings.UpdateSettings(pdfSettings, form, storeScope, _settingService); //localization settings var localizationSettings = _settingService.LoadSetting<LocalizationSettings>(storeScope); localizationSettings.LoadAllLocaleRecordsOnStartup = model.LocalizationSettings.LoadAllLocaleRecordsOnStartup; localizationSettings.DefaultLanguageRedirectBehaviour = model.LocalizationSettings.DefaultLanguageRedirectBehaviour; localizationSettings.InvalidLanguageRedirectBehaviour = model.LocalizationSettings.InvalidLanguageRedirectBehaviour; localizationSettings.UseImagesForLanguageSelection = model.LocalizationSettings.UseImagesForLanguageSelection; localizationSettings.DetectBrowserUserLanguage = model.LocalizationSettings.DetectBrowserUserLanguage; StoreDependingSettings.UpdateSettings(localizationSettings, form, storeScope, _settingService); _settingService.SaveSetting(localizationSettings, x => x.LoadAllLocaleRecordsOnStartup, 0, false); _settingService.SaveSetting(localizationSettings, x => x.DefaultLanguageRedirectBehaviour, 0, false); _settingService.SaveSetting(localizationSettings, x => x.InvalidLanguageRedirectBehaviour, 0, false); if (localizationSettings.SeoFriendlyUrlsForLanguagesEnabled != model.LocalizationSettings.SeoFriendlyUrlsForLanguagesEnabled) { localizationSettings.SeoFriendlyUrlsForLanguagesEnabled = model.LocalizationSettings.SeoFriendlyUrlsForLanguagesEnabled; _settingService.SaveSetting(localizationSettings, x => x.SeoFriendlyUrlsForLanguagesEnabled, 0, false); System.Web.Routing.RouteTable.Routes.ClearSeoFriendlyUrlsCachedValueForRoutes(); // clear cached values of routes } //full-text var commonSettings = _settingService.LoadSetting<CommonSettings>(storeScope); commonSettings.FullTextMode = model.FullTextSettings.SearchMode; _settingService.SaveSetting(commonSettings); //company information var companySettings = _settingService.LoadSetting<CompanyInformationSettings>(storeScope); companySettings.CompanyName = model.CompanyInformationSettings.CompanyName; companySettings.Salutation = model.CompanyInformationSettings.Salutation; companySettings.Title = model.CompanyInformationSettings.Title; companySettings.Firstname = model.CompanyInformationSettings.Firstname; companySettings.Lastname = model.CompanyInformationSettings.Lastname; companySettings.CompanyManagementDescription = model.CompanyInformationSettings.CompanyManagementDescription; companySettings.CompanyManagement = model.CompanyInformationSettings.CompanyManagement; companySettings.Street = model.CompanyInformationSettings.Street; companySettings.Street2 = model.CompanyInformationSettings.Street2; companySettings.ZipCode = model.CompanyInformationSettings.ZipCode; companySettings.City = model.CompanyInformationSettings.City; companySettings.CountryId = model.CompanyInformationSettings.CountryId; companySettings.Region = model.CompanyInformationSettings.Region; if (model.CompanyInformationSettings.CountryId != 0) { companySettings.CountryName = _countryService.GetCountryById(model.CompanyInformationSettings.CountryId).Name; } companySettings.VatId = model.CompanyInformationSettings.VatId; companySettings.CommercialRegister = model.CompanyInformationSettings.CommercialRegister; companySettings.TaxNumber = model.CompanyInformationSettings.TaxNumber; StoreDependingSettings.UpdateSettings(companySettings, form, storeScope, _settingService); //contact data var contactDataSettings = _settingService.LoadSetting<ContactDataSettings>(storeScope); contactDataSettings.CompanyTelephoneNumber = model.ContactDataSettings.CompanyTelephoneNumber; contactDataSettings.HotlineTelephoneNumber = model.ContactDataSettings.HotlineTelephoneNumber; contactDataSettings.MobileTelephoneNumber = model.ContactDataSettings.MobileTelephoneNumber; contactDataSettings.CompanyFaxNumber = model.ContactDataSettings.CompanyFaxNumber; contactDataSettings.CompanyEmailAddress = model.ContactDataSettings.CompanyEmailAddress; contactDataSettings.WebmasterEmailAddress = model.ContactDataSettings.WebmasterEmailAddress; contactDataSettings.SupportEmailAddress = model.ContactDataSettings.SupportEmailAddress; contactDataSettings.ContactEmailAddress = model.ContactDataSettings.ContactEmailAddress; StoreDependingSettings.UpdateSettings(contactDataSettings, form, storeScope, _settingService); //bank connection var bankConnectionSettings = _settingService.LoadSetting<BankConnectionSettings>(storeScope); bankConnectionSettings.Bankname = model.BankConnectionSettings.Bankname; bankConnectionSettings.Bankcode = model.BankConnectionSettings.Bankcode; bankConnectionSettings.AccountNumber = model.BankConnectionSettings.AccountNumber; bankConnectionSettings.AccountHolder = model.BankConnectionSettings.AccountHolder; bankConnectionSettings.Iban = model.BankConnectionSettings.Iban; bankConnectionSettings.Bic = model.BankConnectionSettings.Bic; StoreDependingSettings.UpdateSettings(bankConnectionSettings, form, storeScope, _settingService); //social var socialSettings = _settingService.LoadSetting<SocialSettings>(storeScope); socialSettings.ShowSocialLinksInFooter = model.SocialSettings.ShowSocialLinksInFooter; socialSettings.FacebookLink = model.SocialSettings.FacebookLink; socialSettings.GooglePlusLink = model.SocialSettings.GooglePlusLink; socialSettings.TwitterLink = model.SocialSettings.TwitterLink; socialSettings.PinterestLink = model.SocialSettings.PinterestLink; socialSettings.YoutubeLink = model.SocialSettings.YoutubeLink; StoreDependingSettings.UpdateSettings(socialSettings, form, storeScope, _settingService); //now clear settings cache _settingService.ClearCache(); //activity log _customerActivityService.InsertActivity("EditSettings", _localizationService.GetResource("ActivityLog.EditSettings")); NotifySuccess(_localizationService.GetResource("Admin.Configuration.Updated")); return RedirectToAction("GeneralCommon"); }