public FetchTilesHandler(IStore store, IPocket pocket, ITileMakerClient client, IOptions <PocketOptions> options) : base(store) { _pocket = pocket; _tileMakerClient = client; _pocketOptions = Guard.Against.Null(options, nameof(options)).Value; }
public static TThing TakeOrThrow <TThing>(this IPocket pocket, [NotNull] string name) where TThing : class { if (!pocket.TryTake <TThing>(name, out var item)) { throw new KeyNotFoundException($"Could not find an item with the key '{name}'."); } return(item); }
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()); } } }
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 IfColorBetUpdateBalance(IPocket pocket, IPlayer p, IBet bet) { if (bet is ColorBet cBet) { if (cBet.Color == pocket.Color) { p.UpdateBalance(cBet.GetReturnStake()); } } }
private void EndRound() { HasEnded = true; Pocket = _wheel.Spin(); if (RoundEnded != null) { RoundEnded(this, new RoundEndedEventArgs("Round has ended")); // Update statement needs to be called here, after the round has ended. } }
public void Spin_ShouldReturnValidIPocket() { // Arrange // Act IPocket pocket = wheel.Spin(); Assert.True((int)pocket.Number < 37); Assert.True(pocket.Even == this.IsNumberEven((int)pocket.Number)); }
private static void IfSingleUpdateBalance(IPocket pocket, IPlayer p, IBet bet) { if (bet is SingleNumberBet sBet) { if (sBet.Number == pocket.Number) { p.UpdateBalance(sBet.GetReturnStake()); } } }
bool Unlocked(Collider2D collision) { if (isLocked) { IPocket pocket = collision.transform.GetComponent <IPocket>(); bool isOpen = pocket.UseKey(); isLocked = !isOpen; return(isOpen); } return(true); }
private void EndRound() { HasEnded = true; Pocket = _wheel.Spin(); this._roundTimer.Stop(); if (RoundEnded != null) { RoundEnded(this, new RoundEndedEventArgs("Round has ended")); } this._roundDAL.Update(this); }
public Round(int id, IRoundDAL roundDAL, IWheel wheel) { this.Id = id; this._roundDAL = roundDAL; this._wheel = wheel; _roundTimer = new Timer(1000); _roundTimer.Elapsed += RoundTimer_Elapsed; this.Pocket = ExtractPocket(_roundDAL.GetPocket(this.Id)); }
// 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 UpdateUserBalance_ShouldUpdate(IPocket betResult, IBet bet, decimal expected) { // Arrange room.AddUser(player); player.MakeBet(bet, 10); room.StartNewRound(); room.Rounds[0].Pocket = betResult; // Act room.UpdateUserBalance(); decimal result = player.Balance; // Assert Assert.Equal(expected, result); }
public static TThing TakeOrPut <TThing>( this IPocket pocket, [NotNull] string name, [NotNull] Func <TThing> thingFactory) where TThing : class { if (thingFactory == null) { throw new ArgumentNullException(nameof(thingFactory)); } if (pocket.TryTake <TThing>(name, out var thing)) { return(thing); } var madeThing = thingFactory(); pocket.Put(name, madeThing); return(madeThing); }
public void UpdateUserBalance() { IPocket pocket = Rounds[Rounds.Count - 1].Pocket; foreach (IPlayer p in Players) { IBet bet = p.CurrentBet; if (bet is ColorBet cBet) { if (cBet.Color == pocket.Color) { p.Balance += cBet.GetReturnStake(); } } if (bet is EvenUnevenBet eBet) { if (eBet.IsEven == pocket.Even) { p.Balance += eBet.GetReturnStake(); } } if (bet is NeighbourBet nBet) { if (nBet.FirstNumber == pocket.Number | nBet.SecondNumber == pocket.Number) { p.Balance += nBet.GetReturnStake(); } } if (bet is SingleNumberBet sBet) { if (sBet.PocketNumber == pocket.Number) { p.Balance += sBet.GetReturnStake(); } } } }
void AddItem(Collider2D collision) { IPocket pocket = collision.transform.GetComponent <IPocket>(); pocket.AddKey(); }
public static KeyNotFoundException MakeKeyNotFoundException(this IPocket _, string propertyName) => new KeyNotFoundException($"Could not find an item with the key '{propertyName}'.");
public static TThing TakeOrNull <TThing>(this IPocket pocket, [NotNull] string name) where TThing : class { pocket.TryTake <TThing>(name, out var item); return(item); }