Пример #1
0
        private static IList<SparkViewDescriptor> AllKnownDescriptors(SparkViewFactory viewFactory)
        {
            //build the batch
            var batch = new SparkBatchDescriptor();
            batch
                .For<HomeController>().Layout("Application")
                .For<FirstController>().Layout("Application")
                .For<SecondController>().Layout("Application")
                .For<ThirdController>().Layout("Application")
                .For<FourthController>().Layout("Application")
                .For<FifthController>().Layout("Application")
                .For<SixthController>().Layout("Application")
                .For<SeventhController>().Layout("Application")
                .For<EigthController>().Layout("Application")
                .For<NinthController>().Layout("Application")
                .For<TenthController>().Layout("Application");

            //find all the custom themes
            var themeMasters = new List<string>();

            var themePath = ThemeDirectory + "\\";
            var themedMasterFiles = Directory.GetFiles(themePath, "index.html", SearchOption.AllDirectories);
            foreach (var master in themedMasterFiles)
            {
                var themeMasterName = master.Remove(0, themePath.Length);
                themeMasters.Add(themeMasterName);
            }

            //adjust the batch to precompile for each custom theme
            var generatedDescriptors = viewFactory.CreateDescriptors(batch);
            var allDescriptors = new List<SparkViewDescriptor>();

            foreach (var descriptor in generatedDescriptors)
            {
                allDescriptors.Add(descriptor);

                var isAppMaster = descriptor.Templates.Any(x => x.Contains("Application"));
                if (!isAppMaster) continue;

                foreach (var themeMaster in themeMasters)
                {
                    var themeDescriptor = new SparkViewDescriptor()
                        .SetLanguage(descriptor.Language)
                        .SetTargetNamespace(descriptor.TargetNamespace)
                        .AddTemplate(descriptor.Templates[0]);

                    themeDescriptor.AddTemplate(themeMaster);

                    allDescriptors.Add(themeDescriptor);
                }
            }

            return allDescriptors;
        }
Пример #2
0
        private static IEnumerable<SparkViewDescriptor> RootThemableDescriptors(SparkViewFactory viewFactory)
        {
            var batch = new SparkBatchDescriptor();
            batch
                //Guest Interface
                .For<SparkDynamicTheme.Controllers.HomeController>().Layout(ApplicationLayout)
                .For<SparkDynamicTheme.Controllers.FirstController>().Layout(ApplicationLayout)
                .For<SparkDynamicTheme.Controllers.SecondController>().Layout(ApplicationLayout)
                .For<SparkDynamicTheme.Controllers.ThirdController>().Layout(ApplicationLayout)
                .For<SparkDynamicTheme.Controllers.FourthController>().Layout(ApplicationLayout)
                .For<SparkDynamicTheme.Controllers.FifthController>().Layout(ApplicationLayout)
                .For<SparkDynamicTheme.Controllers.SixthController>().Layout(ApplicationLayout)
                .For<SparkDynamicTheme.Controllers.SeventhController>().Layout(ApplicationLayout)
                .For<SparkDynamicTheme.Controllers.EigthController>().Layout(ApplicationLayout)
                .For<SparkDynamicTheme.Controllers.NinthController>().Layout(ApplicationLayout)
                .For<SparkDynamicTheme.Controllers.TenthController>().Layout(ApplicationLayout);

            return viewFactory.CreateDescriptors(batch);
        }