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; }
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); }