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); }
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); }
public StoreException(CalculateEnum status, string message) : base((int)status, message) { }