private void CanCalculateMarketProfitAndPayout() { var nEvent = Common.CreateAndSaveMockEvent(EventController); var newMarket = Common.CreateAndSaveMockMarket(nEvent.Id, "Market 1", 0.5m, MarketController); Common.CreateAndSaveMockBet(newMarket.Id, 100, BetController); Common.CreateAndSaveMockBet(newMarket.Id, 50, BetController); Common.CreateAndSaveMockBet(newMarket.Id, 99.99m, BetController); MarketOutcome marketOutcome = MarketController.GetMarketCurrentOutcome(newMarket.Id); var success = (marketOutcome != null) && (marketOutcome.MarketLoseProfitAmount == 249.99m) && (marketOutcome.MarketWinPayoutAmount == 499.98m); Assert.True(success); }
public EventOutcome GetEventOutcomeForMarket(string eventId, string marketId) { var eventById = GetById(eventId, true, true); if (eventById == null) { return(null); } var eventOutcome = new EventOutcome { EventId = eventId }; if (eventById.EventMarkets == null || eventById.EventMarkets.Count == 0 || eventById.EventMarkets.FirstOrDefault(m => m.Id == marketId) == null) { return(eventOutcome); } eventOutcome.WinningMarketId = marketId; eventOutcome.WinningMarket = eventById.EventMarkets.FirstOrDefault(m => m.Id == marketId); eventById.EventMarkets.ForEach(market => { var marketOutcome = new MarketOutcome { Market = market, MarketLoseProfitAmount = market.GetMarketLoseProfitAmount(), MarketWinPayoutAmount = market.GetMarketWinPayoutAmount() }; eventOutcome.PossibleMarketOutcomes.Add(marketOutcome); if (market.Id == marketId) //Minus payout amount { eventOutcome.PLAmount -= marketOutcome.MarketWinPayoutAmount; } eventOutcome.PLAmount += marketOutcome.MarketLoseProfitAmount; }); return(eventOutcome); }