Exemple #1
0
        /// <summary>
        /// 反序列化输入流
        /// </summary>
        /// <param name="requestText"></param>
        /// <returns></returns>
        public static WbapRequest DeserializeRequest(string requestText)
        {
            WbapRequest wbapRequest = new WbapRequest();
            JObject     jObj        = JObject.Parse(requestText);

            wbapRequest.PageName = jObj.Value <string>("PageName");
            wbapRequest.ActionId = jObj.Value <string>("ActionId");
            wbapRequest.Url      = jObj.Value <string>("Url");

            JObject elementBinds = (JObject)jObj.Value <JObject>("ElementBinds");

            if (elementBinds == null)
            {
                return(wbapRequest);
            }
            wbapRequest.Step = jObj.Value <int>("Step");
            foreach (JProperty elementBind in elementBinds.Properties())
            {
                string elementName = elementBind.Name;
                if (WbapDataBody.ElementIsDataType(elementName, WbapDataType._List))
                {
                    string   s        = elementBind.Value.ToString();
                    WbapList dataList = JsonConvert.DeserializeObject <WbapList>(s);
                    wbapRequest.ElementBinds.Add(elementBind.Name, dataList);
                }
                else if (WbapDataBody.ElementIsDataType(elementName, WbapDataType._String))
                {
                    string value = elementBind.Value.Value <string>();
                    wbapRequest.ElementBinds.Add(elementName, value);
                }
            }


            return(wbapRequest);
        }
Exemple #2
0
        /// <summary>
        ///根据tableName参数,为客户端请求,建立Table的框架格式。
        /// </summary>
        /// <param name="fieldName"></param>
        /// <param name="schema"></param>
        internal void ImportTableSchema(string tableName, WbdlSchema schema)
        {
            DataSourceSchema tableSchema = DataSourceSchemaContainer.Instance().GetItem(tableName);
            string           keyField    = tableSchema.PrimaryKeys + "_Key";

            foreach (FieldBindSchema fieldBind in schema.FieldBinds)
            {
                if (fieldBind.TableId.Equals(tableName, StringComparison.OrdinalIgnoreCase))
                {
                    if (!this.ContainsKey(fieldBind.Id))
                    {
                        this.Add(fieldBind.Id, "");
                    }
                    //                    this.
                }
            }

            if (!this.ContainsKey(keyField))
            {
                this.Add(keyField, "");
            }

            foreach (DataListBindSchema listBind in schema.DataListBinds)
            {
                string   listKey  = listBind.Id + WbapDataType._List.ToString();
                WbapList dataList = null;
                if (this.ContainsKey(listKey))
                {
                    dataList = this[listKey] as WbapList;
                }
                else
                {
                    dataList = new WbapList();
                    this.Add(listBind.Id + WbapDataType._List.ToString(), dataList);
                }
                foreach (FieldBindSchema fieldBind in listBind.Columns)
                {
                    if (fieldBind.TableId.Equals(tableName, StringComparison.OrdinalIgnoreCase))
                    {
                        if (dataList == null)
                        {
                            dataList = new WbapList();
                            this.Add(listBind.Id + WbapDataType._List.ToString(), dataList);
                        }
                        dataList.Columns.Add(fieldBind.Id);
                    }
                }

                dataList.Columns.Add(keyField);
            }
        }