public void Save() { var root = this.S_DOC_NodeStrcut.FirstOrDefault(d => d.SpaceID == this.ID && d.NodeID == "Root"); if (root == null) { root = new S_DOC_NodeStrcut(); root.ID = FormulaHelper.CreateGuid(); root.NodeID = "Root"; root.FullPathID = root.ID; root.Name = this.Name; this.S_DOC_NodeStrcut.Add(root); } var treeConfig = this.S_DOC_TreeConfig.FirstOrDefault(); if (treeConfig == null) { treeConfig = new S_DOC_TreeConfig(); treeConfig.ID = FormulaHelper.CreateGuid(); treeConfig.TreeDisplay = "Name"; var sortList = new List <Dictionary <string, object> >(); var sortTable = new Dictionary <string, object>(); sortTable["SortField"] = "ID"; sortTable["SortDir"] = "asc"; sortList.Add(sortTable); treeConfig.TreeSort = JsonHelper.ToJson(sortList); this.S_DOC_TreeConfig.Add(treeConfig); } }
private void CopyNodeStrcut(S_DOC_NodeStrcut nodeStruct, S_DOC_NodeStrcut newStruct, DocConfigEntities context, Dictionary <string, string> nodeRelation) { var childStructList = nodeStruct.Children; foreach (var childStruct in childStructList) { var newChildStruct = childStruct.Clone <S_DOC_NodeStrcut>(); newChildStruct.ID = FormulaHelper.CreateGuid(); newChildStruct.ParentID = newStruct.ID; newChildStruct.FullPathID = newStruct.FullPathID + "." + newChildStruct.ID; newChildStruct.NodeID = nodeRelation[childStruct.NodeID]; newChildStruct.SpaceID = newStruct.SpaceID; context.Set <S_DOC_NodeStrcut>().Add(newChildStruct); if (childStruct.Children != null) { CopyNodeStrcut(childStruct, newChildStruct, context, nodeRelation); } } }
public void AddChild(S_DOC_NodeStrcut child) { if (this.Children.Exists(d => d.NodeID == child.NodeID)) { throw new Formula.Exceptions.BusinessException("同类型的节点不能重复添加"); } if (String.IsNullOrEmpty(child.NodeID)) { throw new Formula.Exceptions.BusinessException("必须指定节点类别ID"); } child.ParentID = this.ID; if (String.IsNullOrEmpty(child.ID)) { child.ID = FormulaHelper.CreateGuid(); } child.FullPathID = this.FullPathID + "." + child.ID; child.SpaceID = this.SpaceID; this.S_DOC_Space.S_DOC_NodeStrcut.Add(child); }