Example #1
0
        public virtual object GetTaskTraceInfo(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            int       taskid  = request.GetInt32("TaskID");

            BPMTask            task;
            NodeItemCollection nodes = new NodeItemCollection();
            LinkItemCollection links = new LinkItemCollection();
            BPMStepCollection  steps = new BPMStepCollection();

            //获得数据
            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                task = BPMTask.Load(cn, taskid);
                BPMProcess.GetTaskTraceInfo(cn, task.ProcessName, task.ProcessVersion, out nodes, out links);
                steps = BPMTask.GetAllSteps(cn, taskid);
            }

            return(new
            {
                Task = this.SerializeTask(task),
                Process = new
                {
                    Nodes = nodes,
                    Links = links
                },
                Steps = this.SerializeSteps(steps)
            });
        }
Example #2
0
        public virtual DataTable Map(DataTable srcTable, NodeItemCollection nodes)
        {
            DataTable tagTable = new DataTable(srcTable.TableName);

            foreach (DataColumn column in srcTable.Columns)
            {
                tagTable.Columns.Add(column.ColumnName, column.DataType);
            }

            tagTable.Columns.Add("NodeName", typeof(string));

            foreach (DataRow srcRow in srcTable.Rows)
            {
                NodeItem node = this.Find(nodes, Convert.ToString(srcRow["SpriteID"]));
                if (node != null)
                {
                    DataRow tagRow = tagTable.NewRow();
                    tagTable.Rows.Add(tagRow);

                    tagRow["NodeName"] = node.Name;

                    foreach (DataColumn column in srcTable.Columns)
                    {
                        tagRow[column.ColumnName] = srcRow[column.ColumnName];
                    }
                }
            }

            return(tagTable);
        }
        private T GetPermission(bool isFirst, int nodeID, int realNodeID, NodeItemCollection nodes)
        {
            T set;

            if (isFirst == false)
            {
                if (m_Cached.TryGetValue(realNodeID, out set))
                {
                    return(set);
                }
            }
            if (true == this.TryGetValue(nodeID, out set))
            {
                if (set.NodeID != realNodeID)
                {
                    T clone = (T)set.Clone();

                    clone.RealNodeID = realNodeID;

                    if (false == m_Cached.ContainsKey(realNodeID))
                    {
                        lock (m_Cached)
                        {
                            if (false == m_Cached.ContainsKey(realNodeID))
                            {
                                m_Cached.Add(realNodeID, clone);
                            }
                        }
                    }
                    return(clone);
                }
                return(set);
            }


            if (nodeID != 0)
            {
                NodeItem nodeItem = nodes.GetValue(nodeID);
                if (nodeItem != null)
                {
                    T t = GetPermission(false, nodeItem.ParentID, realNodeID, nodes);
                    return(t);
                }
            }


            if (nodeID == 0)
            {
                T t = new T();
                t.RealNodeID = realNodeID;
                return(t);
            }

            return(default(T));
        }
Example #4
0
        protected virtual NodeItem Find(NodeItemCollection nodes, string spriteid)
        {
            foreach (NodeItem node in nodes)
            {
                if (String.Compare(node.RelatedSpriteId, spriteid, true) == 0)
                {
                    return(node);
                }
            }

            return(null);
        }
Example #5
0
        public virtual object GetProcessDefine(HttpContext context)
        {
            YZRequest request     = new YZRequest(context);
            string    processName = request.GetString("processName");
            Version   version     = request.GetVersion("version");

            NodeItemCollection nodes = new NodeItemCollection();
            LinkItemCollection links = new LinkItemCollection();

            //获得数据
            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                BPMProcess.GetTaskTraceInfo(cn, processName, version, out nodes, out links);
            }

            return(new {
                Nodes = nodes,
                Links = links
            });
        }