예제 #1
0
        public static void PopulateSheet(StyleSheet sheet, IEnumerable <Rule> rules, List <StyleSheet.ImportStruct> imports, ResolvingOptions options = null)
        {
            options = options ?? new ResolvingOptions();
            var helper = new StyleSheetBuilderHelper();

            if (options.SortRules)
            {
                rules = rules.OrderBy(rule => rule.SelectorName);
            }
            foreach (var rule in rules)
            {
                helper.BeginRule(string.Empty, rule.LineNumber);
                StyleSheetBuilderHelper.BuildSelector(rule.Selector, helper);

                var propertyValues = rule.Properties.Values.ToList();
                if (options.SortProperties)
                {
                    propertyValues.Sort((p1, p2) => p1.Name.CompareTo(p2.Name));
                }
                foreach (var property in propertyValues)
                {
                    helper.builder.BeginProperty(property.Name);
                    AddValues(helper, property.Values);
                    helper.builder.EndProperty();
                }
                helper.EndRule();
            }

            foreach (var import in imports)
            {
                helper.AddImport(import);
            }

            helper.PopulateSheet(sheet);
        }