コード例 #1
0
        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);
        }
コード例 #2
0
 public void AddItemMigrator([NotNull] IItemMigrator itemMigrator)
 {
     ThrowIf.Argument.IsNull(itemMigrator, nameof(itemMigrator));
     AddItemMigrator(itemMigrator, 0);
 }