private static void MergeInPlace(IMenuItem existingMenuItem, IMenuItem newMenuItem)
 {
     foreach (var newSubMenuItem in newMenuItem.SubItems)
     {
         var matchedSubMenuItem = existingMenuItem.SubItems?.FirstOrDefault(item => newSubMenuItem.Equals(item));
         if (matchedSubMenuItem != null)
         {
             MergeInPlace(matchedSubMenuItem, newSubMenuItem);
         }
         else
         {
             existingMenuItem.Add(newSubMenuItem);
         }
     }
 }