Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
 private void LogGameResult(ref GameAccountability game)
 {
     _accountContext.AddWinningAccountsTransaction(ref game);
     _accountabilityContext.Update(game);
 }