InstanceStateChart.aspx.cs
资源名称:H3_OA.rar [点击查看]
上传用户:li2971742
上传日期:2021-11-18
资源大小:39096k
文件大小:4k
源码类别:
OA系统
开发平台:
C#
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Web;
- using System.Web.SessionState;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Web.UI.HtmlControls;
- namespace OThinker.H3.Portal
- {
- /// <summary>
- /// Summary description for InstanceStateChart.
- /// </summary>
- public partial class InstanceStateChart : PortalPage
- {
- private string InstanceId
- {
- get
- {
- return this.Request.QueryString[Param_InstanceId];
- }
- }
- protected void Page_Load(object sender, System.EventArgs e)
- {
- if(!this.IsPostBack)
- {
- // 已经完成的任务列表
- List<string> finishedActivitys = new List<string>();
- // 已经触发的任务列表
- List<string> runningActivities = new List<string>();
- // 异常任务列表
- List<string> exceptionalActivities = new List<string>();
- System.Data.DataTable tokenTable = OThinker.H3.Server.Engine.TokenPool.QueryTable(this.InstanceId);
- foreach (System.Data.DataRow tokenRow in tokenTable.Rows)
- {
- string activityName = (string)tokenRow[Instance.Token.PropertyName_Activity];
- if ((int)tokenRow[Instance.Token.PropertyName_State] == (int)Instance.TokenState.Finished)
- {
- if (!finishedActivitys.Contains(activityName))
- {
- finishedActivitys.Add(activityName);
- }
- }
- else if(
- (int)tokenRow[Instance.Token.PropertyName_State] == (int)Instance.TokenState.Running &&
- (int)tokenRow[Instance.Token.PropertyName_Dropped] == 0)
- {
- if (!runningActivities.Contains(activityName))
- {
- runningActivities.Add(activityName);
- }
- }
- if ((int)tokenRow[Instance.Token.PropertyName_Exceptional] == 1 && !exceptionalActivities.Contains(activityName))
- {
- exceptionalActivities.Add(activityName);
- }
- }
- // 获得上下文
- H3.Instance.InstanceContext context = OThinker.H3.Server.Engine.InstanceManager.GetInstanceContext(this.InstanceId);
- // 对完成列表进行修正
- foreach (H3.Instance.ActivityContext activity in context.ActivityArray)
- {
- if (activity.State == H3.Instance.ActivityState.Running)
- {
- finishedActivitys.Remove(activity.Name);
- if (!runningActivities.Contains(activity.Name))
- {
- runningActivities.Add(activity.Name);
- }
- }
- else
- {
- runningActivities.Remove(activity.Name);
- }
- }
- // 如果状态为完成状态,那么清除掉运行记录
- if (context.State == OThinker.H3.Instance.InstanceState.Complete)
- {
- runningActivities.Clear();
- }
- // 图片的二进制内容
- byte[] chartContent = OThinker.H3.Server.Engine.InstanceManager.ChartInstanceState(
- this.InstanceId,
- finishedActivitys.ToArray(),
- runningActivities.ToArray(),
- exceptionalActivities.ToArray());
- this.Response.ContentType = "image/jpeg";
- this.Response.BinaryWrite(chartContent);
- }
- }
- #region Web Form Designer generated code
- override protected void OnInit(EventArgs e)
- {
- //
- // CODEGEN: This call is required by the ASP.NET Web Form Designer.
- //
- InitializeComponent();
- base.OnInit(e);
- }
- /// <summary>
- /// Required method for Designer support - do not modify
- /// the contents of this method with the code editor.
- /// </summary>
- private void InitializeComponent()
- {
- }
- #endregion
- }
- }