public Boolean EnsureDefaultAssignments(AppliedStyleRule other)
        {
            var isAnyDefaulted = false;

            foreach (var filteredAssignment in other.Assignments)
            {
                if (filteredAssignment is PseudoVisualAssignment pseudo)
                {
                    var myPseudo = Assignments.OfType <PseudoVisualAssignment>().FirstOrDefault(a => a.Equals(a));

                    if (myPseudo == null)
                    {
                        continue;
                    }


                    foreach (var subAssignment in pseudo.Assignments)
                    {
                        var hasOverlap = myPseudo.DoOverlap(subAssignment);

                        if (!hasOverlap)
                        {
                            var defaultAssignment = GetDefaultAssignment(subAssignment);
                            myPseudo.AddAssignment(defaultAssignment);
                            isAnyDefaulted = true;
                        }
                    }
                }
                else
                {
                    if (!HasOverlappingAssignment(filteredAssignment))
                    {
                        AddDefaultAssignment(filteredAssignment);
                        isAnyDefaulted = true;
                    }
                }
            }

            return(isAnyDefaulted);
        }
 public void AddAppliedRule(AppliedStyleRule rule)
 {
     _appliedRules.Add(rule);
 }