private IEnumerable <Style> GetStylesWithInheritance(StyleClass styleClass, Format format) { List <StyleClass> inheritedClasses = new List <StyleClass>(); StyleClass selectedClass = styleClass; while (selectedClass != null) { inheritedClasses.Add(selectedClass); selectedClass = selectedClass.BasedOn; } List <Style> inheritedStyles = new List <Style>(); for (int i = inheritedClasses.Count - 1; i >= 0; i--) { StyleClass inheritedClass = inheritedClasses.ElementAt(i); List <Style> selectedClassStyles = StyleRepository.GetStyles(inheritedClass.Name, format.Name).ToList(); foreach (Style style in selectedClassStyles) { if (inheritedStyles.Exists(s => s.Key.Equals(style.Key))) { inheritedStyles.RemoveAll(s => s.Key.Equals(style.Key)); } inheritedStyles.Add(style); } } return(inheritedStyles.AsEnumerable()); }
public IEnumerable <Style> GetAll(string formatName, string styleClassName) { return(StyleRepository.GetStyles(styleClassName, formatName)); }