コード例 #1
0
        private void ApplyChanges(IEnumerable <TreeNode> children)
        {
            foreach (TreeNode child in children)
            {
                switch (child.State)
                {
                case NodeState.Added:
                    _treeRepository.Add(TreeNode.Clone(child));
                    break;

                case NodeState.Modified:
                    _treeRepository.Update(TreeNode.Clone(child));
                    break;

                case NodeState.Deleted:
                    _treeRepository.Delete(TreeNode.Clone(child));
                    break;

                case NodeState.Unchanged:
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }

                ApplyChanges(_treeContext.Tree.Values.Where(n => n.ParentId == child.Id));
            }
        }