private static Dictionary <string, object> ResolveSettings( IDictionary <string, object> settings, IDictionary <string, IDictionary <string, string> > settingGroups, ISettingContainer container) { var resolvedSettings = settings.ToDictionary(kv => kv.Key, kv => kv.Value); if (container.Includes != null) { foreach (var include in container.Includes) { if (!settingGroups.ContainsKey(include.SettingGroup)) { throw new InvalidOperationException(string.Format($"SettingGroup with key '{include.SettingGroup} not found")); //TODO: migrate this exception to an error } IDictionary <string, string> settingGroupEntries = settingGroups[include.SettingGroup]; foreach (var key in settingGroupEntries.Keys) { resolvedSettings[key] = settingGroupEntries[key]; } } } if (container.Settings != null) { foreach (var setting in container.Settings) { resolvedSettings[setting.Token] = setting.Value; } } return(resolvedSettings); }
public static void RegisterBundles(BundleCollection bundles) { //css bundles BundleTable.Bundles.Add(new StyleBundle("~/content/asCss") .Include("~/Content/bootstrap/dist/css/bootstrap.css", new ASCssTransform()) .Include("~/Content/bootstrap3-dialog/dist/css/bootstrap-dialog.css", new ASCssTransform()) .Include("~/Content/admin-lte/dist/css/AdminLTE.css", new ASCssTransform()) .Include("~/Content/eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.css", new ASCssTransform()) .Include("~/Content/fancybox/source/jquery.fancybox.css", new ASCssTransform()) .Include("~/Content/font-awesome/css/font-awesome.css", new ASCssTransform()) .Include("~/Content/admin-lte/dist/css/skins/skin-blue.css", new ASCssTransform()) .Include("~/Content/iCheck/skins/square/blue.css", new ASCssTransform()) .Include("~/Content/bootstrap-select/dist/css/bootstrap-select.css", new ASCssTransform()) .Include("~/Content/datatables.net-bs/css/dataTables.bootstrap.css", new ASCssTransform()) .Include("~/Content/datatables.net-buttons-bs/css/buttons.bootstrap.css", new ASCssTransform()) .Include("~/Content/AS/css/styles.css", new ASCssTransform()) ); //js bundles BundleTable.Bundles.Add(new ScriptBundle("~/content/thirdPartyJs") .Include("~/Content/jquery/dist/jquery.js") .Include("~/Content/moment/moment.js") .Include("~/Content/bootstrap/dist/js/bootstrap.js") .Include("~/Content/bootstrap3-dialog/dist/js/bootstrap-dialog.js") .Include("~/Content/admin-lte/dist/js/app.js") .Include("~/Content/eonasdan-bootstrap-datetimepicker/src/js/bootstrap-datetimepicker.js") .Include("~/Content/fancybox/source/jquery.fancybox.js") .Include("~/Content/iCheck/icheck.js") .Include("~/Content/bootstrap-select/dist/js/bootstrap-select.js") .Include("~/Content/pace/pace.js") .Include("~/Content/datatables.net/js/jquery.dataTables.js") .Include("~/Content/datatables.net-bs/js/dataTables.bootstrap.js") .Include("~/Content/datatables.net-buttons/js/dataTables.buttons.js") .Include("~/Content/datatables.net-buttons/js/buttons.colVis.js") .Include("~/Content/datatables.net-buttons-bs/js/buttons.bootstrap.js") ); BundleTable.Bundles.Add(new ScriptBundle("~/content/asJs") .Include("~/Content/AS/script/asframe.js")); BundleTable.Bundles.FileExtensionReplacementList.Clear(); ISettingContainer <AppSetting> appSettings = DependencyResolver.Current .GetService <ISettingManager>() .GetContainer <AppSetting>(); if (appSettings.Contains("BundlingEnabled")) { BundleTable.EnableOptimizations = bool.Parse(appSettings["BundlingEnabled"].Value); } else { #if DEBUG BundleTable.EnableOptimizations = false; #else BundleTable.EnableOptimizations = true; #endif } appSettings.SettingCacheLoaded += BundleConfig_SettingCacheLoaded; }
/// <summary> /// Gets setting container /// </summary> /// <typeparam name="TSettingValue">Setting Type</typeparam> /// <returns>Setting Container</returns> public ISettingContainer <TSettingValue> GetContainer <TSettingValue>() where TSettingValue : SettingBase { string name = typeof(TSettingValue).FullName.Split('.').Last(); if (!this._containers.Keys.Contains(name)) { Type concreteType = _typeFinder.FindClassesOfType <ISettingContainer <TSettingValue> >().First(); ISettingContainer <TSettingValue> container = Activator.CreateInstance(concreteType) as ISettingContainer <TSettingValue>; container.Load(_settingDataProvider.FetchSettingValues()); this._containers.Add(name, container); } return(this._containers[name] as ISettingContainer <TSettingValue>); }
public TestFixture() { var mockAppSettings = new Mock <ISettingContainer <AppSetting> >(); var mockContextProvider = new Mock <IContextProvider>(); var mockAppManager = new Mock <IAppManager>(); var mockMembershipSettings = new MembershipSettingContainer(); var mockSettingManager = new Mock <ISettingManager>(); mockContextProvider.Setup(m => m.BrowserType).Returns("Chrome"); mockContextProvider.Setup(m => m.ClientIP).Returns("111.222.333.444"); mockContextProvider.Setup(m => m.CountryInfo).Returns(new Country("tr-TR", "Turkey")); mockContextProvider.Setup(m => m.Culture).Returns(CultureInfo.DefaultThreadCurrentCulture); mockContextProvider.Setup(m => m.HttpMethod).Returns("GET"); mockContextProvider.Setup(m => m.RootAddress).Returns(@"http://www.asadmindemo.com"); mockContextProvider.Setup(m => m.SessionId).Returns("q1w2e3r4"); mockContextProvider.Setup(m => m.Url).Returns(new Uri("http://www.asadmindemo.com/Home")); mockContextProvider.Setup(m => m.UserId).Returns(1); mockContextProvider.Setup(m => m.UserName).Returns("UnitTester"); mockAppSettings.Setup(m => m["DbQueryLogEnable"]).Returns(new AppSetting() { Value = "True" }); mockAppManager.Setup(m => m.MapPhysicalFile(It.IsAny <string>())).Returns("Script.sql"); _appSettings = mockAppSettings.Object; _xmlSerializer = new ASXmlSerializer(); _contextProvider = mockContextProvider.Object; this._dbConnectionConfigurationFactory = delegate() { return(new DbConnectionConfiguration(ProviderName, ConnectionString)); }; _database = new Infrastructure.Data.Database(_dbConnectionConfigurationFactory); _appManager = mockAppManager.Object; _typeFinder = new TypeFinder(); mockSettingManager.Setup(m => m.GetContainer <AppSetting>()).Returns(_appSettings); mockSettingManager.Setup(m => m.GetContainer <MembershipSetting>()).Returns(mockMembershipSettings); _dbInitializer = new ASDatabaseInitializer <ASDbContext>(_dbConnectionConfigurationFactory, _appManager); _dbCommandInterceptor = new ASDbCommandInterceptor(_database, _contextProvider, mockSettingManager.Object); _dbContextFactory = new ASDbContextFactory(_xmlSerializer, _contextProvider, _dbInitializer, _typeFinder, _dbConnectionConfigurationFactory); _dbContext = new ASDbContext(_xmlSerializer, _contextProvider, _dbInitializer, _typeFinder, _dbConnectionConfigurationFactory); _userStore = new ASUserStore(_dbContext); _userManager = new ASUserManager(_userStore, mockSettingManager.Object); }