public Page(WbpsResquest req, string sessionId, ISecurity security, ISession session) { this.sessionId = sessionId; this.url = req.Url; this.security = security; this.session = session; this.pageId = getPageId(req.PageId); string query = req.Query; if (!string.IsNullOrEmpty(query)) { queryStrings = new Dictionary <string, string>(); string[] nameValues = query.Split('&'); for (int i = 0; i < nameValues.Length; i++) { string[] nameValue = nameValues[i].Split('='); if (nameValue.Length > 1) { queryStrings.Add(nameValue[0], nameValue[1].Trim()); } } } pageSchema = null; if (WbdlSchemaContainer.Instance().Contains(this.pageId)) { pageSchema = WbdlSchemaContainer.Instance().GetItem(this.pageId); pageSchema.ChangedEvent += new Schema.SchemaEventHandler(PageSchema_Changed); Initialize(); } this.isOpen = true; }
public object Invoke(string sessionId, WbdlSchema wbdlSchema, WbapRequest request) { Object[] parameters = new Object[methodSchema.Parameters.Count]; for (int j = 0; j < methodSchema.Parameters.Count; j++) { ParameterSchema paramSchema = methodSchema.Parameters[j]; object paramValue = null; if (string.IsNullOrEmpty(paramSchema.Value)) { parameters[j] = null; continue; } if (paramSchema.Value[0] == '#') { paramValue = request.ElementBinds.GetTable(paramSchema.Value.Remove(0, 1), wbdlSchema); } else if (paramSchema.Value[0] == '$') { paramValue = request.ElementBinds[paramSchema.Value]; } else { paramValue = paramSchema.Value; } parameters[j] = paramValue; } Object invokeRet = Umc.InvokeFunction(sessionId, null, methodSchema.MethodName, parameters); return(invokeRet); }
/// <summary> /// 保存页面的Wbdl配置信息 /// </summary> /// <param name="pageFullName"></param> /// <param name="wbdl"></param> public static void saveWbdl(string pageFullName, WbdlSchema wbdl) { string pageFile = XSite.MapPath(pageFullName); string pageId = pageFile.Remove(0, XSite.SitePhysicalPath.Length); wbdl.Id = pageId; WbdlSchemaContainer.Instance().UpdateItem(pageId, wbdl); }
private void PageSchema_Changed(object sender) { if (sender is WbdlSchema) { pageSchema = (sender as WbdlSchema); pageSchema.ChangedEvent += new Schema.SchemaEventHandler(PageSchema_Changed); } Initialize(); }
private Object EncloseClientRequestParam(string param) { if (param == null) { return(param); } if (!param.StartsWith("#")) { return(param); } param = param.Remove(0, 1); XTable_1 xTable = new XTable_1(); WbdlSchema schame = pageCtr.Schame; int i = 0; string[] fieldNames = { }; foreach (FieldBindSchema fieldBind in schame.FieldBinds) { if (fieldBind.TableId.Equals(param, StringComparison.OrdinalIgnoreCase)) { i++; Array.Resize <string>(ref fieldNames, i); fieldNames[i - 1] = fieldBind.Id; } } foreach (DataListBindSchema dataList in schame.DataListBinds) { foreach (FieldBindSchema fieldBind in dataList.Columns) { if (fieldBind.TableId.Equals(param, StringComparison.OrdinalIgnoreCase)) { i++; Array.Resize <string>(ref fieldNames, i); fieldNames[i - 1] = fieldBind.Id; } } } // xTable.FieldNames = fieldNames; XDataRow dataRow = new XDataRow(); // dataRow.Values = new string[] { "1111", "222" }; // dataRow.Id = "1"; xTable.Rows.Add(dataRow); dataRow = new XDataRow(); // dataRow.Id = "2"; // dataRow.Values = new string[] { "1111", "222" }; xTable.Rows.Add(dataRow); return(xTable); }
/// <summary> /// 构造函数 /// </summary> public ActionBroker(WbapRequest wbapRequest, ActionFlowSchema actionSchema, PageController pageController, string sessionId, WbdlSchema schema, ISecurity secHandler) { request = wbapRequest; _ActionSchema = actionSchema; this.pageController = pageController; this.sessionId = sessionId; this.schema = schema; // this.Logger = new XLogging.XLoggingService(); _ISec = secHandler; actionId = wbapRequest.ActionId; //在开始已经update // UpdatePage(wbapRequest); }
/// <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); } }
private Object EncloseSeverMethodParam(Object param) { XTable_1 xTable = null; WbdlSchema schame = pageCtr.Schame; if (!(param is XTable_1)) { return(param); } xTable = (XTable_1)param; for (int i = 0; i < xTable.Rows[0].Values.Count; i++) { if (xTable.Rows[0].Values[i].Equals("")) { xTable.Rows[0].Values[i] = "0"; } } for (int i = 0; i < xTable.FieldNames.Count(); i++) { string elementId = xTable.FieldNames[i]; foreach (FieldBindSchema fieldBind in schame.FieldBinds) { if (fieldBind.Id.Equals(elementId, StringComparison.OrdinalIgnoreCase)) { xTable.FieldNames[i] = fieldBind.FieldId; xTable.Id = fieldBind.TableId; } } foreach (DataListBindSchema dataList in schame.DataListBinds) { foreach (FieldBindSchema fieldBind in dataList.Columns) { if (fieldBind.Id.Equals(elementId, StringComparison.OrdinalIgnoreCase)) { xTable.FieldNames[i] = fieldBind.FieldId; xTable.Id = fieldBind.TableId; } } } } return(xTable); }
private Object EncloseReponseReturn(Object returnValue) { WbdlSchema schame = pageCtr.Schame; XTable_1 xTable = null; if (!(returnValue is XTable_1)) { return(returnValue); } xTable = (XTable_1)returnValue; for (int i = 0; i < xTable.FieldNames.Count(); i++) { string fieldName = xTable.FieldNames[i]; foreach (FieldBindSchema fieldBind in schame.FieldBinds) { if (fieldBind.FieldId.Equals(fieldName, StringComparison.OrdinalIgnoreCase)) { xTable.FieldNames[i] = fieldBind.Id; //test // xTable.FieldDisplayName[i] = fieldBind.DisplayName; } } foreach (DataListBindSchema dataList in schame.DataListBinds) { foreach (FieldBindSchema fieldBind in dataList.Columns) { if (fieldBind.FieldId.Equals(fieldName, StringComparison.OrdinalIgnoreCase)) { xTable.FieldNames[i] = fieldBind.Id; //test // xTable.FieldDisplayName[i] = fieldBind.DisplayName; } } } } return(xTable); }