public BetServices(IComponentContext components) { this.components = components; rouletteRepository = components.Resolve <IRoulette>(); betRepository = components.Resolve <IBet>(); playerRepository = components.Resolve <IPlayer>(); }
public void TakePot(IBet bettor) { var bettors = new List <IBet>(); bettors.Add(bettor); TakePot(bettors); }
public static void Compare(IBet bet, IBet newBet, bool isReoffer) { Assert.IsNotNull(bet); Assert.IsNotNull(newBet); if (bet.Bonus != null) { Assert.AreEqual(bet.Bonus.Value, newBet.Bonus.Value); Assert.AreEqual(bet.Bonus.Mode, newBet.Bonus.Mode); Assert.AreEqual(bet.Bonus.Type, newBet.Bonus.Type); } if (bet.SelectedSystems != null) { Assert.AreEqual(bet.SelectedSystems.Count(), newBet.SelectedSystems.Count()); Assert.IsTrue(bet.SelectedSystems.All(a => newBet.SelectedSystems.Contains(a))); } Assert.AreEqual(bet.SumOfWins, newBet.SumOfWins); if (isReoffer) { Assert.AreNotEqual(bet.Id, newBet.Id); Assert.AreEqual(bet.Id, newBet.ReofferRefId); } else { Assert.AreEqual(bet.Id, newBet.Id); Assert.AreEqual(bet.ReofferRefId, newBet.ReofferRefId); Assert.AreEqual(bet.Stake, newBet.Stake); } }
public Anonymous(IBet bet, IEnumerable <ISelectionRef> selectionRefs) { _id = string.IsNullOrEmpty(bet.Id) ? null : bet.Id; _sumOfWins = bet.SumOfWins > 0 ? bet.SumOfWins : (long?)null; _stake = new Stake(bet.Stake); _entireStake = bet.EntireStake != null ? new EntireStake(bet.EntireStake) : null; _bonus = null; if (bet.Bonus != null) { _bonus = new Bonus(bet.Bonus); } _selectedSystems = null; if (bet.SelectedSystems != null && bet.SelectedSystems.Any()) { _selectedSystems = bet.SelectedSystems as IReadOnlyCollection <int>; } _selectionRefs = null; var selectionRefsList = selectionRefs.ToList(); if (selectionRefsList.Any()) { _selectionRefs = selectionRefsList.ConvertAll(b => new Anonymous3(b)); } _customBet = bet.CustomBet; _calculationOdds = bet.CalculationOdds; }
public void wonAmount_test_colorbet(uint a) { var field = fieldGenerator.CreateFields(); bet = new ColorBet("testbet", a, field.First().Color); Assert.That(bet.WonAmount(field.First()), Is.EqualTo(a * 2)); }
public void wonAmount_test_Evenoddbet(uint a) { var field = fieldGenerator.CreateFields(); bet = new EvenOddBet("testbet", a, true); Assert.That(bet.WonAmount(field.First()), Is.EqualTo(a * 2)); }
public void wonAmount_test_fieldbet(uint a) { var field = fieldGenerator.CreateFields(); bet = new FieldBet("testbet", a, field.First().Number); Assert.That(bet.WonAmount(field.First()), Is.EqualTo(a * 36)); }
public override Task <IBet> CreateAsync(IBet entity) { return(Task.Run(() => { Redis.SaveObject(entity); return entity; })); }
public void Process(IBet bet) { if (bet.Stake > 1) { Sum += bet.Stake; bet.Status = true; } }
/// <summary> /// Adds the <see cref="IBet" /> /// </summary> /// <param name="bet">A <see cref="IBet" /> to be added to this ticket</param> /// <returns>Returns a <see cref="ITicketBuilder" /></returns> public ITicketBuilder AddBet(IBet bet) { var bets = _bets as List <IBet> ?? new List <IBet>(); bets.Add(bet); _bets = bets; return(this); }
public void Process(IBet bet) { if (bet.CreationDate.DayOfWeek == DayOfWeek.Friday) { Sum += bet.Stake; bet.Status = true; } }
private IBet MakeBetObject(IBetDTO dto) { var info = dto.GetBetSpecificInfo(); IBet output = null; if (info.TryGetValue("Color", out object temp)) { if (temp != null) { int color = (int)temp; output = new ColorBet((IPocketColor)color) { Id = dto.Id, Stake = dto.Stake, }; } } else if (info.TryGetValue("FirstNumber", out object temp3) && info.TryGetValue("SecondNumber", out object temp4)) { if (temp3 != null && temp4 != null) { int firstNumber = (int)temp3; int secondNumber = (int)temp4; output = new NeighbourBet((IPocketNumber)firstNumber, (IPocketNumber)secondNumber) { Id = dto.Id, Stake = dto.Stake, }; } } else if (info.TryGetValue("Number", out object temp5)) { if (temp5 != null) { int number = (int)temp; output = new SingleNumberBet((IPocketNumber)number) { Id = dto.Id, Stake = dto.Stake, }; } } else if (info.TryGetValue("IsEven", out object temp2)) { if (temp2 != null) { bool isEven = (bool)temp; output = new EvenUnevenBet(isEven) { Id = dto.Id, Stake = dto.Stake, }; } } return(output); }
public void Init() { bet = Substitute.For <IBet>(); fieldGenerator = Substitute.For <IFieldGenerator>(); fieldGenerator.CreateFields().Returns(new List <Field> { new Field(0, color: Field.Green) }); }
public void MakeBet(IBet bet, decimal stake) { if (bet != null) { bet.Stake = stake; bet.ID = this.Id; CurrentBet = bet; } }
public User(string name, IUserDAL userdal, IBetDAL betdal) { this.Name = name; this._userDAL = userdal; this._betDal = betdal; this.UserRole = 2; this.Permissions = new List <string>(); this.CurrentBet = MakeBetObject(betdal.GetCurrentBet(this.Id)); }
/// <summary> /// Constructs a dto object of the specified bet /// Checks which bet type it is and maps this to dto object. /// </summary> /// <param name="bet"></param> /// <returns></returns> private IBetDTO MakeBetDTO(IBet bet) { var info = bet.GetBetSpecificInfo(); IBetDTO output = null; if (bet.Type == BetType.Color) { if (info.TryGetValue("Color", out object temp)) { int color = (int)temp; output = new ColorBet((IPocketColor)color) { Id = bet.Id, Stake = bet.Stake, }; } } else if (bet.Type == BetType.EvenUneven) { if (info.TryGetValue("IsEven", out object temp)) { bool isEven = (bool)temp; output = new EvenUnevenBet(isEven) { Id = bet.Id, Stake = bet.Stake, }; } } else if (bet.Type == BetType.Neighbour) { if (info.TryGetValue("FirstNumber", out object temp) && info.TryGetValue("SecondNumber", out object temp2)) { int firstNumber = (int)temp; int secondNumber = (int)temp2; output = new NeighbourBet((IPocketNumber)firstNumber, (IPocketNumber)secondNumber) { Id = bet.Id, Stake = bet.Stake, }; } } else if (bet.Type == BetType.Single) { if (info.TryGetValue("Number", out object temp)) { int number = (int)temp; output = new SingleNumberBet((IPocketNumber)number) { Id = bet.Id, Stake = bet.Stake, }; } } return(output); }
private static void IfColorBetUpdateBalance(IPocket pocket, IPlayer p, IBet bet) { if (bet is ColorBet cBet) { if (cBet.Color == pocket.Color) { p.UpdateBalance(cBet.GetReturnStake()); } } }
private static void IfEvenBetUpdateBalance(IPocket pocket, IPlayer p, IBet bet) { if (bet is EvenUnevenBet eBet) { if (eBet.IsEven == pocket.Even) { p.UpdateBalance(eBet.GetReturnStake()); } } }
private static void IfSingleUpdateBalance(IPocket pocket, IPlayer p, IBet bet) { if (bet is SingleNumberBet sBet) { if (sBet.Number == pocket.Number) { p.UpdateBalance(sBet.GetReturnStake()); } } }
private static void ifNeighbourUpdateBalance(IPocket pocket, IPlayer p, IBet bet) { if (bet is NeighbourBet nBet) { if (nBet.FirstNumber == pocket.Number | nBet.SecondNumber == pocket.Number) { p.UpdateBalance(nBet.GetReturnStake()); } } }
public Task InsertBetAsync(IBet bet) { _logger.Debug("Create Bet - BetId:{BetId}", bet?.BetId); if (bet == null || !(bet is Bet rec)) { throw new ArgumentNullException(nameof(bet)); } return(Bets.InsertOneAsync(rec)); }
public static int CalculateProfit(IResult result, IBet bet) { if (bet == null || result == null) { return(0); } var success = bet.SelectionId == result.WinnerId; return((bet.Amount > 0) ? bet.Amount * ((success ? bet.Price : 0) - 100) : 0); }
public static IBet GenerateBet(int playerChoice, int choice, IBet playerBet) { if (playerChoice == 1) { playerBet = new BetNumbers(choice); return(playerBet); } else if (playerChoice == 2) { playerBet = new BetRedBlack(choice); return(playerBet); } else if (playerChoice == 3) { playerBet = new BetEvensOdds(choice); return(playerBet); } else if (playerChoice == 4) { playerBet = new BetHighLow(choice); return(playerBet); } else if (playerChoice == 5) { playerBet = new BetStreets(choice); return(playerBet); } else if (playerChoice == 6) { playerBet = new BetSplit(choice); return(playerBet); } else if (playerChoice == 7) { playerBet = new BetDozens(choice); return(playerBet); } else if (playerChoice == 8) { playerBet = new BetDoubleRows(choice); return(playerBet); } else if (playerChoice == 9) { playerBet = new BetCorner(choice); return(playerBet); } else if (playerChoice == 10) { playerBet = new BetColumns(choice); return(playerBet); } return(playerBet); }
public void PlaceBet(IBet bet) { if (_roundIsOpen) { _bets.Add(bet); } else { throw new RouletteGameException("Bet placed while round closed"); } }
/// <summary> /// Logic for placing single bet. /// </summary> /// <param name="bet">Bet that is going to be placed.</param> /// <param name="handler">Delegate that points to a method where saving it to dabatase logic is.</param> public void PlaceBet(IBet bet, SaveBetHandler handler) { // Place the bet Console.WriteLine("Placing single bet logic method invoked..."); System.Threading.Thread.Sleep(2000); // Eventual log Console.WriteLine($"{bet} is placed!"); // Save to database handler.Invoke(bet); }
public void RemoveBet(IBet bet) { if (bet == null) { throw new ArgumentNullException(string.Format(EngineConstants.ObjectCannotBeNullErrorMessage, "Bet")); } if (this.Bets.Contains(bet)) { this.Bets.Remove(bet); } }
/// <summary> /// Gets the bet selection refs /// </summary> /// <param name="bet">The bet</param> /// <param name="allSelections">All selections</param> /// <param name="hasBanker">There is a banker in any of the selection</param> /// <returns>IEnumerable<ISelectionRef></returns> private static IEnumerable <ISelectionRef> GetBetSelectionRefs(IBet bet, IReadOnlyList <Anonymous2> allSelections, bool hasBanker) { if (bet.Selections.Count() != allSelections.Count || bet.Selections.Any(s => s.IsBanker) || hasBanker) { var refs = new List <ISelectionRef>(); foreach (var betSelection in bet.Selections) { refs.Add(new SelectionRef(FindSelectionIndex(allSelections, betSelection), betSelection.IsBanker)); } return(refs); } return(new List <ISelectionRef>()); }
// Might need testing private void UpdateUserBalance() { IPocket pocket = Rounds[Rounds.Count - 1].Pocket; foreach (IPlayer p in Players) { IBet bet = p.CurrentBet; IfColorBetUpdateBalance(pocket, p, bet); IfEvenBetUpdateBalance(pocket, p, bet); ifNeighbourUpdateBalance(pocket, p, bet); IfSingleUpdateBalance(pocket, p, bet); } }
public void AddBet(IBet bet) { if (bet == null) { throw new ArgumentNullException(string.Format(EngineConstants.ObjectCannotBeNullErrorMessage, "Bet")); } if (this.Bets.Contains(bet)) { throw new ArgumentException(EngineConstants.SameBetsForAMatchErrorMessage); } this.bets.Add(bet); }
public void PlaceBet(IRaceLineup race, IBet bet) { if (bet.WagerAmount <= 0 || bet.WagerAmount > race.Player.Money) { throw new ArgumentOutOfRangeException("Wager must be a positive value less than the player's current money."); } if (!race.Snails.Contains(bet.PickToWin)) { throw new ArgumentException("Must bet on a snail that is participating in the race."); } race.Player.Money -= bet.WagerAmount; this.Bet = bet; }
public bool MakeBet(IBet bet) { if (bet != null && Id != 0) { bet.Id = this.Id; CurrentBet = bet; if (_betDal.Save(MakeBetDTO(bet))) { return(true); } } return(false); }
public void PlaceBet(IBet bet) { if (_roundIsOpen) _bets.Add(bet); else throw new RouletteGameException("Bet placed while round closed"); }
// public decimal Chips { get; set; } public Player(decimal chips = 0) { Hand = new Hand(); Bettor = new BlackjackBettor(chips); }
public void TakePot(IBet bettor) { var bettors = new List<IBet>(); bettors.Add(bettor); TakePot(bettors); }