public ActionResult Consumer() { try { string oType = Request["oType"]; string content = Request["content"]; IK2Command command = k2CommandFactory.Instance.GetCommand(oType, content); if (command != null) { command.Excute(); Response.StatusCode = (int)HttpStatusCode.OK; } else { Response.StatusCode = (int)HttpStatusCode.InternalServerError; } } catch (Exception ex) { log.Error("处理Swallow推送过来的消息出错", ex); Response.StatusCode = (int)HttpStatusCode.InternalServerError; } return(View()); }
/// <summary> /// 根据消息获得具体的K2操作 /// </summary> /// <param name="oType">操作类型</param> /// <param name="content">调用k2服务的参数</param> /// <returns></returns> public IK2Command GetCommand(string oType, string content, IK2ServiceProvider k2ServiceProvider) { IK2Command command = null; var msgObj = JsonConvert.DeserializeObject(content); var jObject = msgObj as Newtonsoft.Json.Linq.JObject; if (jObject != null) { switch (oType.ToLower()) { case "start": //command = new StartProcessCommand(k2ServiceProvider); //if (jObject != null) //{ // ((StartProcessCommand)command).ApiKey = getJsonStringProperty(jObject, "apiKey"); // ((StartProcessCommand)command).Folio = getJsonStringProperty(jObject, "folio"); // ((StartProcessCommand)command).JsonData = getJsonStringProperty(jObject, "jsonData"); // ((StartProcessCommand)command).ObjectId = getJsonStringProperty(jObject, "ObjectId"); ; // ((StartProcessCommand)command).ProcessCode = getJsonStringProperty(jObject, "processCode"); // ((StartProcessCommand)command).LoginId = string.IsNullOrEmpty(getJsonStringProperty(jObject, "loginId")) ? 0 : int.Parse(getJsonStringProperty(jObject, "loginId")); //} break; case "approval": command = new ApprovalProcessCommand(k2ServiceProvider); if (jObject != null) { ((ApprovalProcessCommand)command).ApiKey = getJsonStringProperty(jObject, "apiKey"); ((ApprovalProcessCommand)command).ActionString = getJsonStringProperty(jObject, "actionString"); ((ApprovalProcessCommand)command).JsonData = getJsonStringProperty(jObject, "jsonData"); ((ApprovalProcessCommand)command).Memo = getJsonStringProperty(jObject, "memo"); ((ApprovalProcessCommand)command).ProcessCode = getJsonStringProperty(jObject, "processCode"); ((ApprovalProcessCommand)command).LoginId = string.IsNullOrEmpty(getJsonStringProperty(jObject, "loginId")) ? 0 : int.Parse(getJsonStringProperty(jObject, "loginId")); ((ApprovalProcessCommand)command).SN = getJsonStringProperty(jObject, "sn"); } break; default: break; } } return(command); }
/// <summary> /// 根据消息获得具体的K2操作 /// </summary> /// <param name="oType">操作类型</param> /// <param name="content">调用k2服务的参数</param> /// <returns></returns> public IK2Command GetCommand(string oType, string content) { IK2Command command = null; var msgObj = JsonConvert.DeserializeObject(content); var jObject = msgObj as Newtonsoft.Json.Linq.JObject; if (jObject != null) { switch (oType) { case "start": command = new StartProcessCommand(); if (jObject != null) { var apiKey = getJsonStringProperty(jObject, "apiKey"); var folio = getJsonStringProperty(jObject, "folio"); var jsonData = getJsonStringProperty(jObject, "jsonData"); var ObjectId = getJsonStringProperty(jObject, "ObjectId"); var processCode = getJsonStringProperty(jObject, "processCode"); var businessType = getJsonStringProperty(jObject, "businessType"); var loginId = string.IsNullOrEmpty(getJsonStringProperty(jObject, "loginId")) ? 0 : int.Parse(getJsonStringProperty(jObject, "loginId")); ((StartProcessCommand)command).ApiKey = apiKey; ((StartProcessCommand)command).Folio = folio; ((StartProcessCommand)command).JsonData = jsonData; ((StartProcessCommand)command).ObjectId = ObjectId; ((StartProcessCommand)command).ProcessCode = processCode; ((StartProcessCommand)command).LoginId = loginId; ((StartProcessCommand)command).BusinessType = businessType; } break; case "approval": command = new ApprovalProcessCommand(); if (jObject != null) { var apiKey = getJsonStringProperty(jObject, "apiKey"); var actionString = getJsonStringProperty(jObject, "actionString"); var jsonData = getJsonStringProperty(jObject, "jsonData"); var memo = getJsonStringProperty(jObject, "memo"); var processCode = getJsonStringProperty(jObject, "processCode"); var sn = getJsonStringProperty(jObject, "sn"); var businessType = getJsonStringProperty(jObject, "businessType"); var loginId = string.IsNullOrEmpty(getJsonStringProperty(jObject, "loginId")) ? 0 : int.Parse(getJsonStringProperty(jObject, "loginId")); ((ApprovalProcessCommand)command).ApiKey = apiKey; ((ApprovalProcessCommand)command).ActionString = actionString; ((ApprovalProcessCommand)command).JsonData = jsonData; ((ApprovalProcessCommand)command).Memo = memo; ((ApprovalProcessCommand)command).ProcessCode = processCode; ((ApprovalProcessCommand)command).LoginId = loginId; ((ApprovalProcessCommand)command).SN = sn; ((ApprovalProcessCommand)command).BusinessType = businessType; } break; default: break; } } return(command); }