示例#1
0
        protected virtual void ApplyLinkText(IYZDbProvider provider, IDbConnection cn, JArray jSprites)
        {
            if (jSprites == null)
            {
                return;
            }

            List <JObject> result = new List <JObject>();

            foreach (JObject jSprite in jSprites)
            {
                string relatiedFile = (string)jSprite["relatiedFile"];
                if (!String.IsNullOrEmpty(relatiedFile))
                {
                    AttachmentInfo attachmentInfo = AttachmentManager.TryGetAttachmentInfo(provider, cn, relatiedFile);
                    jSprite["relatiedFileName"] = attachmentInfo == null ? relatiedFile : attachmentInfo.Name;
                }

                YZJsonHelper.FindBy(jSprite["property"], result, new JsonFindCompare(this.isBPAReferenceCompare));
            }

            foreach (JObject jLink in result)
            {
                Reference reference = jLink.ToObject <Reference>();
                reference.RefreshName(provider, cn);
                jLink["FileName"]   = reference.FileName;
                jLink["SpriteName"] = reference.SpriteName;
            }
        }
示例#2
0
文件: DataSource.cs 项目: radtek/EMIP
        public virtual JObject GetESBObjectParams(HttpContext context)
        {
            YZRequest   request    = new YZRequest(context);
            String      objectName = request.GetString("ESB");
            FlowDataSet dataset    = new FlowDataSet();

            //获取参数
            string[]       strs       = objectName.Split(':');
            SourceTypeEnum sourceType = (SourceTypeEnum)Enum.Parse(typeof(SourceTypeEnum), strs[0]);
            SourceInfo     sourceInfo = SourceInfoManager.GetSourceInfo(sourceType, strs[1]);


            FlowDataTable table = new FlowDataTable();

            dataset.Tables.Add(table);
            SourceVisit       visit     = new SourceVisit(sourceInfo);
            List <ColumnInfo> paramList = visit.GetParameter();

            if (paramList != null && paramList.Count > 0)
            {
                foreach (var item in visit.GetParameter())
                {
                    table.Columns.Add(new FlowDataColumn(item.rename));
                }
            }
            JObject rv = YZJsonHelper.SerializeSchema(dataset, "", "DataType");

            rv["supportOp"] = false;
            return(rv);
        }
示例#3
0
文件: DataSource.cs 项目: radtek/EMIP
        public virtual JObject GetTableParams(HttpContext context)
        {
            YZRequest request        = new YZRequest(context);
            String    datasourceName = request.GetString("DataSource", null);
            String    tableName      = request.GetString("tableName");

            FlowDataTable tableSchema;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                tableSchema = DataSourceManager.LoadTableSchema(cn, datasourceName, tableName);
            }

            FlowDataTable tableParams = new FlowDataTable("Params");

            foreach (FlowDataColumn column in tableSchema.Columns)
            {
                if (column.AllowSearch)
                {
                    tableParams.Columns.Add(column);
                }
            }

            FlowDataSet dataset = new FlowDataSet();

            dataset.Tables.Add(tableParams);

            JObject rv = YZJsonHelper.SerializeSchema(dataset, "", "DataType");

            rv["supportOp"] = true;
            return(rv);
        }
示例#4
0
        public virtual JObject LoadTask(HttpContext context)
        {
            YZRequest request = new YZRequest(context);
            int       taskid  = request.GetInt32("TaskID");
            JObject   rv      = new JObject();

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                rv[YZJsonProperty.total] = 1;
                JArray children = new JArray();
                rv["children"] = children;

                BPMTask task = BPMTask.Load(cn, taskid);
                JObject item = new JObject();
                children.Add(item);

                item["TaskID"]           = task.TaskID;
                item["SerialNum"]        = task.SerialNum;
                item["ProcessName"]      = task.ProcessName;
                item["ProcessVersion"]   = task.ProcessVersion.ToString(2);
                item["OwnerAccount"]     = task.OwnerAccount;
                item["OwnerDisplayName"] = task.OwnerFullName;
                item["AgentAccount"]     = task.AgentAccount;
                item["AgentDisplayName"] = task.AgentFullName;
                item["CreateAt"]         = task.CreateAt;
                item["State"]            = YZJsonHelper.GetTaskStateJObject(cn, task.TaskState, task.TaskID);
                item["Description"]      = String.IsNullOrEmpty(task.Description) ? Resources.YZStrings.All_None : task.Description;
            }

            rv["success"] = true;
            return(rv);
        }
示例#5
0
        public virtual JObject GetXClassSchema(HttpContext context)
        {
            YZRequest     request     = new YZRequest(context);
            String        xclass      = request.GetString("xclass", null);
            FlowDataSet   dataset     = new FlowDataSet();
            FlowDataTable table       = new FlowDataTable();
            FlowDataTable tableFilter = new FlowDataTable();

            dataset.Tables.Add(table);

            if (!String.IsNullOrEmpty(xclass))
            {
                string url     = YZUtility.GetUrlFromXClass(xclass);
                string phyPath = context.Server.MapPath(url);
                using (StreamReader rd = new StreamReader(phyPath))
                {
                    string jsText      = rd.ReadToEnd();
                    string dataColumns = this.GetProperty(jsText, "datasourceColumns", '[', ']');
                    if (!String.IsNullOrEmpty(dataColumns))
                    {
                        JArray jDataColumns = JArray.Parse(dataColumns);
                        foreach (JToken token in jDataColumns)
                        {
                            if (token.Type == JTokenType.String)
                            {
                                FlowDataColumn column = new FlowDataColumn((string)token, typeof(string));
                                table.Columns.Add(column);
                            }
                        }
                    }
                }
            }

            return(YZJsonHelper.SerializeSchema(dataset, "", "DataType"));
        }
示例#6
0
        public virtual object GetHandoverRequests(HttpContext context)
        {
            YZRequest  request = new YZRequest(context);
            string     uid     = request.GetString("uid");
            PageResult result;

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                using (IDbConnection cn = provider.OpenConnection())
                {
                    result = TaskListManager.GetHandoverMyRequests(provider, cn, uid, this.GetFilterStringHandoverRequests(request, provider), request.GetSortString("TaskID ASC"), request.Start, request.Limit);
                }
            }

            JArray children = new JArray();

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                foreach (DataRow task in result.Table.Rows)
                {
                    JObject item = new JObject();
                    children.Add(item);

                    int    taskid       = YZConvert.ToInt32(task["TaskID"]);
                    string desc         = YZConvert.ToString(task["Description"]);
                    string ownerAccount = YZConvert.ToString(task["OwnerAccount"]);
                    string agentAccount = YZConvert.ToString(task["AgentAccount"]);

                    User owner = User.TryGetUser(cn, ownerAccount);
                    User agent = null;

                    if (!String.IsNullOrEmpty(agentAccount))
                    {
                        agent = User.TryGetUser(cn, agentAccount);
                    }

                    item["TaskID"]           = taskid;
                    item["SerialNum"]        = YZConvert.ToString(task["SerialNum"]);
                    item["ProcessName"]      = YZConvert.ToString(task["ProcessName"]);
                    item["ProcessVersion"]   = YZConvert.ToString(task["ProcessVersion"]);
                    item["OwnerAccount"]     = ownerAccount;
                    item["OwnerDisplayName"] = owner == null ? ownerAccount : owner.ShortName;
                    item["AgentAccount"]     = agentAccount;
                    item["AgentDisplayName"] = agent == null ? agentAccount : agent.ShortName;
                    item["CreateAt"]         = YZConvert.ToDateTime(task["CreateAt"]);
                    item["State"]            = YZJsonHelper.GetTaskStateJObject(cn, YZConvert.ToEnum <TaskState>(task["State"]), taskid);
                    item["Description"]      = String.IsNullOrEmpty(desc) ? Resources.YZStrings.All_None : desc;
                }
            }

            return(new
            {
                success = true,
                total = result.TotalRows,
                children = children
            });
        }
示例#7
0
        protected virtual JObject Serialize(BPMConnection cn, BPMTaskListCollection tasks, int rowcount)
        {
            JObject rv = new JObject();

            //将数据转化为Json集合
            rv[YZJsonProperty.total] = rowcount;

            JArray children = new JArray();

            rv[YZJsonProperty.children] = children;

            foreach (BPMTaskListItem task in tasks)
            {
                JObject item = new JObject();
                children.Add(item);

                string stepDisplayName = BPMProcStep.GetStepDisplayName(task.StepName);

                item["StepID"]           = task.StepID;
                item["TaskID"]           = task.TaskID;
                item["SerialNum"]        = task.SerialNum;
                item["ProcessName"]      = task.ProcessName;
                item["ProcessVersion"]   = task.ProcessVersion.ToString(2);
                item["OwnerAccount"]     = task.OwnerAccount;
                item["OwnerDisplayName"] = task.OwnerFullName;
                item["OwnerShortName"]   = YZStringHelper.GetUserShortName(task.OwnerAccount, task.OwnerFullName);
                item["AgentAccount"]     = task.AgentAccount;
                item["AgentDisplayName"] = task.AgentFullName;
                item["CreateAt"]         = task.CreateAt;
                item["NodeName"]         = stepDisplayName;
                item["ReceiveAt"]        = task.ReceiveAt;

                JObject recipient = new JObject();
                recipient["account"]       = task.RecipientAccount;
                recipient["displayName"]   = task.RecipientFullName;
                item["Recipient"]          = recipient;
                item["RecipientShortName"] = YZStringHelper.GetUserShortName(task.RecipientAccount, task.RecipientFullName);


                item["Share"] = task.Share;
                item["State"] = YZJsonHelper.GetTaskStateJObject(cn, task.TaskState, task.TaskID);
                item["TimeoutFirstNotifyDate"] = task.TimeoutFirstNotifyDate;
                item["TimeoutDeadline"]        = task.TimeoutDeadline;
                item["TimeoutNotifyCount"]     = task.TimeoutNotifyCount;
                item["Description"]            = String.IsNullOrEmpty(task.Description) ? Resources.YZStrings.All_None : task.Description;

                if (task.Progress != -1)
                {
                    item["Progress"] = task.Progress;
                }

                JObject perm = new JObject();
                item["perm"]  = perm;
                perm["Share"] = task.Share;
            }

            return(rv);
        }
示例#8
0
 public void AppendToXmlString(StringBuilder sb)
 {
     sb.AppendLine("<" + this.tagName + ">");
     foreach (KeyValuePair <string, object> kv in this.Attributes)
     {
         sb.AppendLine(String.Format("<{0}>{1}</{0}>", kv.Key, YZJsonHelper.ConvertToXmlValue(kv.Value)));
     }
     sb.AppendLine("</" + this.tagName + ">");
 }
示例#9
0
    public static JArray SerializeExtAttrSchema(DataColumnCollection columns)
    {
        JArray rv = new JArray();

        foreach (DataColumn column in columns)
        {
            rv.Add(YZJsonHelper.SerializeExtAttrSchema(column));
        }

        return(rv);
    }
示例#10
0
        public virtual JObject GetHistoryTasks(HttpContext context)
        {
            YZRequest request = new YZRequest(context);

            GridPageInfo    gridPageInfo = new GridPageInfo(context);
            HistoryTaskType taskType     = request.GetEnum <HistoryTaskType>("HistoryTaskType", HistoryTaskType.AllAccessable);
            string          strTaskType  = request.GetString("HistoryTaskType");
            int             year         = request.GetString("byYear", "1") == "0" ? -1 : request.GetInt32("Year");

            //获得数据
            JObject rv = new JObject();

            string taskTableFilter;
            string stepTableFilter;

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                taskTableFilter = this.GetFilterStringHistoryTaskTaskTable(request, provider);
                stepTableFilter = this.GetFilterStringHistoryTaskStep(request, provider);
            }

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                int rowcount;
                BPMTaskCollection tasks = cn.GetHistoryTasks(year, taskType, taskTableFilter, stepTableFilter, request.GetSortString("TaskID DESC", null, "TaskID DESC"), gridPageInfo.Start, gridPageInfo.Limit, out rowcount);

                rv[YZJsonProperty.total] = rowcount;
                JArray children = new JArray();
                rv[YZJsonProperty.children] = children;

                foreach (BPMTask task in tasks)
                {
                    JObject item = new JObject();
                    children.Add(item);

                    item["TaskID"]           = task.TaskID;
                    item["SerialNum"]        = task.SerialNum;
                    item["ProcessName"]      = task.ProcessName;
                    item["ProcessVersion"]   = task.ProcessVersion.ToString(2);
                    item["OwnerAccount"]     = task.OwnerAccount;
                    item["OwnerDisplayName"] = task.OwnerFullName;
                    item["AgentAccount"]     = task.AgentAccount;
                    item["AgentDisplayName"] = task.AgentFullName;
                    item["CreateAt"]         = task.CreateAt;
                    item["State"]            = YZJsonHelper.GetTaskStateJObject(cn, task.TaskState, task.TaskID);
                    item["Description"]      = String.IsNullOrEmpty(task.Description) ? Resources.YZStrings.All_None : task.Description;
                }
            }

            return(rv);
        }
示例#11
0
        public virtual JArray GetOUExtAttrs(HttpContext context)
        {
            YZRequest            request = new YZRequest(context);
            DataColumnCollection columns;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                columns = OU.GetExtColumns(cn, request.GetString("namespace"));
            }

            return(YZJsonHelper.SerializeExtAttrSchema(columns));
        }
示例#12
0
    public static string ConvertToJsonValue(object value)
    {
        if (value == null || Convert.IsDBNull(value) || value is YZModulePermision)
        {
            return("\"\"");
        }

        if (value is Guid)
        {
            return("\"" + Convert.ToString(value) + "\"");
        }

        if (value is string)
        {
            return("\"" + YZJsonHelper.EncodeAttribute(Convert.ToString(value)) + "\"");
        }

        if (value is DateTime)
        {
            DateTime date = (DateTime)value;
            if (date == DateTime.MinValue)
            {
                return("null");
            }

            return(String.Format("new Date({0},{1},{2},{3},{4},{5})",
                                 date.Year,
                                 date.Month - 1,
                                 date.Day,
                                 date.Hour,
                                 date.Minute,
                                 date.Second));
        }

        if (value is byte[])
        {
            return("\"\"");
        }
        //return "\"" + Convert.ToBase64String((byte[])value) + "\"";目前还不支持绑定2进制数据

        //欧洲、印度等国家,小数点会转换为",",这在JavaScript中不会识别,JS识别的是"."
        string rv = Convert.ToString(value, YZJsonHelper.JavaScriptFormat);

        if (value is bool)
        {
            rv = rv.ToLower();
        }

        return(rv);
    }
示例#13
0
文件: DataSource.cs 项目: radtek/EMIP
        public virtual JObject GetTableSchemas(HttpContext context)
        {
            YZRequest request              = new YZRequest(context);
            string    serverName           = request.GetString("ServerName", null);
            TableIdentityCollection tables = request.GetPostData <JArray>().ToObject <TableIdentityCollection>();
            FlowDataSet             dataSet;

            using (BPMConnection cn = new BPMConnection())
            {
                this.OpenConnection(cn, serverName);
                dataSet = DataSourceManager.LoadDataSetSchema(cn, tables);
                return(YZJsonHelper.SerializeSchema(dataSet));
            }
        }
示例#14
0
    public static void RegistVar(string varName, object value)
    {
        Page page = HttpContext.Current.Handler as Page;

        if (page == null)
        {
            return;
        }

        if (!page.ClientScript.IsStartupScriptRegistered(typeof(object), varName))
        {
            string cmd = String.Format("var {0}={1};\r\n", varName, YZJsonHelper.ConvertToJsonValue(value));
            page.ClientScript.RegisterStartupScript(typeof(object), varName, cmd, true);
        }
    }
示例#15
0
文件: DataSource.cs 项目: radtek/EMIP
        public virtual JObject GetTableSchema(HttpContext context)
        {
            YZRequest   request        = new YZRequest(context);
            String      datasourceName = request.GetString("DataSource", null);
            String      tableName      = request.GetString("tableName");
            FlowDataSet dataset        = new FlowDataSet();

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                dataset.Tables.Add(DataSourceManager.LoadTableSchema(cn, datasourceName, tableName));
            }

            return(YZJsonHelper.SerializeSchema(dataset, "", "DataType"));
        }
示例#16
0
        public virtual object GetMemberDefine(HttpContext context)
        {
            YZRequest request  = new YZRequest(context);
            string    fullname = request.GetString("fullname");
            string    parentou = request.GetString("parentou");

            Member                  member;
            User                    user;
            UserCommonInfo          userCommonInfo;
            DataColumnCollection    userExtAttrsSchema;
            OUCollection            childOUs;
            OUCollection            fgOUs;
            BPMObjectNameCollection fgYWs;
            SupervisorCollection    supervisors;
            DirectXSCollection      directXSs;
            TaskRuleCollection      taskRules;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                member             = Member.FromFullName(cn, fullname);
                user               = member.GetUser(cn);
                userExtAttrsSchema = User.GetExtColumns(cn, user.NameSpace);
                userCommonInfo     = UserCommonInfo.FromAccount(cn, user.Account);
                childOUs           = OU.GetChildren(cn, parentou);

                fgOUs       = member.GetFGOUs(cn);
                fgYWs       = member.GetFGYWs(cn);
                supervisors = member.GetSupervisors(cn);
                directXSs   = member.GetDirectXSs(cn);

                taskRules = User.GetTaskRules(cn, user.Account);
            }

            return(new {
                User = user,
                UserExtAttrsSchema = YZJsonHelper.SerializeExtAttrSchema(userExtAttrsSchema),
                Member = member,
                UserCommonInfo = userCommonInfo,
                ChildOUs = YZJsonHelper.SerializeSimpleOU(childOUs),
                FGOUs = YZJsonHelper.Serialize2Array(fgOUs),
                FGYWs = fgYWs,
                Supervisors = supervisors,
                DirectXSs = directXSs,
                TaskRules = taskRules,
                temporaryUid = "temporary/" + Guid.NewGuid().ToString()
            });
        }
示例#17
0
文件: DataSource.cs 项目: radtek/EMIP
        public virtual JObject GetQuerySchema(HttpContext context)
        {
            YZRequest request                    = new YZRequest(context);
            String    datasourceName             = request.GetString("DataSource", null);
            String    query                      = request.GetString("Query");
            QueryParameterCollection queryParams = JArray.Parse(request.GetString("QueryParams")).ToObject <QueryParameterCollection>();
            FlowDataSet dataset                  = new FlowDataSet();

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                dataset.Tables.Add(DataSourceManager.LoadSchemaByQuery(cn, datasourceName, query, queryParams.CreateNullDBParameters()));
            }

            return(YZJsonHelper.SerializeSchema(dataset, "", "DataType"));
        }
示例#18
0
        public virtual object Excel2DataSet(HttpContext context, HttpPostedFile file, string fileName, long fileSize, string fileExt)
        {
            YZRequest request       = new YZRequest(context);
            int       titleRowIndex = request.GetInt32("titleRowIndex", 1);
            int       dataRowIndex  = request.GetInt32("dataRowIndex", 2);

            DataSet dataset = YZExcelLoader.LoadExcel(file.InputStream, fileName, titleRowIndex - 1, dataRowIndex - 1, true);
            string  id      = YZTempStorageManager.CurrentStore.Save(new
            {
                data   = dataset,
                schema = YZJsonHelper.GetColumnCaptionInfo(dataset)
            });

            return(new
            {
                id = id
            });
        }
示例#19
0
    public static string ConvertToJsonValue(object value)
    {
        if (value == null || Convert.IsDBNull(value))
        {
            return("\"\"");
        }

        if (value is string)
        {
            return("\"" + YZJsonHelper.EncodeAttribute(Convert.ToString(value)) + "\"");
        }

        if (value is DateTime)
        {
            DateTime date = (DateTime)value;
            if (date == DateTime.MinValue)
            {
                return("\"\"");
            }
            return(String.Format("{{\"year\":{0},\"month\":{1},\"day\":{2}}}",
                                 date.Year,
                                 date.Month,
                                 date.Day,
                                 date.Hour,
                                 date.Minute,
                                 date.Second));
        }

        if (value is byte[])
        {
            return("\"\"");
        }
        //return "\"" + Convert.ToBase64String((byte[])value) + "\"";目前还不支持绑定2进制数据

        //欧洲、印度等国家,小数点会转换为",",这在JavaScript中不会识别,JS识别的是"."
        string rv = Convert.ToString(value, YZJsonHelper.JavaScriptFormat);

        if (value is bool)
        {
            rv = rv.ToLower();
        }

        return(rv);
    }
示例#20
0
        public virtual JObject XSD2DataSetSchema(HttpContext context, HttpPostedFile file, string fileName, long fileSize, string fileExt)
        {
            DataSet dataSet = new DataSet();

            if (String.Compare(fileExt, ".xml", true) == 0)
            {
                dataSet.ReadXml(file.InputStream, XmlReadMode.Auto);
            }
            else
            {
                dataSet.ReadXmlSchema(file.InputStream);
            }

            FlowDataSet flowDataSet = new FlowDataSet();

            flowDataSet.LoadDefine(dataSet);

            return(YZJsonHelper.SerializeSchema(flowDataSet));
        }
示例#21
0
文件: DataSource.cs 项目: radtek/EMIP
        public virtual JObject GetProcedureParams(HttpContext context)
        {
            YZRequest     request        = new YZRequest(context);
            String        datasourceName = request.GetString("DataSource", null);
            String        procedureName  = request.GetString("ProcedureName");
            FlowDataSet   dataset        = new FlowDataSet();
            FlowDataTable tableParams;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                DataSourceManager.LoadProdecureSchema(cn, datasourceName, procedureName, out tableParams);
                dataset.Tables.Add(tableParams);
            }

            JObject rv = YZJsonHelper.SerializeSchema(dataset, "", "DataType");

            rv["supportOp"] = false;
            return(rv);
        }
示例#22
0
        public virtual object GetNewMemberDefaults(HttpContext context)
        {
            YZRequest request  = new YZRequest(context);
            string    parentou = request.GetString("parentou");

            DataColumnCollection userExtAttrsSchema;
            OUCollection         childOUs;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();
                userExtAttrsSchema = User.GetExtColumns(cn, parentou);
                childOUs           = OU.GetChildren(cn, parentou);
            }

            return(new
            {
                UserExtAttrsSchema = YZJsonHelper.SerializeExtAttrSchema(userExtAttrsSchema),
                ChildOUs = YZJsonHelper.SerializeSimpleOU(childOUs),
                temporaryUid = "temporary/" + Guid.NewGuid().ToString()
            });
        }
示例#23
0
        public virtual JObject GetOUDefine(HttpContext context)
        {
            YZRequest request    = new YZRequest(context);
            string    oufullname = request.GetString("fullName");

            OU ou;
            DataColumnCollection columns;

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                ou      = OU.FromFullName(cn, oufullname);
                columns = OU.GetExtColumns(cn, ou.NameSpace);
            }

            JObject rv;

            rv = JObject.FromObject(ou);
            rv["ExtAttrsSchema"] = YZJsonHelper.SerializeExtAttrSchema(columns);
            return(rv);
        }
示例#24
0
文件: DataSource.cs 项目: radtek/EMIP
        public virtual JObject GetESBObjectSchema(HttpContext context)
        {
            YZRequest   request    = new YZRequest(context);
            String      objectName = request.GetString("ESB");
            FlowDataSet dataset    = new FlowDataSet();

            //获取参数
            string[]       strs       = objectName.Split(':');
            SourceTypeEnum sourceType = (SourceTypeEnum)Enum.Parse(typeof(SourceTypeEnum), strs[0]);
            SourceInfo     sourceInfo = SourceInfoManager.GetSourceInfo(sourceType, strs[1]);

            FlowDataTable table = new FlowDataTable();

            dataset.Tables.Add(table);
            SourceVisit visit = new SourceVisit(sourceInfo);

            foreach (var item in visit.GetSchema())
            {
                table.Columns.Add(new FlowDataColumn(item.rename, typeof(string)));
            }

            return(YZJsonHelper.SerializeSchema(dataset, "", "DataType"));
        }
示例#25
0
    public void AppendToJsonString(StringBuilder sb)
    {
        sb.Append("{");

        bool firstAttr = true;

        foreach (KeyValuePair <string, object> kv in this.Attributes)
        {
            if (firstAttr)
            {
                firstAttr = false;
            }
            else
            {
                sb.Append(",");
            }

            sb.Append("\"" + kv.Key + "\"");
            sb.Append(":");
            sb.Append(YZJsonHelper.ConvertToJsonValue(kv.Value));
        }

        sb.Append("}");
    }
示例#26
0
        public virtual JObject GetHistoryTasks(HttpContext context)
        {
            YZRequest       request  = new YZRequest(context);
            HistoryTaskType taskType = request.GetEnum <HistoryTaskType>("HistoryTaskType", HistoryTaskType.AllAccessable);
            int             year     = request.GetString("byYear", "1") == "0" ? -1 : request.GetInt32("Year", DateTime.Today.Year);

            //获得数据
            JObject rv = new JObject();

            string taskTableFilter;
            string stepTableFilter;

            using (IYZDbProvider provider = YZDbProviderManager.DefaultProvider)
            {
                taskTableFilter = this.GetFilterStringHistoryTaskTaskTable(request, provider);
                stepTableFilter = this.GetFilterStringHistoryTaskStep(request, provider);
            }

            using (BPMConnection cn = new BPMConnection())
            {
                cn.WebOpen();

                int rowcount;
                BPMTaskCollection tasks = cn.GetHistoryTasks(year, taskType, taskTableFilter, stepTableFilter, null, request.Start, request.Limit, out rowcount);

                rv[YZJsonProperty.total] = rowcount;
                JArray children = new JArray();
                rv[YZJsonProperty.children] = children;

                foreach (BPMTask task in tasks)
                {
                    JObject item = new JObject();
                    children.Add(item);

                    item["TaskID"]           = task.TaskID;
                    item["SerialNum"]        = task.SerialNum;
                    item["ProcessName"]      = task.ProcessName;
                    item["ProcessVersion"]   = task.ProcessVersion.ToString(2);
                    item["OwnerAccount"]     = task.OwnerAccount;
                    item["OwnerDisplayName"] = task.OwnerDisplayName;
                    item["AgentAccount"]     = task.AgentAccount;
                    item["AgentDisplayName"] = task.AgentDisplayName;
                    item["CreateAt"]         = task.CreateAt;
                    item["State"]            = YZJsonHelper.GetTaskStateJObject(cn, task.TaskState, task.TaskID);
                    item["Description"]      = task.Description;

                    try
                    {
                        ProcessProperty property = BPMProcess.GetProcessProperty(cn, task.ProcessName, task.ProcessVersion);
                        item["ShortName"] = property.ShortName;
                        item["Color"]     = property.Color;

                        if (String.IsNullOrEmpty(property.ShortName))
                        {
                            item["ShortName"] = YZStringHelper.GetProcessDefaultShortName(task.ProcessName);
                        }
                    }
                    catch (Exception)
                    {
                        item["Color"]     = this._deletedProcessColor;
                        item["ShortName"] = YZStringHelper.GetProcessDefaultShortName(task.ProcessName);
                    }
                }
            }

            return(rv);
        }