예제 #1
0
        public static WbapResponse Invoke(WbapRequest request, string sessionId)
        {
            PageController pageController = new PageController(request.PageName, sessionId);

            pageController.SetRequestData(request.ElementBinds);

            Wbap wbap = new Wbap(pageController);

            wbap.ISecHandler = _ISec;

            string pageName = request.PageName;
            string actionId = request.ActionId;


            WbapResponse wbapResponse = null;

            if (string.IsNullOrEmpty(actionId) || actionId.Equals("Initialize", StringComparison.OrdinalIgnoreCase))
            {
                wbapResponse = wbap.Initialize(pageName, sessionId);
            }
            else
            {
                wbapResponse = new WbapResponse();
                ActionBroker action = wbap.GetAction(request, ref wbapResponse, pageName, sessionId, _ISec);
                if (action != null)
                {
                    wbapResponse = action.Execute();
                }
            }
            return(wbapResponse);
        }
예제 #2
0
        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);
        }
예제 #3
0
        public static WbapResponse Invoke(Stream streamRequest, string sessionId)
        {
            StreamReader reader      = new StreamReader(streamRequest);
            string       textRequest = reader.ReadToEnd();

            reader.Close();
            WbapRequest request = DeserializeRequest(textRequest);

            return(Invoke(request, sessionId));
        }
예제 #4
0
 /// <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);
 }
예제 #5
0
        /// <summary>
        /// 构造函数
        /// </summary>
        public static WbapResponse Invoke(string textRequest, string sessionId)
        {
            WbapRequest request = DeserializeRequest(textRequest);

            return(Invoke(request, sessionId));
        }