/// <summary>
        /// Read Json
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="objectType"></param>
        /// <param name="existingValue"></param>
        /// <param name="serializer"></param>
        /// <returns></returns>
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            BaseMessageResponse[] result = null;

            var jArray = JArray.Load(reader);

            if (jArray != null)
            {
                result = new BaseMessageResponse[jArray.Count];

                for (var i = 0; i < jArray.Count; i++)
                {
                    var messageType = EnumHelper.Parse <Enums.Type>(jArray[i]["type"].ToString());

                    switch (messageType)
                    {
                    case Enums.Type.Text:
                        result[i] = ApiAiJson <TextMessageResponse> .Deserialize(jArray[i].ToString());

                        break;

                    case Enums.Type.Card:
                        result[i] = ApiAiJson <CardMessageResponse> .Deserialize(jArray[i].ToString());

                        break;

                    case Enums.Type.QuickReply:
                        result[i] = ApiAiJson <QuickReplyMessageResponse> .Deserialize(jArray[i].ToString());

                        break;

                    case Enums.Type.Image:
                        result[i] = ApiAiJson <ImageMessageResponse> .Deserialize(jArray[i].ToString());

                        break;

                    case Enums.Type.Custom_Payload:
                        result[i] = ApiAiJson <PayloadMessageResponse> .Deserialize(jArray[i].ToString());

                        break;

                    case Enums.Type.Simple_Response:
                        result[i] = ApiAiJson <SimpleResponse> .Deserialize(jArray[i].ToString());

                        break;

                    case Enums.Type.Suggestion_Chips:
                        result[i] = ApiAiJson <SuggestionChips> .Deserialize(jArray[i].ToString());

                        break;

                    default:
                        result[i] = null;
                        break;
                    }
                }
            }

            return(result);
        }
        public static BaseMessageResponse GetResponseMessage(string xmlstr)
        {
            XmlDocument doc = new XmlDocument();

            doc.LoadXml(xmlstr);
            XmlNodeList         nodelist        = doc.GetElementsByTagName("BusinessCode");
            BaseMessageResponse responsemessage = null;

            if (nodelist.Count == 0 || nodelist == null)
            {
                return(responsemessage);
                //日志
            }
            //XmlNode n = nodelist[0].SelectSingleNode("UserName");
            XmlNode node = nodelist[0];

            switch (node.InnerText)
            {
            case "102":
                responsemessage = XmlSerializerTools.FromXmlStr <Message102>(xmlstr, Encoding.Unicode);
                break;

            case "103":
                responsemessage = XmlSerializerTools.FromXmlStr <Message103>(xmlstr, Encoding.Unicode);
                break;

            case "110":
                responsemessage = XmlSerializerTools.FromXmlStr <Message110>(xmlstr, Encoding.Unicode);
                break;

            case "113":
                responsemessage = XmlSerializerTools.FromXmlStr <Message113>(xmlstr, Encoding.Unicode);
                break;

            case "114":
                responsemessage = XmlSerializerTools.FromXmlStr <Message114>(xmlstr, Encoding.Unicode);
                break;

            case "117":
                responsemessage = XmlSerializerTools.FromXmlStr <Message117>(xmlstr, Encoding.Unicode);
                break;

            case "119":
                responsemessage = XmlSerializerTools.FromXmlStr <Message119>(xmlstr, Encoding.Unicode);
                break;

            case "198":
                responsemessage = XmlSerializerTools.FromXmlStr <MessageSqlReturn198>(xmlstr, Encoding.Unicode);
                break;

            default:
                break;
            }
            return(responsemessage);
        }
Beispiel #3
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            BaseMessageResponse[] result = null;

            var jArray = JArray.Load(reader);

            if (jArray != null)
            {
                result = new BaseMessageResponse[jArray.Count];

                for (var i = 0; i < jArray.Count; i++)
                {
                    var messageType = (Domain.Enum.Type)System.Enum.Parse(typeof(Domain.Enum.Type), jArray[i]["type"].ToString());

                    switch (messageType)
                    {
                    case Domain.Enum.Type.Text:
                        result[i] = ApiAiJson <TextMessageResponse> .Deserialize(jArray[i].ToString());

                        break;

                    case Domain.Enum.Type.Card:
                        result[i] = ApiAiJson <CardMessageResponse> .Deserialize(jArray[i].ToString());

                        break;

                    case Domain.Enum.Type.QuickReply:
                        result[i] = ApiAiJson <QuickReplyMessageResponse> .Deserialize(jArray[i].ToString());

                        break;

                    case Domain.Enum.Type.Image:
                        result[i] = ApiAiJson <ImageMessageResponse> .Deserialize(jArray[i].ToString());

                        break;

                    case Domain.Enum.Type.Payload:
                        result[i] = ApiAiJson <PayloadMessageResponse> .Deserialize(jArray[i].ToString());

                        break;

                    default:
                        result[i] = null;
                        break;
                    }
                }
            }

            return(result);
        }
Beispiel #4
0
        public static BaseMessageResponse GetResponseMessage(string xmlstr)
        {
            XmlDocument doc = new XmlDocument();

            doc.LoadXml(xmlstr);
            XmlNodeList         nodelist         = doc.GetElementsByTagName("BusinessCode");
            BaseMessageResponse responsetmessage = null;

            if (nodelist.Count == 0 || nodelist == null)
            {
                return(responsetmessage);
                //日志
            }
            //XmlNode n = nodelist[0].SelectSingleNode("UserName");
            XmlNode node = nodelist[0];

            switch (node.InnerText)
            {
            case "001":
                responsetmessage = XmlSerializerTools.FromXmlStr <Message001>(xmlstr, Encoding.Unicode);
                break;

            case "004":
                responsetmessage = XmlSerializerTools.FromXmlStr <Message004>(xmlstr, Encoding.Unicode);
                break;

            case "005":
                responsetmessage = XmlSerializerTools.FromXmlStr <Message005>(xmlstr, Encoding.Unicode);
                break;

            case "006":
                responsetmessage = XmlSerializerTools.FromXmlStr <Message006>(xmlstr, Encoding.Unicode);
                break;

            case "007":
                responsetmessage = XmlSerializerTools.FromXmlStr <Message007>(xmlstr, Encoding.Unicode);
                break;

            case "008":
                responsetmessage = XmlSerializerTools.FromXmlStr <Message008>(xmlstr, Encoding.Unicode);
                break;

            case "009":
                responsetmessage = XmlSerializerTools.FromXmlStr <Message009>(xmlstr, Encoding.Unicode);
                break;

            case "011":
                responsetmessage = XmlSerializerTools.FromXmlStr <Message011>(xmlstr, Encoding.Unicode);
                break;

            case "012":
                responsetmessage = XmlSerializerTools.FromXmlStr <Message012>(xmlstr, Encoding.Unicode);
                break;

            case "015":
                responsetmessage = XmlSerializerTools.FromXmlStr <Message015>(xmlstr, Encoding.Unicode);
                break;

            case "016":
                responsetmessage = XmlSerializerTools.FromXmlStr <Message016>(xmlstr, Encoding.Unicode);
                break;

            case "018":
                responsetmessage = XmlSerializerTools.FromXmlStr <Message018>(xmlstr, Encoding.Unicode);
                break;

            case "020":
                responsetmessage = XmlSerializerTools.FromXmlStr <Message020>(xmlstr, Encoding.Unicode);
                break;

            case "030":
                responsetmessage = XmlSerializerTools.FromXmlStr <Message030>(xmlstr, Encoding.Unicode);
                break;

            case "099":
                responsetmessage = XmlSerializerTools.FromXmlStr <Message099>(xmlstr, Encoding.Unicode);
                break;

            default:
                break;
            }
            return(responsetmessage);
        }