Ejemplo n.º 1
0
        public void Calculate(CalculateEnum calc, string limittedCompanyList)
        {
            string sql = string.Empty;

            if (calc == CalculateEnum.First)
            {
                sql = string.Format("SELECT d.*\r\nFROM {2}.dbo.OddsInfo_Daily d\r\nLEFT JOIN (\r\n\tSELECT game_id, company_id, MIN(update_time) AS update_time\r\n\tFROM {2}.dbo.OddsInfo_Daily\r\n    WHERE game_id = {0}\r\n\tGROUP BY game_id, company_id\r\n\t) m ON d.game_id = m.game_id\r\n\tAND d.company_id = m.company_id\r\n\tAND d.update_time = m.update_time\r\nLEFT JOIN Data2014.dbo.CompanyInfo c ON d.company_id = c.company_id\r\nWHERE m.game_id = {0} {1}", (object)this._GameId, (object)limittedCompanyList, this._isDaily ? (object)"FootballSinaDaily" : (object)"Data2014");
            }
            else if (calc == CalculateEnum.Last)
            {
                sql = string.Format("SELECT d.*\r\nFROM {2}.dbo.OddsInfo_Daily d\r\nLEFT JOIN (\r\n\tSELECT game_id, company_id, MAX(update_time) AS update_time\r\n\tFROM {2}.dbo.OddsInfo_Daily\r\n    WHERE game_id = {0}\r\n\tGROUP BY game_id, company_id\r\n\t) m ON d.game_id = m.game_id\r\n\tAND d.company_id = m.company_id\r\n\tAND d.update_time = m.update_time\r\nLEFT JOIN Data2014.dbo.CompanyInfo c ON d.company_id = c.company_id\r\nWHERE m.game_id = {0} {1}", (object)this._GameId, (object)limittedCompanyList, this._isDaily ? (object)"FootballSinaDaily" : (object)"Data2014");
            }
            if (string.IsNullOrEmpty(sql))
            {
                return;
            }
            this._oddsList = Enumerable.ToList <OddsInfo>((IEnumerable <OddsInfo>) new DataHandler(this._isDaily).GetOddsInfo(sql));
            this.Calculate(this._oddsList);
        }
Ejemplo n.º 2
0
        private void RetrieveUIOddsInfo(List <OddsInfo> oddsList, Dictionary <int, Company> allExistCompanies, string appendix, CalculateEnum oddsType)
        {
            List <UIOddsInfo> list = Enumerable.ToList <UIOddsInfo>(Enumerable.Select(Enumerable.ThenBy(Enumerable.OrderByDescending(Enumerable.Join((IEnumerable <OddsInfo>)oddsList, (IEnumerable <KeyValuePair <int, Company> >)allExistCompanies, (Func <OddsInfo, int>)(odds => odds.CompanyId), (Func <KeyValuePair <int, Company>, int>)(company => company.Key), (odds, company) =>
            {
                var fAnonymousType2 = new
                {
                    odds    = odds,
                    company = company
                };
                return(fAnonymousType2);
            }), param0 => param0.company.Value.IsLeading), param0 => param0.company.Value.Name), param0 => new UIOddsInfo()
            {
                Name       = param0.company.Value.Name,
                WinVar     = param0.odds.WinVar * 100.0,
                TieVar     = param0.odds.TieVar * 100.0,
                LoseVar    = param0.odds.LoseVar * 100.0,
                Win        = param0.odds.Win,
                Tie        = param0.odds.Tie,
                Lose       = param0.odds.Lose,
                WinKelly   = param0.odds.WinKelly * new Decimal(100),
                TieKelly   = param0.odds.TieKelly * new Decimal(100),
                LoseKelly  = param0.odds.LoseKelly * new Decimal(100),
                UpdateTime = param0.odds.UpdateTime,
                OddsType   = oddsType
            }));
            UIOddsInfo uiOddsInfo1 = new UIOddsInfo()
            {
                Name      = "最大值" + appendix,
                WinVar    = Enumerable.Max <UIOddsInfo>((IEnumerable <UIOddsInfo>)list, (Func <UIOddsInfo, double>)(o => o.WinVar)),
                TieVar    = Enumerable.Max <UIOddsInfo>((IEnumerable <UIOddsInfo>)list, (Func <UIOddsInfo, double>)(o => o.TieVar)),
                LoseVar   = Enumerable.Max <UIOddsInfo>((IEnumerable <UIOddsInfo>)list, (Func <UIOddsInfo, double>)(o => o.LoseVar)),
                WinKelly  = Enumerable.Max <UIOddsInfo>((IEnumerable <UIOddsInfo>)list, (Func <UIOddsInfo, Decimal>)(o => o.WinKelly)),
                TieKelly  = Enumerable.Max <UIOddsInfo>((IEnumerable <UIOddsInfo>)list, (Func <UIOddsInfo, Decimal>)(o => o.TieKelly)),
                LoseKelly = Enumerable.Max <UIOddsInfo>((IEnumerable <UIOddsInfo>)list, (Func <UIOddsInfo, Decimal>)(o => o.LoseKelly))
            };
            UIOddsInfo uiOddsInfo2 = new UIOddsInfo()
            {
                Name      = "平均值" + appendix,
                WinVar    = Enumerable.Average <UIOddsInfo>((IEnumerable <UIOddsInfo>)list, (Func <UIOddsInfo, double>)(o => o.WinVar)),
                TieVar    = Enumerable.Average <UIOddsInfo>((IEnumerable <UIOddsInfo>)list, (Func <UIOddsInfo, double>)(o => o.TieVar)),
                LoseVar   = Enumerable.Average <UIOddsInfo>((IEnumerable <UIOddsInfo>)list, (Func <UIOddsInfo, double>)(o => o.LoseVar)),
                WinKelly  = Enumerable.Average <UIOddsInfo>((IEnumerable <UIOddsInfo>)list, (Func <UIOddsInfo, Decimal>)(o => o.WinKelly)),
                TieKelly  = Enumerable.Average <UIOddsInfo>((IEnumerable <UIOddsInfo>)list, (Func <UIOddsInfo, Decimal>)(o => o.TieKelly)),
                LoseKelly = Enumerable.Average <UIOddsInfo>((IEnumerable <UIOddsInfo>)list, (Func <UIOddsInfo, Decimal>)(o => o.LoseKelly))
            };
            UIOddsInfo uiOddsInfo3 = new UIOddsInfo()
            {
                Name      = "最小值" + appendix,
                WinVar    = Enumerable.Min <UIOddsInfo>((IEnumerable <UIOddsInfo>)list, (Func <UIOddsInfo, double>)(o => o.WinVar)),
                TieVar    = Enumerable.Min <UIOddsInfo>((IEnumerable <UIOddsInfo>)list, (Func <UIOddsInfo, double>)(o => o.TieVar)),
                LoseVar   = Enumerable.Min <UIOddsInfo>((IEnumerable <UIOddsInfo>)list, (Func <UIOddsInfo, double>)(o => o.LoseVar)),
                WinKelly  = Enumerable.Min <UIOddsInfo>((IEnumerable <UIOddsInfo>)list, (Func <UIOddsInfo, Decimal>)(o => o.WinKelly)),
                TieKelly  = Enumerable.Min <UIOddsInfo>((IEnumerable <UIOddsInfo>)list, (Func <UIOddsInfo, Decimal>)(o => o.TieKelly)),
                LoseKelly = Enumerable.Min <UIOddsInfo>((IEnumerable <UIOddsInfo>)list, (Func <UIOddsInfo, Decimal>)(o => o.LoseKelly))
            };

            this._companyOdds.AddRange((IEnumerable <UIOddsInfo>)list);
            this._calculateOdds.Add(uiOddsInfo2);
            this._calculateOdds.Add(uiOddsInfo1);
            this._calculateOdds.Add(uiOddsInfo3);
        }
Ejemplo n.º 3
0
 public StoreException(CalculateEnum status, string message) : base((int)status, message)
 {
 }