public void AddWinningAccountsTransaction(ref GameAccountability game) { var transaction = new WinningTransaction() { TimePoint = DateTime.Now }; var winner = game.Winner; var playerOneEntry = new WinningEntry() { Account = game.PlayerOne.WinningAccount, Amount = winner == game.PlayerOne ? 1 : -1 }; var playerTwoEntry = new WinningEntry() { Account = game.PlayerTwo.WinningAccount, Amount = winner == game.PlayerOne ? -1 : 1 }; transaction.Entries = new List <WinningEntry>(); transaction.Entries.Add(playerOneEntry); transaction.Entries.Add(playerTwoEntry); _winningEntries.Add(playerOneEntry); _winningEntries.Add(playerTwoEntry); _winningTransactions.Add(transaction); game.PlayerOne.WinningAccount.Entries.Add(playerOneEntry); game.PlayerTwo.WinningAccount.Entries.Add(playerTwoEntry); }
public void AddWinningAccountsTransaction(ref GameAccountability game) { var transaction = new WinningTransaction() { TimePoint = DateTime.Now }; var playerOneEntry = new WinningEntry() { Account = game.PlayerOne.WinningAccount, Amount = 1 }; var playerTwoEntry = new WinningEntry() { Account = game.PlayerTwo.WinningAccount, Amount = -1 }; transaction.Entries = new List <WinningEntry>(); transaction.Entries.Add(playerOneEntry); transaction.Entries.Add(playerTwoEntry); _context.AddRange(playerTwoEntry, playerOneEntry); _context.Add(transaction); game.PlayerOne.WinningAccount.Entries.Add(playerOneEntry); game.PlayerTwo.WinningAccount.Entries.Add(playerTwoEntry); }
public void Update(GameAccountability game) { var accountability = _accountabilities.SingleOrDefault(x => x.GameGuid == game.GameGuid); if (accountability != null) { accountability.GameType = game.GameType; accountability.Rounds = game.Rounds; } }
public GameAccountability AddGameAccountability(PlayerParty playerOne, PlayerParty playerTwo, GameAccountabilityType accountabilityType) { var accountability = new GameAccountability { PlayerOne = playerOne, PlayerTwo = playerTwo, GameType = accountabilityType, TimePoint = DateTime.Now }; _accountabilities.Add(accountability); return(accountability); }
private void GenerateGameRounds(ref GameAccountability game, PlayerParty winner, PlayerParty looser) { var rand = new Random(); game.Rounds = new List <Round>(); for (int i = 0; i < _gamingRounds; i++) { var round = new Round(); round.PlayerOneSerie = new Serie { Score = new Measurement { Quantity = new Quantity { Unit = _scoreUnit, Number = rand.Next(2, 201) }, PhenomenonType = _phenomenonType } }; round.PlayerTwoSerie = new Serie { Score = new Measurement { Quantity = new Quantity { Unit = _scoreUnit, Number = rand.Next(1, round.PlayerOneSerie.Score.Quantity.Number) }, PhenomenonType = _phenomenonType } }; game.Rounds.Add(round); _accountabilityContext.StoreGameRound(round); LogRoundScore(winner, round.PlayerOneSerie.Score); LogRoundScore(looser, round.PlayerTwoSerie.Score); } }
private void LogGameResult(ref GameAccountability game) { _accountContext.AddWinningAccountsTransaction(ref game); _accountabilityContext.Update(game); }