예제 #1
0
        }       //	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
예제 #2
0
        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());
        }
예제 #3
0
        }       //	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());
        }
예제 #5
0
        }       //	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());
        }
예제 #7
0
        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);
        }
예제 #8
0
        }       //	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