} // getWhereClause /// <summary> /// Get Child IDs /// </summary> /// <param name="ID">start node</param> /// <returns>array if IDs</returns> public int?[] GetChildIDs(int ID) { log.Fine("(" + _ElementType + ") ID=" + ID); List <int?> list = new List <int?>(); // VTreeNode node = _tree.GetRootNode().FindNode(ID); log.Finest("Root=" + node); // if (node != null && node.IsSummary) { System.Collections.IEnumerator en = node.preorderEnumeration(); while (en.MoveNext()) { VTreeNode nn = (VTreeNode)en.Current; if (!nn.IsSummary) { list.Add(Utility.Util.GetValueOfInt(nn.GetNode_ID())); log.Finest("- " + nn); } else { log.Finest("- skipped parent (" + nn + ")"); } } } else // not found or not summary { list.Add(Utility.Util.GetValueOfInt(ID)); } // int?[] retValue = new int?[list.Count]; retValue = list.ToArray(); return(retValue); } // getWhereClause
private string CreateTree1(SetTree trees, System.Windows.Forms.TreeNodeCollection treeNodeCollection) { StringBuilder sb = new StringBuilder(); foreach (var item in treeNodeCollection) { VTreeNode vt = (VTreeNode)item; if (vt.IsSummary) { SetTree newTrees = new SetTree(); if (trees.items == null) { trees.expanded = false; trees.items = new List <SetTree>(); } trees.items.Add(newTrees); sb.Append(GetSummaryItemStart(newTrees, vt.Parent_ID, vt.Node_ID, System.Net.WebUtility.HtmlEncode(vt.SetName))); sb.Append(CreateTree1(newTrees, ((System.Windows.Forms.TreeNode)vt).Nodes)); } else { sb.Append(GetTreeItem(trees, vt.Parent_ID, vt.Node_ID, System.Net.WebUtility.HtmlEncode(vt.SetName), vt.ImageKey, vt.GetAction(), vt.GetActionID(), vt.OnBar)); } } return(sb.ToString()); }
} // doIt /// <summary> /// Copy Stage /// </summary> /// <param name="node">node</param> /// <param name="path">path</param> /// <param name="isRedeploy">is dedeploy</param> private void CopyStage(VTreeNode node, String path, bool isRedeploy) { CacheHandler thisHandler = new CacheHandler (CacheHandler.ConvertJNPURLToCacheURL (_apps_host.Apps_host), log, GetCtx(), Get_Trx()); int? ID = Utility.Util.GetValueOfInt(node.GetNode_ID()); MCStage stage = _map.Get(ID.Value); // //int size = node.getChildCount(); int size = node.Nodes.Count; for (int i = 0; i < size; i++) { VTreeNode child = (VTreeNode)node.Nodes[i]; // .getChildAt(i); int? ID1 = Utility.Util.GetValueOfInt(child.Node_ID); //.getNode_ID()); stage = _map.Get(ID1); if (stage == null) { log.Warning("Not Found ID=" + ID); continue; } if (!stage.IsActive()) { continue; } // If we have a stage and it is modified we will update! if (stage != null) { if (isRedeploy || stage.IsModified() || stage.IsSummary()) { log.Log(Level.INFO, "Deploying container: " + path + stage.ToString()); MContainer cc = MContainer.Deploy(_project, stage, path); if (cc != null) { AddLog(0, null, null, "@Updated@: " + cc.GetName()); _idList.Add(ID1.Value); } // Remove Container from cache thisHandler.CleanContainer(cc.Get_ID()); // Reset Modified flag... stage.SetIsModified(false); stage.Save(stage.Get_Trx()); } else { // If not modified we should check update status... // But even if updtodate we need to add it to the list, because otherwise it will get deleted! _idList.Add(ID1.Value); } } if (child.IsSummary) { CopyStage(child, path + stage.GetRelativeURL() + "/", isRedeploy); } } } // copyStage
/// <summary> /// Create Tree /// </summary> /// <param name="treeNodeCollection"></param> /// <param name="baseUrl"></param> /// <returns></returns> private string CreateTree(System.Windows.Forms.TreeNodeCollection treeNodeCollection, string baseUrl, string windowNo = "") { StringBuilder sb = new StringBuilder(); if (_onDemandTree) { foreach (var item in treeNodeCollection) { VTreeNode vt = (VTreeNode)item; if (vt.IsSummary) { if (vt.IsSummary) { if (((System.Windows.Forms.TreeNode)vt).Nodes.Count > 0) { sb.Append(GetSummaryItemStart(vt.Node_ID, System.Net.WebUtility.HtmlEncode(vt.SetName) + " (" + ((System.Windows.Forms.TreeNode)vt).Nodes.Count + ")", windowNo)); } else { sb.Append(GetSummaryItemStart(vt.Node_ID, System.Net.WebUtility.HtmlEncode(vt.SetName), windowNo)); } sb.Append(CreateTree(((System.Windows.Forms.TreeNode)vt).Nodes, baseUrl, windowNo)); sb.Append(GetSummaryItemEnd()); } else { sb.Append(GetTreeItem(vt.Node_ID, System.Net.WebUtility.HtmlEncode(vt.SetName), vt.ImageKey, vt.GetAction(), vt.GetActionID(), baseUrl, windowNo, vt.OnBar)); } } } } else { foreach (var item in treeNodeCollection) { VTreeNode vt = (VTreeNode)item; if (vt.IsSummary) { sb.Append(GetSummaryItemStart(vt.Node_ID, System.Net.WebUtility.HtmlEncode(vt.SetName), windowNo)); sb.Append(CreateTree(((System.Windows.Forms.TreeNode)vt).Nodes, baseUrl, windowNo)); sb.Append(GetSummaryItemEnd()); } else { sb.Append(GetTreeItem(vt.Node_ID, System.Net.WebUtility.HtmlEncode(vt.SetName), vt.ImageKey, vt.GetAction(), vt.GetActionID(), baseUrl, windowNo, vt.OnBar)); } } } return(sb.ToString()); }
} // getTreeType /// <summary> /// Get Where Clause /// </summary> /// <param name="ID">start node</param> /// <returns>ColumnName = 1 or ColumnName IN (1,2,3)</returns> public String GetWhereClause(int ID) { log.Fine("(" + _ElementType + ") ID=" + ID); String ColumnName = MAcctSchemaElement.GetColumnName(_ElementType); if (ID == 0) // All { return(ColumnName + " IS NOT NULL"); } VTreeNode nod = _tree.GetRootNode().FindNode(ID); log.Finest("Root=" + nod); // StringBuilder result = null; if (nod != null && nod.IsSummary) { StringBuilder sb = new StringBuilder(); System.Collections.IEnumerator en = nod.preorderEnumeration(); while (en.MoveNext()) { VTreeNode nn = (VTreeNode)en.Current; if (!nn.IsSummary) { if (sb.Length > 0) { sb.Append(","); } sb.Append(nn.GetNode_ID()); log.Finest("- " + nn); } else { log.Finest("- skipped parent (" + nn + ")"); } } result = new StringBuilder(ColumnName).Append(" IN (").Append(sb).Append(")"); } else // not found or not summary { result = new StringBuilder(ColumnName).Append("=").Append(ID); } // log.Finest(result.ToString()); return(result.ToString()); } // getWhereClause
/// <summary> /// get Menu Tree html String /// </summary> /// <param name="root">Root of tree</param> /// <param name="baseUrl">application url</param> /// <returns>html string</returns> public string GetMenuTreeUI(VTreeNode root, string baseUrl, string windowNo = "", string tableName = "table") { StringBuilder sb = new StringBuilder(""); if (windowNo != "") { sb.Append("<ul data-tableName='" + tableName + "'>"); sb.Append("<li data-value='" + root.Node_ID + "'>").Append(GetRootItem(root.Node_ID, root.SetName, windowNo)); } sb.Append("<ul>"); sb.Append(CreateTree(root.Nodes, baseUrl, windowNo)); sb.Append("</ul>"); sb.Append("</li></ul>"); return(sb.ToString()); }
public List <SetTree> GetMenuTreeUI(SetTree trees, VTreeNode vObject, string tbname) { List <SetTree> obj2 = new List <SetTree>(); SetTree treees = new SetTree() { text = vObject.SetName, TableName = tbname, IsSummary = true, NodeID = vObject.Node_ID, IsActive = true, ImageSource = "Cmb Text", ParentID = vObject.Parent_ID, TreeParentID = vObject.Parent_ID, imageIndegator = vObject.ImageKey }; obj2.Add(treees); CreateTree1(treees, vObject.Nodes); return(obj2); }
} // prepare /// <summary> /// Process /// </summary> /// <returns>info</returns> protected override String DoIt() { _apps_host = new VConnection(); CacheHandler thisHandler = new CacheHandler //(CacheHandler.ConvertJNPURLToCacheURL(GetCtx().GetContext("java.naming.provider.url")), log, GetCtx(), Get_Trx()); (CacheHandler.ConvertJNPURLToCacheURL((String)_apps_host.Apps_host), log, GetCtx(), Get_Trx()); log.Info("CM_WebProject_ID=" + _CM_WebProject_ID); _project = new MWebProject(GetCtx(), _CM_WebProject_ID, Get_Trx()); if (_project.Get_ID() != _CM_WebProject_ID) { throw new Exception("@NotFound@ @CM_WebProject_ID@ " + _CM_WebProject_ID); } log.Log(Level.INFO, "Starting media deployment"); // Deploy Media MMediaServer[] mserver = MMediaServer.GetMediaServer(_project); for (int i = 0; i < mserver.Length; i++) { log.Log(Level.INFO, "Media Server deployment started on: " + mserver.ToString()); if (_isRedeploy) { mserver[i].ReDeployAll(); } mserver[i].Deploy(); log.Log(Level.INFO, "Media Server deployment finished on: " + mserver.ToString()); } // Stage MCStage[] stages = MCStage.GetStages(_project); for (int i = 0; i < stages.Length; i++) { _map.Add(Utility.Util.GetValueOfInt(stages[i].GetCM_CStage_ID()), stages[i]); } // Copy Stage Tree MTree treeS = new MTree(GetCtx(), _project.GetAD_TreeCMS_ID(), false, false, Get_Trx()); VTreeNode root = treeS.GetRootNode(); CopyStage(root, "/", _isRedeploy); // Delete Inactive Containers MContainer[] containers = MContainer.GetContainers(_project); for (int i = 0; i < containers.Length; i++) { MContainer container = containers[i]; if (!_idList.Contains(Utility.Util.GetValueOfInt(container.GetCM_Container_ID()))) { String name = container.GetName(); if (container.Delete(true)) { log.Fine("Deleted: " + name); } else // e.g. was referenced { log.Warning("Failed Delete: " + name); AddLog(0, null, null, "@Error@ @Delete@: " + name); } } // Remove Container from cache thisHandler.CleanContainer(container.Get_ID()); } // Delete Inactive // Sync Stage & Container Tree MTreeNodeCMS[] nodesCMS = MTreeNodeCMS.GetTree(GetCtx(), _project.GetAD_TreeCMS_ID(), Get_Trx()); MTreeNodeCMC[] nodesCMC = MTreeNodeCMC.GetTree(GetCtx(), _project.GetAD_TreeCMC_ID(), Get_Trx()); for (int s = 0; s < nodesCMS.Length; s++) { MTreeNodeCMS nodeCMS = nodesCMS[s]; int Node_ID = nodeCMS.GetNode_ID(); for (int c = 0; c < nodesCMC.Length; c++) { MTreeNodeCMC nodeCMC = nodesCMC[c]; if (nodeCMC.GetNode_ID() == Node_ID) { //if (nodeCMS.getParent_ID()!=0) nodeCMC.setParent_ID(nodeCMS.GetParent_ID()); nodeCMC.SetSeqNo(nodeCMS.GetSeqNo()); nodeCMC.Save(); break; } } } // for all stage nodes // Clean ContainerTree Cache thisHandler.CleanContainerTree(_CM_WebProject_ID); return("@Copied@ @CM_Container_ID@ #" + _idList.Count); } // doIt