Example #1
0
        //private WbapResponse InvokeFarAction(WbapRequest wbapRequest)
        //{
        //    WbapResponse response = new WbapResponse();
        //    response.PageName = schema.Id;

        //    Dictionary<string, Object> namedParams = new Dictionary<string, object>();

        //    foreach (KeyValuePair<string, Object> elementItem in wbapRequest.ElementBinds)
        //    {
        //        string retElement = null;
        //        if (elementItem.Key.Equals("ReturnValue"))
        //        {
        //            retElement = elementItem.Value.ToString();
        //        }
        //        else
        //        {
        //            namedParams.Add(elementItem.Key, GetParamVarValue(elementItem.Value.ToString()));
        //        }
        //    }

        //    Umc.Umc.InvokeFunction("sid", "msid", wbapRequest.ActionId, namedParams);

        //    return response;

        //}

        private void BuildServerRequest(WbapRequest request, ActionFlowSchema action, int Step)
        {
            request.Step     = Step;
            request.PageName = WbdlSchema.Id;
            request.ActionId = action.Id;

            for (int i = Step; i < action.Actions.Count; i++)
            {
                ActionSchema methodSchema = action.Actions[i];

                if (methodSchema.IsRunAtClient())
                {
                    break;
                }

                for (int j = 0; j < methodSchema.Parameters.Count; j++)
                {
                    ParameterSchema paramSchema = methodSchema.Parameters[j];
                    if (string.IsNullOrEmpty(paramSchema.Value))
                    {
                        continue;
                    }
                    string[] realParamValues = paramSchema.Value.Split(PARAM_SPLITOR);

                    foreach (string realParamValue in realParamValues)
                    {
                        if (Array.IndexOf(VAR_TYPES, realParamValue[0]) == (int)VarFlagType.Element)
                        {
                            string key = realParamValue.Remove(0, 1);

                            if (!request.ElementBinds.ContainsKey(key))
                            {
                                request.ElementBinds.Add(key, "");
                            }
                        }
                        else if (Array.IndexOf(VAR_TYPES, realParamValue[0]) == (int)VarFlagType.Table)
                        {
                            request.ElementBinds.ImportTableSchema(realParamValue.Remove(0, 1), WbdlSchema);
                        }
                        else if (realParamValue[0].Equals('$'))
                        {
                            request.ElementBinds.Add(realParamValue, "");
                        }
                        else if (pageCtr.ContainsDataTable(realParamValue))
                        {
                            pageCtr.BuildRequestDataBodyWithTable(request.ElementBinds, realParamValue, null);
                        }
                        else if (methodSchema.MethodName.Equals("UpdateDataSet", StringComparison.OrdinalIgnoreCase))
                        {
                            pageCtr.BuildRequestDataBodyWithDataSet(request.ElementBinds);
                        }
                    }
                }
            }
        }