Esempio n. 1
0
        public static Item CreateThemeItem(string sourcePath, string distributionName, LessRegistry.KnownThemeInfo theme, string colorSchemeName, string sizeSchemeName)
        {
            var distribution = LessRegistry.CssDistributions[distributionName];
            var segments     = new List <CacheableSegment>();

            if (!distribution.CommonsInExternalFiles)
            {
                segments.Add(CreateCommonSegment(distributionName));
            }

            foreach (var moduleName in ResolveModules(distributionName))
            {
                var lessFiles = LessRegistry.GetThemeLessFiles(sourcePath, moduleName, theme.Name, colorSchemeName, sizeSchemeName);
                if (lessFiles == null)
                {
                    continue;
                }

                segments.Add(new CacheableSegment
                {
                    Key       = String.Join("|", moduleName, theme.Name, colorSchemeName, sizeSchemeName),
                    LessFiles = lessFiles
                });
            }

            return(new Item
            {
                CssFile = new ThemeCssFileInfo(distributionName, theme, colorSchemeName, sizeSchemeName),
                Segments = segments.ToArray()
            });
        }