Beispiel #1
0
            /// <summary>
            /// 获取SRExample查询结果。
            /// </summary>
            /// <param name="p"></param>
            /// <param name="jsonText"></param>
            /// <param name="obj"></param>
            /// <param name="specifiedFields"></param>
            /// <param name="keyIDpair"></param>
            /// <returns></returns>
            internal SRExample.ResultMsg GetSRExampleResultMsg(string serviceName = "", string methodName = "", string jsonText = "", RequestBus.Passengers obj = null, Dictionary <string, string> specifiedFields = null, Dictionary <string, string> keyIDpair = null)
            {
                Type t = typeof(SRExample.ResultMsg);

                SRExample.ServiceSoapClient ssc       = new SRExample.ServiceSoapClient();
                SRExample.ResultMsg         resultMsg = null;
                try
                {
                    if (null != obj)
                    {
                        GB.Authorization gba = new Authorization();
                        // jsonText = gba.GetJsonTextWithSignName("WPWeb", obj: obj, specifiedFields: specifiedFields, keyIDpair: keyIDpair);
                        jsonText = gba.GetJsonTextWithSignName(serviceName: serviceName, methodName: methodName, methodParamObjectArray: new object[] { obj, specifiedFields, keyIDpair });
                        // Response.Write(jsonText);
                    }
                    else
                    {
                    }
                    resultMsg = (RF.GlobalClass.Utils.Do.MagicMethod <SRExample.ServiceSoapClient, Func <SRExample.ServiceSoapClient, String, SRExample.ResultMsg> >(typeof(SRExample.ServiceSoapClient).GetMethod(methodName, new[] { typeof(string) })))(ssc, jsonText) as SRExample.ResultMsg;
                }
                catch (Exception Exception)
                {
                    throw Exception;
                }
                try
                {
                    if (null == resultMsg)
                    {
                        Response.ClearContent();
                        RequestBus.ajaxResponseOfResultMsgNull(Response: Response);
                        Response.End();
                        return(resultMsg);
                    }
                    else
                    {
                    }
                }
                catch (Exception ex)
                {
                }
                return(resultMsg);
            }
        protected void Page_Load(object sender, EventArgs e)
        {
            GBA        = RequestBus.getGBA(Response: Response, moduleID: ModuleID.Value, openName: "rfOaService", methodName: "redforce"); //getGBA(Response, ModuleID.Value);
            GBW        = RequestBus.getGBW(Response: Response);                                                                            // getGBW(Response);
            passengers = new RequestBus.Passengers();
            Dictionary <string, string> dssPP = RequestBus.GetPostPutData(Request: Request);
            string tmp = String.Empty;

            serviceName              = dssPP.TryGetValue("serviceName", out tmp) ? tmp : serviceName;
            interfaceName            = dssPP.TryGetValue("interfaceName", out tmp) ? tmp : interfaceName;
            specifiedFiledSuffixName = dssPP.TryGetValue("specifiedFiledSuffixName", out tmp) ? tmp : specifiedFiledSuffixName;
            keyIDPairSuffixName      = dssPP.TryGetValue("keyIDPairSuffixName", out tmp) ? tmp : keyIDPairSuffixName;
            Type requestBusType = (new RequestBus()).GetType();

            dssSpecifiedFields = RF.GlobalClass.Utils.Do.MagicField <Dictionary <string, string> >((new RequestBus()), serviceName + interfaceName + specifiedFiledSuffixName) ?? RF.GlobalClass.Utils.Do.MagicField <Dictionary <string, string> >((new RequestBus()), serviceName + specifiedFiledSuffixName) ?? dssSpecifiedFields;
            dssKeyIDPair       = RF.GlobalClass.Utils.Do.MagicField <Dictionary <string, string> >((new RequestBus()), serviceName + interfaceName + keyIDPairSuffixName) ?? RF.GlobalClass.Utils.Do.MagicField <Dictionary <string, string> >((new RequestBus()), serviceName + keyIDPairSuffixName) ?? dssKeyIDPair;

            #region interface name
            SRExample.ServiceSoapClient rsc = new SRExample.ServiceSoapClient();
            DropDownList ddlInterfaceName   = new DropDownList();
            ddlInterfaceName.ID             = "InterfaceName";
            ddlInterfaceName.DataTextField  = "txt";
            ddlInterfaceName.DataValueField = "val";
            DataTable dt = new DataTable();
            dt.Columns.Add("txt");
            dt.Columns.Add("val");
            rsc.GetType().GetMethods().Select(x => (x.ReturnType == typeof(SRExample.ResultMsg)) ? (dt.Rows.Add(new object[] { x.Name, x.Name }) == null ? true : true) : false).ToArray();

            /* might meet methods with same name and different return type
             * RF.GlobalClass.Utils.Do.getMethodNamesOfObject(CWRCS).Select(delegate(string name)
             * {
             *  // CWRCS.GetType().GetMethods().Select(x=> dt.Rows.Add(new object[]{x,x})).ToArray();
             *
             *  if (CWRCS.GetType().GetMethod(name).ReturnType == typeof(CheckinWebReference.ResultMsg))
             *  {
             *      dt.Rows.Add(new object[]{ name, name });
             *  }
             *  else { }
             *  return name;
             * }).ToArray();
             * */
            ddlInterfaceName.DataSource = dt;
            ddlInterfaceName.DataBind();
            ddlInterfaceName.SelectedValue = interfaceName;
            ddlInterfaceName.TextChanged  += new EventHandler(ddlInterfaceName_TextChanged);
            Label lbInterfaceName = new Label();
            lbInterfaceName.Text = "Interface Name:";
            form1.Controls.Add(lbInterfaceName);
            form1.Controls.Add(ddlInterfaceName);
            #endregion
            Label    lb = new Label();
            CheckBox cb = new CheckBox();
            TextBox  tx = new TextBox();
            Panel    pl = new Panel();
            cc = new RF.GlobalClass.WebForm.ControlCollection(RF.GlobalClass.Utils.Do.getPropertyNamesOfObject(passengers).Select(delegate(string _name)
            {
                string name = _name;
                if (dssKeyIDPair.ContainsKey(_name))
                {
                    name = dssKeyIDPair[_name];
                }
                else
                {
                }
                lb      = new Label();
                lb.Text = name;
                lb.Style.Add(HtmlTextWriterStyle.Margin, "2px 2px 2px 4px");
                cb         = new CheckBox();
                cb.ID      = "cb_" + name;
                cb.Checked = dssSpecifiedFields.ContainsKey(name);
                cb.ToolTip = "check to use it creating sign name.";
                tx         = new TextBox();
                if (cb.Checked)
                {
                    tx.ToolTip = dssSpecifiedFields[name] ?? String.Empty;
                    if (!String.IsNullOrEmpty(tx.ToolTip))
                    {
                        lb.Text = tx.ToolTip;
                    }
                    else
                    {
                    }
                }
                else
                {
                }
                tx.ID = name;
                tx.Style.Add(HtmlTextWriterStyle.Margin, "2px 4px 2px 2px");
                switch (_name)
                {
                case "empid": tx.Text = GBA.UserSession.empid;
                    break;

                case "mdlid": tx.Text = GBA.ModuleID;
                    break;

                case "pwrid": tx.Text = GBA.PowerID;
                    break;

                case "dptid": tx.Text = GBA.UserSession.dptid;
                    break;

                case "TimeStamp":
                    tx.Text = RequestBus.GetDateTimeString(DateTime.Now);
                    break;

                case "openName":
                    tx.Text = GBA.OpenName;
                    break;

                case "methodName":
                    tx.Text = GBA.MethodName;
                    break;

                case "Sign":
                    tx.Width    = Unit.Pixel(300);
                    tx.ReadOnly = true;
                    break;

                default: break;
                }
                System.Web.UI.HtmlControls.HtmlGenericControl span = new System.Web.UI.HtmlControls.HtmlGenericControl("span");
                span.Style.Add(HtmlTextWriterStyle.WhiteSpace, "nowrap");
                span.Style.Add(HtmlTextWriterStyle.Display, "inline-block");
                span.Controls.Add(lb);
                span.Controls.Add(cb);
                span.Controls.Add(tx);
                form1.Controls.Add(span);
                return(tx);
            }).ToArray());

            System.Web.UI.HtmlControls.HtmlGenericControl div = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
            div.Style.Add(HtmlTextWriterStyle.WhiteSpace, "nowrap");
            div.Style.Add(HtmlTextWriterStyle.Margin, "4px");

            Button btn = new Button();
            btn.Text   = "Generate Sign";
            btn.Click += new EventHandler(btnGenerateSign_Click);
            div.Controls.Add(btn);

            btn        = new Button();
            btn.Text   = "Send Request";
            btn.Click += new EventHandler(btnSendRequest_Click);
            div.Controls.Add(btn);
            form1.Controls.Add(div);

            div = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
            div.Style.Add(HtmlTextWriterStyle.WhiteSpace, "nowrap");
            div.Style.Add(HtmlTextWriterStyle.Margin, "4px");
            #region result
            lb      = new Label();
            lb.Text = "ResultMsg.RetCode:";
            div.Controls.Add(lb);
            tx    = new TextBox();
            tx.ID = "ResultMsgRetCode";
            div.Controls.Add(tx);

            div.Controls.Add(new Label());
            lb      = new Label();
            lb.Text = "ResultMsg.RetMsg:";
            div.Controls.Add(lb);
            tx    = new TextBox();
            tx.ID = "ResultMsgRetMsg";
            div.Controls.Add(tx);
            form1.Controls.Add(div);

            div = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
            div.Style.Add(HtmlTextWriterStyle.WhiteSpace, "nowrap");
            div.Style.Add(HtmlTextWriterStyle.Margin, "4px");
            lb      = new Label();
            lb.Text = "ResultMsg.Obj:";
            div.Controls.Add(lb);
            tx          = new TextBox();
            tx.Rows     = 10;
            tx.ID       = "ResultMsgObj";
            tx.Width    = Unit.Percentage(80.0);
            tx.TextMode = TextBoxMode.MultiLine;
            div.Controls.Add(tx);
            form1.Controls.Add(div);

            div = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
            div.Style.Add(HtmlTextWriterStyle.WhiteSpace, "nowrap");
            div.Style.Add(HtmlTextWriterStyle.Margin, "4px");
            lb      = new Label();
            lb.Text = "ResultMsg.Objj:";
            div.Controls.Add(lb);
            tx          = new TextBox();
            tx.Rows     = 10;
            tx.ID       = "ResultMsgObjj";
            tx.Width    = Unit.Percentage(80.0);
            tx.TextMode = TextBoxMode.MultiLine;
            div.Controls.Add(tx);
            form1.Controls.Add(div);

            div = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
            div.Style.Add(HtmlTextWriterStyle.WhiteSpace, "nowrap");
            div.Style.Add(HtmlTextWriterStyle.Margin, "4px");
            div.Controls.Add(new Panel());
            lb      = new Label();
            lb.Text = "Request JSON:";
            div.Controls.Add(lb);
            tx          = new TextBox();
            tx.Rows     = 10;
            tx.ID       = "RequestJSON";
            tx.Width    = Unit.Percentage(80.0);
            tx.TextMode = TextBoxMode.MultiLine;
            div.Controls.Add(tx);
            form1.Controls.Add(div);

            #endregion
        }