Exemplo n.º 1
0
 private static CompetitionItemRoiRow[] BuildResult(DbStoredProc proc, SportType sportType, int[] competitionUniqueIDs, BrokerType[] brokerTypes)
 {
     if (brokerTypes != null) {
         proc = proc.WithParam("argbrokerids", brokerTypes.Select(b => (short)b), DbType.Int16);
     }
     if (competitionUniqueIDs != null) {
         proc = proc.WithParam("argcompetitionuniqueids", competitionUniqueIDs, DbType.Int32);
     }
     if (sportType != SportType.Unknown) {
         proc = proc.WithParam("argsporttype", (short) sportType);
     }
     var data = proc.MultiRowExec(DatabaseActions.GetAdapter(TargetDB.MASTER), "fn_getbetroi").Data;
     var result = new CompetitionItemRoiRow[data.Count];
     for (var i = 0; i < result.Length; i++) {
         var row = data[i];
         var betData = (int[])row[1];
         var betIDs = new Dictionary<BetOddType, int>();
         for (var j = 0; j < betData.Length; j+=2) {
             betIDs[(BetOddType) (short) betData[j]] = betData[j + 1];
         }
         result[i] = new CompetitionItemRoiRow {
             ID = (int)row[0],
             BetIDs = betIDs,
             Roi = (float) row[2],
             RoiType = (RoiType) (short) row[3]
         };
     }
     return result;
 }
Exemplo n.º 2
0
 public static RoiTransport BuildRoiTransport(CompetitionItemRoiRow roi, Dictionary<int, IBet<int>> betMap)
 {
     var oddsGetterMap = BetMappingHelper<int>.OddsGetterMap;
     var odds = roi.BetIDs
         .Select(b => new KeyValuePair<BetOddType, BetItemTransport>(b.Key, oddsGetterMap[b.Key](betMap[b.Value])))
         .ToDictionary(kv => kv.Key, kv => kv.Value);
     return new RoiTransport {
         RoiType = roi.RoiType,
         Roi = roi.Roi,
         Odds = odds
     };
 }