private void AddItemMigrator([NotNull] IItemMigrator itemMigrator, int depthLevel) { if (depthLevel == itemMigrator.SupportedItemPath.Count) { ItemMigrator = itemMigrator; return; } if (ItemMigrator != null) { throw new InvalidOperationException($"{ItemMigrator} hides {itemMigrator}"); } var itemName = itemMigrator.SupportedItemPath[depthLevel]; if (!_children.TryGetValue(itemName, out var child)) { child = new ItemMigratorsStoreNode(); _children.Add(itemName, child); } child.AddItemMigrator(itemMigrator, depthLevel + 1); }
public void AddItemMigrator([NotNull] IItemMigrator itemMigrator) { ThrowIf.Argument.IsNull(itemMigrator, nameof(itemMigrator)); AddItemMigrator(itemMigrator, 0); }