Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
        /// <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>);
        }
Esempio n. 4
0
        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);
        }