public SiteSettingInfo GetSiteSetting() { var settings = _siteSettingRepository.GetSettingsAsDictionary(); var allLanguages = _languageManager.GetAllLanguages(); var allPages = GetPages(); var allAuthenticationTypes = SMTPAuthentication.GetSmtpAuthentications(); var allThemes = GetThemes(); var allLayouts = _layoutManager.GetPageLayouts(); var strSiteLanguage = settings[nameof(SiteSettingInfo.SiteLanguage)]; var strHomePageId = settings[nameof(SiteSettingInfo.HomePageId)]; var strLoginPageId = settings[nameof(SiteSettingInfo.LoginPageId)]; var strRegistrationPageId = settings[nameof(SiteSettingInfo.RegistrationPageId)]; var strRedirectAfterLoginPageId = settings[nameof(SiteSettingInfo.RedirectAfterLogin)]; var strRedirectAfterLogoutPageId = settings[nameof(SiteSettingInfo.RedirectAfterLogout)]; var strSMTPAuthentication = settings[nameof(SiteSettingInfo.SmtpAuthentication)]; var strSMTPEnableSSL = settings[nameof(SiteSettingInfo.SmtpEnableSSL)]; var strDefaultLayoutId = settings[nameof(SiteSettingInfo.DefaultLayoutId)]; var strDefaultTheme = settings[nameof(SiteSettingInfo.DefaultTheme)]; var strDefaultAdminLayoutId = settings[nameof(SiteSettingInfo.DefaultAdminLayoutId)]; var strDefaultAdminTheme = settings[nameof(SiteSettingInfo.DefaultAdminTheme)]; var strRegistrationEnabled = settings[nameof(SiteSettingInfo.RegistrationEnabled)]; var strEnableFacebookAuth = settings[nameof(SiteSettingInfo.EnableFacebookAuth)]; var strEnableGoogleAuth = settings[nameof(SiteSettingInfo.EnableGoogleAuth)]; var strEnableTwitterAuth = settings[nameof(SiteSettingInfo.EnableTwitterAuth)]; var siteSettings = new SiteSettingInfo() { SiteName = settings[nameof(SiteSettingInfo.SiteName)], SiteDescription = settings[nameof(SiteSettingInfo.SiteDescription)], SiteAdminEmail = settings[nameof(SiteSettingInfo.SiteAdminEmail)], SiteRoot = settings[nameof(SiteSettingInfo.SiteRoot)], SiteHeaderTags = settings[nameof(SiteSettingInfo.SiteHeaderTags)], SiteLanguage = allLanguages.FirstOrDefault(l => string.Equals(l.CultureCode, strSiteLanguage, StringComparison.InvariantCultureIgnoreCase)), HomePage = !string.IsNullOrEmpty(strHomePageId) ? allPages.FirstOrDefault(p => p.Id == Guid.Parse(strHomePageId)) : null, LoginPage = !string.IsNullOrEmpty(strLoginPageId) ? allPages.FirstOrDefault(p => p.Id == Guid.Parse(strLoginPageId)) : null, RegistrationPage = !string.IsNullOrEmpty(strRegistrationPageId) ? allPages.FirstOrDefault(p => p.Id == Guid.Parse(strRegistrationPageId)) : null, RedirectAfterLogin = !string.IsNullOrEmpty(strRedirectAfterLoginPageId) ? allPages.FirstOrDefault(p => p.Id == Guid.Parse(strRedirectAfterLoginPageId)) : null, RedirectAfterLogout = !string.IsNullOrEmpty(strRedirectAfterLogoutPageId) ? allPages.FirstOrDefault(p => p.Id == Guid.Parse(strRedirectAfterLogoutPageId)) : null, SmtpServerAndPort = settings[nameof(SiteSettingInfo.SmtpServerAndPort)], SmtpAuthentication = allAuthenticationTypes.FirstOrDefault(at => string.Equals(at.Name, strSMTPAuthentication, StringComparison.InvariantCultureIgnoreCase)), SmtpEnableSSL = !string.IsNullOrEmpty(strSMTPEnableSSL) && bool.Parse(strSMTPEnableSSL), SmtpUsername = settings[nameof(SiteSettingInfo.SmtpUsername)], SmtpPassword = settings[nameof(SiteSettingInfo.SmtpPassword)], DefaultLayout = !string.IsNullOrEmpty(strDefaultLayoutId) ? allLayouts.FirstOrDefault(l => l.Id == Guid.Parse(strDefaultLayoutId)) : null, DefaultAdminLayout = !string.IsNullOrEmpty(strDefaultAdminLayoutId) ? allLayouts.FirstOrDefault(l => l.Id == Guid.Parse(strDefaultAdminLayoutId)) : null, DefaultTheme = !string.IsNullOrEmpty(strDefaultTheme) ? allThemes.FirstOrDefault(t => t.Id == strDefaultTheme) : null, DefaultAdminTheme = !string.IsNullOrEmpty(strDefaultAdminTheme) ? allThemes.FirstOrDefault(t => t.Id == strDefaultAdminTheme) : null, RegistrationEnabled = !string.IsNullOrEmpty(strRegistrationEnabled) && bool.Parse(strRegistrationEnabled), EnableFacebookAuth = !string.IsNullOrEmpty(strEnableFacebookAuth) && bool.Parse(strEnableFacebookAuth), EnableGoogleAuth = !string.IsNullOrEmpty(strEnableGoogleAuth) && bool.Parse(strEnableGoogleAuth), EnableTwitterAuth = !string.IsNullOrEmpty(strEnableTwitterAuth) && bool.Parse(strEnableTwitterAuth), FacebookAppId = settings[nameof(SiteSettingInfo.FacebookAppId)], FacebookAppSecret = settings[nameof(SiteSettingInfo.FacebookAppSecret)], GoogleClientId = settings[nameof(SiteSettingInfo.GoogleClientId)], GoogleClientSecret = settings[nameof(SiteSettingInfo.GoogleClientSecret)], TwitterConsumerKey = settings[nameof(SiteSettingInfo.TwitterConsumerKey)], TwitterConsumerSecret = settings[nameof(SiteSettingInfo.TwitterConsumerSecret)], }; return(siteSettings); }
public void ConfigureAdmin(IAdminBuilder adminBuilder) { adminBuilder.RegisterForm <SiteSettingInfo, SiteSettingAdminService>(formBuilder => { formBuilder.Title = "Site Settings"; formBuilder .AddFieldSet("General", fieldBuilder => { fieldBuilder .AddField(f => f.SiteName) .AddField(f => f.SiteDescription, option => option.FieldType = FieldType.TextArea) .AddField(f => f.SiteAdminEmail, option => option.FieldType = FieldType.EmailAddress) .AddField(f => f.SiteRoot) .AddField(f => f.SiteHeaderTags) .AddSelectField(f => f.SiteLanguage); }) .AddFieldSet("Page Configuration", fieldBuilder => { fieldBuilder .AddSelectField(f => f.HomePage) .AddSelectField(f => f.LoginPage) .AddSelectField(f => f.RegistrationPage) .AddSelectField(f => f.RedirectAfterLogin) .AddSelectField(f => f.RedirectAfterLogout); }) .AddFieldSet("SMTP", fieldBuilder => { fieldBuilder .AddField(f => f.SmtpServerAndPort) .AddSelectField(f => f.SmtpAuthentication, de => de.Name, option => option.FieldType = FieldType.RadioButton) .AddField(f => f.SmtpEnableSSL) .AddField(f => f.SmtpUsername) .AddField(f => f.SmtpPassword, option => option.FieldType = FieldType.Password); }) .AddFieldSet("Appearance", fieldBuilder => { fieldBuilder .AddSelectField(f => f.DefaultLayout) .AddSelectField(f => f.DefaultTheme) .AddSelectField(f => f.DefaultAdminLayout) .AddSelectField(f => f.DefaultAdminTheme); }) .AddFieldSet("Security", fieldBuilder => { fieldBuilder .AddField(f => f.RegistrationEnabled) .AddField(f => f.EnableGoogleAuth) .AddField(f => f.GoogleClientId) .AddField(f => f.GoogleClientSecret) .AddField(f => f.EnableFacebookAuth) .AddField(f => f.FacebookAppId) .AddField(f => f.FacebookAppSecret) .AddField(f => f.EnableTwitterAuth) .AddField(f => f.TwitterConsumerKey) .AddField(f => f.TwitterConsumerSecret); }); formBuilder.Property(f => f.EnableGoogleAuth) .ShowOn(f => f.RegistrationEnabled) .ValidateOn(f => f.RegistrationEnabled); formBuilder.Property(f => f.EnableFacebookAuth) .ShowOn(f => f.RegistrationEnabled) .ValidateOn(f => f.RegistrationEnabled); formBuilder.Property(f => f.EnableTwitterAuth) .ShowOn(f => f.RegistrationEnabled) .ValidateOn(f => f.RegistrationEnabled); formBuilder.Property(f => f.GoogleClientId) .ShowOn(f => f.EnableGoogleAuth) .ValidateOn(f => f.EnableGoogleAuth); formBuilder.Property(f => f.GoogleClientSecret) .ShowOn(f => f.EnableGoogleAuth) .ValidateOn(f => f.EnableGoogleAuth); formBuilder.Property(f => f.FacebookAppId) .ShowOn(f => f.EnableFacebookAuth) .ValidateOn(f => f.EnableFacebookAuth); formBuilder.Property(f => f.FacebookAppSecret) .ShowOn(f => f.EnableFacebookAuth) .ValidateOn(f => f.EnableFacebookAuth); formBuilder.Property(f => f.TwitterConsumerKey) .ShowOn(f => f.EnableTwitterAuth) .ValidateOn(f => f.EnableTwitterAuth); formBuilder.Property(f => f.TwitterConsumerSecret) .ShowOn(f => f.EnableTwitterAuth) .ValidateOn(f => f.EnableTwitterAuth); formBuilder.Property(f => f.SiteLanguage).HasLookup( sp => sp.GetService <ILanguageManager>().GetAllLanguages(false), ke => ke.CultureCode, de => $"{de.EnglishName}"); formBuilder.Property(f => f.HomePage).HasLookup( sp => sp.GetService <SiteSettingAdminService>().GetPages(), ke => ke.Id, de => de.PageTranslation.Count > 0 ? de.PageTranslation.FirstOrDefault().Name : string.Empty); formBuilder.Property(f => f.LoginPage).HasLookup( sp => sp.GetService <SiteSettingAdminService>().GetPages(), ke => ke.Id, de => de.PageTranslation.Count > 0 ? de.PageTranslation.FirstOrDefault().Name : string.Empty); formBuilder.Property(f => f.RegistrationPage).HasLookup( sp => sp.GetService <SiteSettingAdminService>().GetPages(), ke => ke.Id, de => de.PageTranslation.Count > 0 ? de.PageTranslation.FirstOrDefault().Name : string.Empty); formBuilder.Property(f => f.RedirectAfterLogin).HasLookup( sp => sp.GetService <SiteSettingAdminService>().GetPages(), ke => ke.Id, de => de.PageTranslation.Count > 0 ? de.PageTranslation.FirstOrDefault().Name : string.Empty); formBuilder.Property(f => f.RedirectAfterLogout).HasLookup( sp => sp.GetService <SiteSettingAdminService>().GetPages(), ke => ke.Id, de => de.PageTranslation.Count > 0 ? de.PageTranslation.FirstOrDefault().Name : string.Empty); formBuilder.Property(f => f.SmtpAuthentication).HasLookup( sp => SMTPAuthentication.GetSmtpAuthentications(), ke => ke.Id, de => de.Name); formBuilder.Property(f => f.DefaultLayout).HasLookup( sp => sp.GetService <ILayoutManager>().GetPageLayouts(), ke => ke.Id, de => de.Name); formBuilder.Property(f => f.DefaultAdminLayout).HasLookup( sp => sp.GetService <ILayoutManager>().GetPageLayouts(), ke => ke.Id, de => de.Name); formBuilder.Property(f => f.DefaultTheme).HasLookup( sp => sp.GetService <SiteSettingAdminService>().GetThemes(), ke => ke.Id, de => de.Value); formBuilder.Property(f => f.DefaultAdminTheme).HasLookup( sp => sp.GetService <SiteSettingAdminService>().GetThemes(), ke => ke.Id, de => de.Value); }); }
public SiteSettingInfo UpdateSettingInfo(SiteSettingInfo settingInfo) { var settings = _siteSettingRepository.GetSettings(); var allAuthenticationTypes = SMTPAuthentication.GetSmtpAuthentications(); settings.First(s => s.SettingName == nameof(SiteSettingInfo.SiteName)).SettingValue = settingInfo.SiteName; settings.First(s => s.SettingName == nameof(SiteSettingInfo.SiteDescription)).SettingValue = settingInfo.SiteDescription; settings.First(s => s.SettingName == nameof(SiteSettingInfo.SiteAdminEmail)).SettingValue = settingInfo.SiteAdminEmail; settings.First(s => s.SettingName == nameof(SiteSettingInfo.SiteRoot)).SettingValue = settingInfo.SiteRoot; settings.First(s => s.SettingName == nameof(SiteSettingInfo.SiteHeaderTags)).SettingValue = settingInfo.SiteHeaderTags; if (settingInfo.SiteLanguage != null) { settings.First(s => s.SettingName == nameof(SiteSettingInfo.SiteLanguage)).SettingValue = settingInfo.SiteLanguage.CultureCode; } if (settingInfo.HomePage != null) { settings.First(s => s.SettingName == nameof(SiteSettingInfo.HomePageId)).SettingValue = settingInfo.HomePage.Id.ToString(); } if (settingInfo.LoginPage != null) { settings.First(s => s.SettingName == nameof(SiteSettingInfo.LoginPageId)).SettingValue = settingInfo.LoginPage.Id.ToString(); } if (settingInfo.RegistrationPage != null) { settings.First(s => s.SettingName == nameof(SiteSettingInfo.RegistrationPageId)).SettingValue = settingInfo.RegistrationPage.Id.ToString(); } if (settingInfo.RedirectAfterLogin != null) { settings.First(s => s.SettingName == nameof(SiteSettingInfo.RedirectAfterLogin)).SettingValue = settingInfo.RedirectAfterLogin.Id.ToString(); } if (settingInfo.RedirectAfterLogout != null) { settings.First(s => s.SettingName == nameof(SiteSettingInfo.RedirectAfterLogout)).SettingValue = settingInfo.RedirectAfterLogout.Id.ToString(); } settings.First(s => s.SettingName == nameof(SiteSettingInfo.SmtpServerAndPort)).SettingValue = settingInfo.SmtpServerAndPort; if (settingInfo.SmtpAuthentication != null) { settings.First(s => s.SettingName == nameof(SiteSettingInfo.SmtpAuthentication)).SettingValue = allAuthenticationTypes.First(at => at.Id == settingInfo.SmtpAuthentication.Id).Name; } settings.First(s => s.SettingName == nameof(SiteSettingInfo.SmtpEnableSSL)).SettingValue = settingInfo.SmtpEnableSSL.ToString().ToLower(); settings.First(s => s.SettingName == nameof(SiteSettingInfo.SmtpUsername)).SettingValue = settingInfo.SmtpUsername; settings.First(s => s.SettingName == nameof(SiteSettingInfo.SmtpPassword)).SettingValue = settingInfo.SmtpPassword; if (settingInfo.DefaultLayout != null) { settings.First(s => s.SettingName == nameof(SiteSettingInfo.DefaultLayoutId)).SettingValue = settingInfo.DefaultLayout.Id.ToString(); } if (settingInfo.DefaultAdminLayout != null) { settings.First(s => s.SettingName == nameof(SiteSettingInfo.DefaultAdminLayoutId)).SettingValue = settingInfo.DefaultAdminLayout.Id.ToString(); } if (settingInfo.DefaultTheme != null) { settings.First(s => s.SettingName == nameof(SiteSettingInfo.DefaultTheme)).SettingValue = settingInfo.DefaultTheme.Id; } if (settingInfo.DefaultAdminTheme != null) { settings.First(s => s.SettingName == nameof(SiteSettingInfo.DefaultAdminTheme)).SettingValue = settingInfo.DefaultAdminTheme.Id; } settings.First(s => s.SettingName == nameof(SiteSettingInfo.RegistrationEnabled)).SettingValue = settingInfo.RegistrationEnabled.ToString().ToLower(); settings.First(s => s.SettingName == nameof(SiteSettingInfo.EnableFacebookAuth)).SettingValue = settingInfo.EnableFacebookAuth.ToString().ToLower(); settings.First(s => s.SettingName == nameof(SiteSettingInfo.EnableGoogleAuth)).SettingValue = settingInfo.EnableGoogleAuth.ToString().ToLower(); settings.First(s => s.SettingName == nameof(SiteSettingInfo.EnableTwitterAuth)).SettingValue = settingInfo.EnableTwitterAuth.ToString().ToLower(); settings.First(s => s.SettingName == nameof(SiteSettingInfo.FacebookAppId)).SettingValue = settingInfo.FacebookAppId; settings.First(s => s.SettingName == nameof(SiteSettingInfo.FacebookAppSecret)).SettingValue = settingInfo.FacebookAppSecret; settings.First(s => s.SettingName == nameof(SiteSettingInfo.GoogleClientId)).SettingValue = settingInfo.GoogleClientId; settings.First(s => s.SettingName == nameof(SiteSettingInfo.GoogleClientSecret)).SettingValue = settingInfo.GoogleClientSecret; settings.First(s => s.SettingName == nameof(SiteSettingInfo.TwitterConsumerKey)).SettingValue = settingInfo.TwitterConsumerKey; settings.First(s => s.SettingName == nameof(SiteSettingInfo.TwitterConsumerSecret)).SettingValue = settingInfo.TwitterConsumerSecret; _siteSettingRepository.UpdateSetting(settings); return(GetSiteSetting()); }