예제 #1
0
파일: BQC.xaml.cs 프로젝트: ichari/ichari
        //datagrid初始化
        void BindNetBall()
        {
            string Number = "";

            try
            {
                HtmlElement input = HtmlPage.Document.GetElementById("Number");

                Number = input.GetAttribute("value");
            }
            catch { }

            if (string.IsNullOrEmpty(Number))
            {
                MessageBox.Show("参数错误,请重新发起请求!");

                return;
            }

            int SchemeLength = Number.Split(';').Length;
            if (SchemeLength != 3)
            {
                return;
            }

            //玩法类型
            string strPlayType = Number.Split(';')[0].ToString();

            //场次信息id字符串,带[]包起来的
            string BuyNumber = Number.Split(';')[1].ToString();

            //去除[]
            string Numbers = BuyNumber.Substring(1, BuyNumber.Length - 1).Substring(0, BuyNumber.Length - 2).ToString().Trim();
            if (Numbers == "")
            {
                return;
            }

            //得到场次信息id和胜平负信息(全局变量)
            GameNumber = Numbers.Split('|');

            //[AB1] --> AB玩法几串几,1数字表示注数
            BuyWays = Number.Trim().Split(';')[2].ToString().Substring(1, Number.Trim().Split(';')[2].ToString().Length - 1).Substring(0, 2).ToString().Trim();
            if (BuyWays == "")
            {
                BuyWays = Netball.GetBuyWays(GameNumber.Length > 3 ? 3 : GameNumber.Length);
            }

            try
            {
                Mulitpe = int.Parse(Number.Trim().Split(';')[2].ToString().Substring(1, Number.Trim().Split(';')[2].ToString().Length - 2).Substring(2).ToString().Trim());
            }
            catch
            {
                Mulitpe = 1;
            }

            //一共多少场比赛
            this.tbSessionCount.Text = GameNumber.Length.ToString() + "场";

            string PlayName = string.Empty;

            PlayName = "(" + Netball.GetGameType(BuyWays) + ")";

            if (string.IsNullOrEmpty(PlayName) && GameNumber.Length > 3)
            {
                PlayName = "(3串1)";
            }

            this.tbGameType1.Text = PlayName;
            this.tbGameType2.Text = PlayName;
            this.tbGameType3.Text = PlayName;
            this.tbGameType4.Text = PlayName;
            this.tbGameType5.Text = PlayName;

            #region 页面初始状态,计算一共多少注,和总金额
            //计算一共多少注,和总金额
            string TempName = string.Empty;
            double ZhuCount = 1;

            List<string[]> List = new List<string[]>();//数组集合
            string TempStr = "";

            for (int k = 0; k < GameNumber.Length; k++)
            {
                TempName = GameNumber[k].ToString();

                string[] ZhuArr = TempName.Substring(TempName.IndexOf('(') + 1, TempName.LastIndexOf(')') - TempName.IndexOf('(') - 1).Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);

                TempStr = "";

                for (int i = 0; i < ZhuArr.Length; i++)
                {
                    TempStr += ZhuArr[i] + ",";
                }

                TempStr += "*";

                string[] arr = TempStr.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                List.Add(arr);
            }

            GetList(List, "", List.Count - 1);//递归方法,获取未处理前得全部数组

            string GameTypeCount = PlayName.Substring(1, 1);

            if (GameTypeCount == List.Count.ToString()) //默认玩法 n串1,n就等于比赛场次
            {
                string Reg2 = @"\*";
                ListResult = ListResult.FindAll(t => !Regex.Match(t, Reg2).Success);
            }
            else if (ConvertInt(GameTypeCount) < List.Count)
            {
                int Difference = List.Count - int.Parse(GameTypeCount);

                ListResult = ListResult.FindAll(t => t.Split(new string[] { "*" }, StringSplitOptions.None).Length == Difference + 1);
            }

            ZhuCount = ListResult.Count;

            this.tbZhuCount.Text = ZhuCount + "注";
            this.tbSumMoney.Text = (ZhuCount * 2 * Mulitpe).ToString();
            this.tbMultiple.Text = Mulitpe.ToString();
            #endregion

            string StrId = string.Empty;

            BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.None);
            binding.MaxReceivedMessageSize = int.MaxValue;
            binding.MaxBufferSize = int.MaxValue;
            ServiceClient sc = new ServiceClient(binding, new EndpointAddress(new Uri(Application.Current.Host.Source, "Service.svc/T_PassRate")));

            for (int i = 0; i < GameNumber.Length; i++)
            {
                string str = GameNumber[i].ToString();
                StrId += str.Split('(')[0].ToString() + ",";//表t_SingleRate的id

            }

            //通过id获取详细信息    
            sc.GetPassRateAsync(StrId);
            sc.GetPassRateCompleted += new EventHandler<GetPassRateCompletedEventArgs>(sc_GetPassRateCompleted);
        }