Esempio n. 1
0
        public void updateOdds1x2(string scheduleID)
        {
            try
            {
                OddsDAO      oddsDAO    = new OddsDAO();
                CompanyDAO   companyDAO = new CompanyDAO();
                WebClientBLL bll        = new WebClientBLL();
                string       actual     = bll.UpdateOdds1x2Content(scheduleID);

                //获取赔率原始数据
                Regex reg = new Regex("game\\=Array\\(\"" + "\\w[^;" + "]*;");
                Match mat = reg.Match(actual);
                if (mat != null && !String.IsNullOrEmpty(mat.Value))
                {
                    //所有公司数据
                    string source = mat.Value.Substring(12, mat.Value.Length - 10 - 4);
                    //分解出每个公司数据
                    string[] compstrs = Regex.Split(source, "\",\"", RegexOptions.IgnoreCase);
                    foreach (string compstr in compstrs)
                    {
                        JObject  item    = new JObject();
                        string[] oddsArr = compstr.Replace("\"", "").Split('|');

                        #region 插入公司数据
                        if (!companyDAO.Exists(int.Parse(oddsArr[0])) && oddsArr.Length > 22)
                        {
                            SeoWebSite.Model.Company company = new SeoWebSite.Model.Company();
                            company.id         = int.Parse(oddsArr[0]);
                            company.fullname   = oddsArr[21];
                            company.name       = oddsArr[2];
                            company.isprimary  = Convert.ToBoolean(int.Parse(oddsArr[22]));
                            company.isexchange = Convert.ToBoolean(int.Parse(oddsArr[23]));
                            companyDAO.Add(company);
                        }
                        #endregion

                        #region 插入欧赔数据
                        if (!oddsDAO.Exists(int.Parse(oddsArr[1])))
                        {
                            Odds odds = new Odds();
                            odds.scheduleid = int.Parse(scheduleID);
                            odds.companyid  = int.Parse(oddsArr[0]);
                            odds.id         = int.Parse(oddsArr[1]);
                            odds.s_win      = decimal.Parse(oddsArr[3]);
                            odds.s_draw     = decimal.Parse(oddsArr[4]);
                            odds.s_lost     = decimal.Parse(oddsArr[5]);
                            odds.s_winper   = decimal.Parse(oddsArr[6]);
                            odds.s_drawper  = decimal.Parse(oddsArr[7]);
                            odds.s_lostper  = decimal.Parse(oddsArr[8]);
                            if (!String.IsNullOrEmpty(oddsArr[9]))
                            {
                                odds.s_return = decimal.Parse(oddsArr[9]);
                            }
                            if (!String.IsNullOrEmpty(oddsArr[10]))
                            {
                                odds.e_win = decimal.Parse(oddsArr[10]);
                            }
                            if (!String.IsNullOrEmpty(oddsArr[11]))
                            {
                                odds.e_draw = decimal.Parse(oddsArr[11]);
                            }
                            if (!String.IsNullOrEmpty(oddsArr[12]))
                            {
                                odds.e_lost = decimal.Parse(oddsArr[12]);
                            }
                            if (!String.IsNullOrEmpty(oddsArr[13]))
                            {
                                odds.e_winper = decimal.Parse(oddsArr[13]);
                            }
                            if (!String.IsNullOrEmpty(oddsArr[14]))
                            {
                                odds.e_drawper = decimal.Parse(oddsArr[14]);
                            }
                            if (!String.IsNullOrEmpty(oddsArr[15]))
                            {
                                odds.e_lostper = decimal.Parse(oddsArr[15]);
                            }
                            if (!String.IsNullOrEmpty(oddsArr[16]))
                            {
                                odds.e_return = decimal.Parse(oddsArr[16]);
                            }
                            if (!String.IsNullOrEmpty(oddsArr[17]))
                            {
                                odds.winkelly = decimal.Parse(oddsArr[17]);
                            }
                            if (!String.IsNullOrEmpty(oddsArr[18]))
                            {
                                odds.drawkelly = decimal.Parse(oddsArr[18]);
                            }
                            if (!String.IsNullOrEmpty(oddsArr[19]))
                            {
                                odds.lostkelly = decimal.Parse(oddsArr[19]);
                            }
                            string[] timeArr = oddsArr[20].Split(',');
                            odds.lastupdatetime = new DateTime(int.Parse(timeArr[0]), int.Parse(timeArr[1].Remove(2)), int.Parse(timeArr[2]), int.Parse(timeArr[3]), int.Parse(timeArr[4]), int.Parse(timeArr[5])).AddHours(8);
                            oddsDAO.Add(odds);
                        }
                        #endregion
                    }
                }
            }
            catch (WebException e)
            {
                HttpWebResponse response = (HttpWebResponse)e.Response;
                if (response != null)                                   //排除对象为空的错误
                {
                    if (response.StatusCode == HttpStatusCode.NotFound) //判断是否是404错误
                    {
                        sdal.Delete(Convert.ToInt32(scheduleID));
                    }
                }
            }
        }