Example #1
0
        public IList <BetfairE.Bet> GetCurrentBets(
            int exchangeId, int marketId, BetfairE.BetStatusEnum status,
            BetfairE.BetsOrderByEnum orderBy, ref int record, int records)
        {
            BetfairE.BFExchangeService service = serviceExchanges[exchangeId];

            BetfairE.GetCurrentBetsReq betsReq = new BetfairE.GetCurrentBetsReq();
            betsReq.header             = headerExchange;
            betsReq.marketId           = marketId;
            betsReq.betStatus          = status;
            betsReq.detailed           = true;
            betsReq.orderBy            = orderBy;
            betsReq.recordCount        = records;
            betsReq.startRecord        = record;
            betsReq.noTotalRecordCount = true;

            BetfairE.GetCurrentBetsResp betsResp = service.getCurrentBets(betsReq);
            ResetSessionToken(betsResp.header);

            if (betsResp.errorCode == BetfairE.GetCurrentBetsErrorEnum.OK)
            {
                record = (betsResp.bets.Length < records) ? 0 : (record + records);
                return(betsResp.bets);
            }
            else if (betsResp.errorCode == BetfairE.GetCurrentBetsErrorEnum.INVALID_START_RECORD)
            {
                record = 0;
                return(new BetfairE.Bet[0]);
            }
            else if (betsResp.errorCode == BetfairE.GetCurrentBetsErrorEnum.NO_RESULTS)
            {
                record = 0;
                return(new BetfairE.Bet[0]);
            }
            else if (ExchangeThrottleException.WasThrottled(betsResp))
            {
                throw new ExchangeThrottleException("getCurrentBets", betsResp);
            }
            else
            {
                record = 0;
                throw new ExchangeException("getCurrentBets", betsResp);
            }
        }
Example #2
0
        public IList <BetfairE.Bet> GetBetHistory(
            int exchangeId, int marketId, BetfairE.BetStatusEnum status,
            DateTime from, DateTime to,
            ICollection <int> eventTypeIds, ICollection <BetfairE.MarketTypeEnum> marketTypes,
            BetfairE.BetsOrderByEnum orderBy, ref int record, int records)
        {
            int?[] nullableEventTypeIds = null;
            if (eventTypeIds != null)
            {
                int index = 0;
                nullableEventTypeIds = new int?[eventTypeIds.Count];
                foreach (int eventTypeId in eventTypeIds)
                {
                    nullableEventTypeIds[index++] = eventTypeId;
                }
            }

            BetfairE.MarketTypeEnum?[] nullableMarketTypes = null;
            if (marketTypes != null)
            {
                int index = 0;
                nullableMarketTypes = new BetfairE.MarketTypeEnum?[marketTypes.Count];
                foreach (BetfairE.MarketTypeEnum marketType in marketTypes)
                {
                    nullableMarketTypes[index++] = marketType;
                }
            }

            BetfairE.BFExchangeService service = serviceExchanges[exchangeId];

            BetfairE.GetBetHistoryReq betsReq = new BetfairE.GetBetHistoryReq();
            betsReq.header              = headerExchange;
            betsReq.detailed            = true;
            betsReq.marketId            = marketId;
            betsReq.betTypesIncluded    = status;
            betsReq.placedDateFrom      = from;
            betsReq.placedDateTo        = to;
            betsReq.eventTypeIds        = nullableEventTypeIds;
            betsReq.marketTypesIncluded = nullableMarketTypes;
            betsReq.sortBetsBy          = orderBy;
            betsReq.recordCount         = records;
            betsReq.startRecord         = record;

            BetfairE.GetBetHistoryResp betsResp = service.getBetHistory(betsReq);
            ResetSessionToken(betsResp.header);

            if (betsResp.errorCode == BetfairE.GetBetHistoryErrorEnum.OK)
            {
                record = (betsResp.betHistoryItems.Length < records) ? 0 : (record + records);
                return(betsResp.betHistoryItems);
            }
            else if (betsResp.errorCode == BetfairE.GetBetHistoryErrorEnum.INVALID_START_RECORD)
            {
                record = 0;
                return(new BetfairE.Bet[0]);
            }
            else if (betsResp.errorCode == BetfairE.GetBetHistoryErrorEnum.NO_RESULTS)
            {
                record = 0;
                return(new BetfairE.Bet[0]);
            }
            else if (ExchangeThrottleException.WasThrottled(betsResp))
            {
                throw new ExchangeThrottleException("getBetHistory", betsResp);
            }
            else
            {
                record = 0;
                throw new ExchangeException("getBetHistory", betsResp);
            }
        }