/// <summary> /// CombineMonthNameSets combines a child with a parent as necessary and returns the combined object /// </summary> /// <param name="combinedMonthNameSets">The child object</param> /// <param name="parentMonthNameSets">The parent object</param> /// <returns>The combined object</returns> private static MonthNameSet[] CombineMonthNameSets(MonthNameSet[] combinedMonthNameSets, MonthNameSet[] parentMonthNameSets) { List <MonthNameSet> combinedMonthNameSetList = new List <MonthNameSet>(combinedMonthNameSets); if (parentMonthNameSets != null) { foreach (MonthNameSet parentMonthNameSet in parentMonthNameSets) { MonthNameSet combinedMonthNameSet = (from cmns in combinedMonthNameSetList where string.Compare(cmns.Id, parentMonthNameSet.Id, StringComparison.InvariantCulture) == 0 select cmns).FirstOrDefault(); if (combinedMonthNameSet == null) { // the combined set does not have the parent set so add it combinedMonthNameSetList.Add(parentMonthNameSet); } else { // combine the two lists List <MonthName> combinedMonthNames = new List <MonthName>(combinedMonthNameSet.Names); foreach (MonthName parentMonthName in parentMonthNameSet.Names) { if (!(from cmn in combinedMonthNames where string.Compare(cmn.Id, parentMonthName.Id, StringComparison.InvariantCulture) == 0 select cmn).Any()) { // the parent month name does not exist in the combined month names combinedMonthNames.Add(parentMonthName); } } combinedMonthNameSet.Names = combinedMonthNames.OrderBy(monthName => int.Parse(monthName.Id)).ToArray(); } } } return(combinedMonthNameSetList.ToArray()); }
/// <summary> /// CombineMonthNameSets combines a child with a parent as necessary and returns the combined object /// </summary> /// <param name="combinedMonthNameSets">The child object</param> /// <param name="parentMonthNameSets">The parent object</param> /// <returns>The combined object</returns> private static MonthNameSet[] CombineMonthNameSets(MonthNameSet[] combinedMonthNameSets, MonthNameSet[] parentMonthNameSets) { List<MonthNameSet> combinedMonthNameSetList = new List<MonthNameSet>(combinedMonthNameSets); if (parentMonthNameSets != null) { foreach (MonthNameSet parentMonthNameSet in parentMonthNameSets) { MonthNameSet combinedMonthNameSet = (from cmns in combinedMonthNameSetList where string.Compare(cmns.Id, parentMonthNameSet.Id, StringComparison.InvariantCulture) == 0 select cmns).FirstOrDefault(); if (combinedMonthNameSet == null) { // the combined set does not have the parent set so add it combinedMonthNameSetList.Add(parentMonthNameSet); } else { // combine the two lists List<MonthName> combinedMonthNames = new List<MonthName>(combinedMonthNameSet.Names); foreach (MonthName parentMonthName in parentMonthNameSet.Names) { if (!(from cmn in combinedMonthNames where string.Compare(cmn.Id, parentMonthName.Id, StringComparison.InvariantCulture) == 0 select cmn).Any()) { // the parent month name does not exist in the combined month names combinedMonthNames.Add(parentMonthName); } } combinedMonthNameSet.Names = combinedMonthNames.OrderBy(monthName => int.Parse(monthName.Id)).ToArray(); } } } return combinedMonthNameSetList.ToArray(); }