Exemplo n.º 1
0
            protected override bool callAjax(int callIndex, AutoCSer.WebView.AjaxBase page)
            {
                switch (callIndex)
                {
                    #region LOOP Methods
                case @MethodIndex:
                {
                    #region IF InputParameterIndex
                    @InputParameterTypeName inputParameter = new @InputParameterTypeName();
                    if (page.ParseParameter(ref inputParameter))
                    #endregion IF InputParameterIndex
                    {
                        @WebAjaxMethodType.FullName ajax = (@WebAjaxMethodType.FullName)page;
                        #region IF OutputParameterIndex
                        @OutputParameterTypeName outputParameter = new @OutputParameterTypeName {         /*LOOP:MethodParameters*//*IF:IsRef*/
                            @ParameterName = inputParameter.@ParameterName,                               /*IF:IsRef*//*LOOP:MethodParameters*/
                        };
                        #endregion IF OutputParameterIndex
                        #region IF IsAsynchronousCallback
                        #region IF MethodIsReturn
                        @AsyncIndexName returnCallbak = new @AsyncIndexName {
                            Ajax = ajax, Parameter = outputParameter
                        };
                        ajax./*PUSH:Method*/ @MethodName/*PUSH:Method*/ (/*LOOP:MethodParameters*//*AT:ParameterRef*/ inputParameter.@ParameterName, /*LOOP:MethodParameters*//*NOTE*/ (Action <AutoCSer.Net.TcpServer.ReturnValue <@MethodReturnType.FullName> >) /*NOTE*/ returnCallbak.Callback);
                        #endregion IF MethodIsReturn
                        #region NOT MethodIsReturn
                        #region IF IsPoolType
                        AjaxCallbackPool <@WebAjaxMethodType.FullName /*IF:OutputParameterIndex*/, @OutputParameterTypeName /*IF:OutputParameterIndex*/> callbackPool = new AjaxCallbackPool <@WebAjaxMethodType.FullName /*IF:OutputParameterIndex*/, @OutputParameterTypeName /*IF:OutputParameterIndex*/> {
                            Ajax = ajax /*IF:OutputParameterIndex*/, Parameter = outputParameter                                                                                                                                                                                                                                                                                    /*IF:OutputParameterIndex*/
                        };
                        ajax./*PUSH:Method*/ @MethodName/*PUSH:Method*/ (/*LOOP:MethodParameters*//*AT:ParameterRef*/ inputParameter.@ParameterName, /*LOOP:MethodParameters*//*NOTE*/ (Action <AutoCSer.Net.TcpServer.ReturnValue>) /*NOTE*/ callbackPool.Callback);
                        #endregion IF IsPoolType
                        #region NOT IsPoolType
                        AjaxCallback /*IF:OutputParameterIndex*/ <@OutputParameterTypeName> /*IF:OutputParameterIndex*/ callback = new AjaxCallback /*IF:OutputParameterIndex*/ <@OutputParameterTypeName> /*IF:OutputParameterIndex*/ {
                            Ajax = /*NOTE*/ (AutoCSer.WebView.Ajax)(object) /*NOTE*/ ajax /*IF:OutputParameterIndex*/, Parameter = outputParameter                                                                                                                                                                                                           /*IF:OutputParameterIndex*/
                        };
                        ajax./*PUSH:Method*/ @MethodName/*PUSH:Method*/ (/*LOOP:MethodParameters*//*AT:ParameterRef*/ inputParameter.@ParameterName, /*LOOP:MethodParameters*//*NOTE*/ (Action <AutoCSer.Net.TcpServer.ReturnValue>) /*NOTE*/ callback.Callback);
                        #endregion NOT IsPoolType
                        #endregion NOT MethodIsReturn
                        #endregion IF IsAsynchronousCallback
                        #region NOT IsAsynchronousCallback
                        try
                        {
                            /*IF:MethodIsReturn*/
                            outputParameter.Return = /*NOTE*/ (@MethodReturnType.FullName) /*NOTE*//*IF:MethodIsReturn*/ ajax./*PUSH:Method*/ @MethodName/*PUSH:Method*/ (/*LOOP:InputParameters*//*AT:ParameterRef*//*IF:MethodParameter.IsOut*//*PUSH:InputParameter*/ outputParameter.@ParameterName /*PUSH:InputParameter*//*IF:MethodParameter.IsOut*//*NOTE*/, /*NOTE*//*NOT:MethodParameter.IsOut*//*PUSH:Parameter*/ inputParameter.@ParameterName /*PUSH:Parameter*//*NOT:MethodParameter.IsOut*//*PUSH:Parameter*//*AT:ParameterJoin*//*PUSH:Parameter*//*LOOP:InputParameters*/);
                            #region LOOP OutputParameters
                            #region NOT InputMethodParameter.IsOut
                            /*PUSH:Parameter*/
                            outputParameter.@ParameterName /*PUSH:Parameter*/ = inputParameter./*PUSH:InputParameter*/ @ParameterName /*PUSH:InputParameter*/;
                            #endregion NOT InputMethodParameter.IsOut
                            #endregion LOOP OutputParameters
                        }
                        finally { responseAjax(ajax /*IF:OutputParameterIndex*/, ref outputParameter /*IF:OutputParameterIndex*/); }
                        #endregion NOT IsAsynchronousCallback
                        return(true);
                    }
                }
                    return(false);

                    #endregion LOOP Methods
                default: return(false);
                }
            }
Exemplo n.º 2
0
            /// <summary>
            /// AJAX调用
            /// </summary>
            /// <param name="callIndex"></param>
            /// <param name="loader"></param>
            protected override void callAjax(int callIndex, fastCSharp.code.cSharp.ajax.loader loader)
            {
                switch (callIndex)
                {
                    #region LOOP Methods
                case @MethodIndex:
                {
                    @WebViewMethodType.FullName view = /*IF:TypeAttribute.IsPool*/ fastCSharp.typePool <@WebViewMethodType.FullName> .Pop() ?? /*IF:TypeAttribute.IsPool*/ new @WebViewMethodType.FullName();

                    #region IF IsParameter
                    @ParameterTypeName parameter = new @ParameterTypeName();
                    #endregion IF IsParameter
                    fastCSharp.net.tcp.http.response response = loader.Load(view /*IF:IsInputParameter*/, ref parameter /*IF:IsInputParameter*//*PUSH:TypeAttribute*/, @IsPool /*PUSH:TypeAttribute*/);
                    if (response != null)
                    {
                        int responseIdentity = view.ResponseIdentity;
                        #region IF IsAsynchronousCallback
                        @AsyncIndexName callback = typePool <@AsyncIndexName> .Pop() ?? new @AsyncIndexName();

                        #region IF IsParameter
                        callback.Parameter = parameter;
                        #endregion IF IsParameter
                        view./*PUSH:Method*/ @MethodGenericName/*PUSH:Method*/ (/*LOOP:MethodParameters*//*AT:ParameterRef*/ parameter.@ParameterName, /*LOOP:MethodParameters*/ callback.Get(view, response));
                        #endregion IF IsAsynchronousCallback
                        #region NOT IsAsynchronousCallback
                        try
                        {
                            /*IF:MethodIsReturn*/
                            parameter.@ReturnName = /*NOTE*/ (@MethodReturnType.GenericParameterType.FullName) /*NOTE*//*IF:MethodIsReturn*/ view./*PUSH:Method*/ @MethodGenericName/*PUSH:Method*/ (/*LOOP:MethodParameters*//*AT:ParameterRef*/ parameter.@ParameterName /*AT:ParameterJoin*//*LOOP:MethodParameters*/);
                        }
                        finally
                        {
                            #region IF IsOutputParameter
                            if (responseIdentity == view.ResponseIdentity)
                            {
                                view.AjaxResponse(ref parameter, ref response);
                            }
                            else
                            {
                                view.AjaxResponse(ref response);
                            }
                            #endregion IF IsOutputParameter
                            #region NOT IsOutputParameter
                            view.AjaxResponse(ref response);
                            #endregion NOT IsOutputParameter
                        }
                        #endregion NOT IsAsynchronousCallback
                    }
                }
                    return;

                    #endregion LOOP Methods
                    #region LOOP ViewMethods
                case @MethodIndex /*NOTE*/ + 1 /*NOTE*/: loader.LoadView(/*IF:Attribute.IsPool*/ fastCSharp.typePool <@WebViewMethodType.FullName> .Pop() ?? /*IF:Attribute.IsPool*/ new @WebViewMethodType.FullName() /*PUSH:Attribute*/, @IsPool /*PUSH:Attribute*/); return;

                    #endregion LOOP ViewMethods
                    #region NOT IsPubError
                case @MethodCount - 1: pubError(loader); return;

                    #endregion NOT IsPubError
                }
            }