public void MoveNode(ContableAccountTreeNode node, FacturanetTreeNode parent) { node.Remove(); var parentAsAccountTreeListItem = parent.Data as AccountTreeListItem; if (parentAsAccountTreeListItem != null) { node.ContableAccount.AccountTreeId = parentAsAccountTreeListItem.Id; node.ContableAccount.ParentAccountId = null; } else { var parentAsContableAccount = parent.Data as ContableAccount; node.ContableAccount.AccountTreeId = parentAsContableAccount.AccountTreeId; node.ContableAccount.ParentAccountId = parentAsContableAccount.Id; } parent.Nodes.Add(node); }
private bool AllowMove(FacturanetTreeNode node, FacturanetTreeNode destination) { if (destination != null && node != null && destination != node && !node.IsAncestorOf(destination)) { Guid destinationTreeId; var destinationAsAccountTreeListItem = destination.Data as AccountTreeListItem; if (destinationAsAccountTreeListItem != null) { destinationTreeId = destinationAsAccountTreeListItem.Id; } else { destinationTreeId = ((ContableAccount)destination.Data).AccountTreeId; } return(destinationTreeId == ((ContableAccount)node.Data).AccountTreeId); } else { return(false); } }