public void AppendVariations(InterestRateCondition condition)
        {
            if (condition == null)
            {
                return;
            }
            if (Variations != null && condition.Variations != null)
            {
                Variations.AddRange(condition.Variations);
            }
            else if (condition.Variations != null)
            {
                Variations = condition.Variations.ToList();
            }

            if (UpperLimitVariations != null && condition.UpperLimitVariations != null)
            {
                UpperLimitVariations.AddRange(condition.UpperLimitVariations);
            }
            else if (condition.UpperLimitVariations != null)
            {
                UpperLimitVariations = condition.UpperLimitVariations.ToList();
            }

            if (LowerLimitVariations != null && condition.LowerLimitVariations != null)
            {
                LowerLimitVariations.AddRange(condition.LowerLimitVariations);
            }
            else if (condition.LowerLimitVariations != null)
            {
                LowerLimitVariations = condition.LowerLimitVariations.ToList();
            }
        }
 public bool CorrespondsTo(InterestRateCondition condition)
 {
     return(condition != null &&
            Kind == condition.Kind &&
            Currencies.Count() == condition.Currencies.Count() &&
            !Currencies.Except(condition.Currencies).Any() &&
            Periods == condition.Periods);
 }