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());
        }
Ejemplo n.º 2
0
        /// <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);
        }