public RestfulResult Post(string name, string pwd) { var rest = new RestfulResult { AppName = name + pwd, Key = Guid.NewGuid().ToString() }; return(rest); }
public RestfulResult Post([FromBody] RestfulUser user) { var rest = new RestfulResult { AppName = user.AppName, Key = Guid.NewGuid().ToString() }; return(rest); }
public static bool StartWorkflowMessage(string message) { WriteInfoLog("发起流程的消息,message-->" + message); StartWorkflowParameter parameter = JsonConvert.DeserializeObject <StartWorkflowParameter>(message); Dictionary <string, object> dicPara = JsonConvert.DeserializeObject <Dictionary <string, object> >(JsonConvert.SerializeObject(parameter.ParamValues)); dicPara.Add("id", parameter.id); NameValueCollection nvBody = new NameValueCollection(); nvBody.Add("USER_CODE", parameter.UserCode); nvBody.Add("WORKFLOW_CODE", parameter.WorkflowCode); nvBody.Add("FINISH_START", parameter.FinishStart ? "1" : "0"); nvBody.Add("INSTANCE_ID", ""); nvBody.Add("PARAM_VALUES", JsonConvert.SerializeObject(dicPara)); var ret = postFormData(url_startworkflow, new NameValueCollection(), nvBody); try { RestfulResult startworkflowResult = JsonConvert.DeserializeObject <RestfulResult>(ret); var msg = new object(); if (startworkflowResult.STATUS == "2") { msg = new { id = parameter.id, type = "startworkflow", code = "1", data = startworkflowResult.INSTANCE_ID, message = startworkflowResult.MESSAGE }; } else { msg = new { id = parameter.id, type = "startworkflow", code = "-1", data = startworkflowResult.INSTANCE_ID, message = startworkflowResult.MESSAGE }; } RabbitMQHelper rabbitMQHelper = new RabbitMQHelper(host, user, password); WriteInfoLog("写入h3_to_wxapp_response队列的消息:{0}", JsonConvert.SerializeObject(msg)); rabbitMQHelper.SendMsg(JsonConvert.SerializeObject(msg), queue_h3_to_wxapp_response); WriteInfoLog("【完成】写入h3_to_wxapp_response队列的消息:{0}", JsonConvert.SerializeObject(msg)); } catch (Exception ex) { return(false); } WriteInfoLog("监听中..."); return(true); }
private bool ExceptionResult(string description) { var result = new RestfulResult { Data = new ExecuteResult { StatusCode = StatusCode.ClientError, Message = description } }; SetActionResult(result); return(false); }
public static ActionResult RenderError(this RestfulController controller, Action <ExecuteResult> callback) { var result = new RestfulResult { Data = new ExecuteResult { StatusCode = StatusCode.InternalServerError, Message = "操作失败!" } }; if (callback != null) { callback(result.Data as ExecuteResult); } return(result); }
public RestfulResult StartWorkflow_Base(string USER_CODE, string WORKFLOW_CODE, bool FINISH_START, string INSTANCE_ID, string PARAM_VALUES) { Engine.LogWriter.Write("Restful 服务,方法:StartWorkflow,参数:USER_CODE-->" + USER_CODE + ",WORKFLOW_CODE-->" + WORKFLOW_CODE + ",FINISH_START-->" + FINISH_START + ",INSTANCE_ID-->" + INSTANCE_ID + ",PARAM_VALUES-->" + JsonConvert.SerializeObject(PARAM_VALUES)); RestfulResult result = new RestfulResult(); Dictionary <string, object> listParams = JsonConvert.DeserializeObject <Dictionary <string, object> >(PARAM_VALUES); string workItemID, keyItem, errorMessage; workItemID = keyItem = errorMessage = string.Empty; try { #region 参数校验 OThinker.H3.WorkflowTemplate.PublishedWorkflowTemplate workflowTemplate = this.Engine.WorkflowManager.GetDefaultWorkflow(WORKFLOW_CODE); if (workflowTemplate == null) { result.INSTANCE_ID = ""; result.MESSAGE = "流程模板不存在,模板编码:" + WORKFLOW_CODE + "。"; result.STATUS = "0"; result.WORKFLOW_CODE = WORKFLOW_CODE; result.USER_CODE = USER_CODE; return(result); } // 查找流程发起人 OThinker.Organization.User user = this.Engine.Organization.GetUserByCode(USER_CODE); if (user == null) { result.INSTANCE_ID = ""; result.MESSAGE = "用户{" + USER_CODE + "}不存在。"; result.STATUS = "0"; result.WORKFLOW_CODE = WORKFLOW_CODE; result.USER_CODE = USER_CODE; return(result); } #endregion #region 流程实例ID为空:发起新流程 if (string.IsNullOrEmpty(INSTANCE_ID)) { OThinker.H3.DataModel.BizObjectSchema schema = this.Engine.BizObjectManager.GetPublishedSchema(workflowTemplate.BizObjectSchemaCode); OThinker.H3.DataModel.BizObject bo = new OThinker.H3.DataModel.BizObject( this.Engine.Organization, this.Engine.MetadataRepository, this.Engine.BizObjectManager, null, schema, user.ObjectID, user.ParentID); if (listParams != null) { // 这里可以在创建流程的时候赋值 foreach (KeyValuePair <string, object> param in listParams) { OThinker.H3.DataModel.PropertySchema property = schema.GetProperty(param.Key); if (property == null) { continue; } SetItemValue(bo, property, param.Value); } } bo.Create(); // 创建流程实例 string InstanceId = this.Engine.InstanceManager.CreateInstance( bo.ObjectID, workflowTemplate.WorkflowCode, workflowTemplate.WorkflowVersion, null, null, user.UnitID, null, false, InstanceContext.UnspecifiedID, null, Token.UnspecifiedID); if (listParams != null) { // 这里可以在创建流程的时候赋值 foreach (KeyValuePair <string, object> param in listParams) { OThinker.H3.DataModel.PropertySchema property = schema.GetProperty(param.Key); if (property == null) { continue; } if (property.LogicType == DataLogicType.Comment) {// 审核意见 CommentParam comment = JsonConvert.DeserializeObject <CommentParam>(JsonConvert.SerializeObject(param.Value)); this.Engine.BizObjectManager.AddComment(new Comment() { BizObjectId = bo.ObjectID, BizObjectSchemaCode = schema.SchemaCode, InstanceId = InstanceId, Activity = workflowTemplate.StartActivityCode, TokenId = 1, Approval = OThinker.Data.BoolMatchValue.True, DataField = property.Name, UserID = user.ObjectID, UserName = user.Name, SignatureId = comment.SignatureId, Text = comment.Text }); } } } // 启动流程的消息 OThinker.H3.Messages.StartInstanceMessage startInstanceMessage = new OThinker.H3.Messages.StartInstanceMessage( MessageEmergencyType.Normal, InstanceId, workItemID, null, PriorityType.Normal, FINISH_START, null, false, OThinker.H3.Instance.Token.UnspecifiedID, null); Engine.InstanceManager.SendMessage(startInstanceMessage); result.INSTANCE_ID = InstanceId; result.MESSAGE = "流程实例启动成功!"; result.BIZOBJECTID = bo.ObjectID; result.STATUS = "2"; result.WORKFLOW_CODE = WORKFLOW_CODE; result.USER_CODE = USER_CODE; } #endregion #region 流程实例ID不为空:更新流程数据; else { InstanceContext ic = this.Engine.InstanceManager.GetInstanceContext(INSTANCE_ID); if (ic == null) { result.INSTANCE_ID = INSTANCE_ID; result.MESSAGE = "InstanceID错误,此ID在H3系统中不存在,请检查"; result.STATUS = "0"; result.WORKFLOW_CODE = WORKFLOW_CODE; result.USER_CODE = USER_CODE; return(result); } OThinker.H3.DataModel.BizObjectSchema schema = this.Engine.BizObjectManager.GetPublishedSchema(workflowTemplate.BizObjectSchemaCode); OThinker.H3.DataModel.BizObject bo = new OThinker.H3.DataModel.BizObject( this.Engine.Organization, this.Engine.MetadataRepository, this.Engine.BizObjectManager, null, schema, user.ObjectID, user.ParentID); bo.ObjectID = ic.BizObjectId; bo.Load();//装载流程数据; if (listParams != null) { // 这里可以在创建流程的时候赋值 foreach (KeyValuePair <string, object> param in listParams) { OThinker.H3.DataModel.PropertySchema property = schema.GetProperty(param.Key); if (property == null) { continue; } SetItemValue(bo, property, param.Value); } } bo.Update(); #region 提交当前任务,往下流转 if (FINISH_START) { string sql = "SELECT ObjectID FROM OT_WorkItem WHERE InstanceId='{0}' ORDER BY TokenId desc"; sql = string.Format(sql, INSTANCE_ID); string workItemId = this.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteScalar(sql) + string.Empty; if (workItemId != "") { // 获取工作项 OThinker.H3.WorkItem.WorkItem item = this.Engine.WorkItemManager.GetWorkItem(workItemId); // 结束工作项 this.Engine.WorkItemManager.FinishWorkItem( item.ObjectID, user.UnitID, OThinker.H3.WorkItem.AccessPoint.ExternalSystem, null, OThinker.Data.BoolMatchValue.True, string.Empty, null, OThinker.H3.WorkItem.ActionEventType.Forward, 11); // 需要通知实例事件管理器结束事件 AsyncEndMessage endMessage = new OThinker.H3.Messages.AsyncEndMessage( MessageEmergencyType.Normal, item.InstanceId, item.ActivityCode, item.TokenId, OThinker.Data.BoolMatchValue.True, false, OThinker.Data.BoolMatchValue.True, true, null); this.Engine.InstanceManager.SendMessage(endMessage); } } #endregion result.INSTANCE_ID = INSTANCE_ID; result.MESSAGE = "流程实例启动成功!(更新数据项的值)"; result.BIZOBJECTID = ic.BizObjectId; result.STATUS = "2"; result.WORKFLOW_CODE = WORKFLOW_CODE; result.USER_CODE = USER_CODE; } #endregion } catch (Exception ex) { result = new RestfulResult(); result.INSTANCE_ID = ""; result.BIZOBJECTID = ""; result.MESSAGE = "接口异常:" + ex.ToString(); result.STATUS = "0"; result.WORKFLOW_CODE = WORKFLOW_CODE; result.USER_CODE = USER_CODE; } return(result); }