private PlayerGameEntity GetPlayerGameEntity(GameStatBE gsbe)
        {
            var pge = new PlayerGameEntity
            {
                assists   = (short)gsbe.Assists,
                ga        = (short)gsbe.GoalsAgainst,
                game_id   = (short)gsbe.GameID,
                goals     = (short)gsbe.Goals,
                player_id = (short)gsbe.PlayerID,
                saves     = (short)gsbe.Saves
            };

            return(pge);
        }
Example #2
0
        private GameStatBE GetEntity(PlayerGameEntity pge)
        {
            if (null == pge)
            {
                return(null);
            }

            var result = new GameStatBE
            {
                Assists      = pge.assists,
                GameID       = pge.game_id,
                Goals        = pge.goals,
                GoalsAgainst = pge.ga,
                PlayerID     = pge.player_id,
                Saves        = pge.saves,
                SeasonID     = pge.Game.game_season_id
            };

            return(result);
        }
Example #3
0
        public static void ProcessPlayerGame(Int64 playerId, PlayerGameData gameData, Guid gameId, Int64 gameSeconds)
        {
            // Create the batch operation.
            TableBatchOperation batchOperation = new TableBatchOperation();

            //TODO: Get Player Row
            PlayerEntity player = PlayerEntity.GetPlayerEntity(playerId);

            batchOperation.InsertOrReplace(player);

            //Update Player Entity with Game Data
            player.TotalDeaths        += gameData.Deaths;
            player.TotalKills         += gameData.Kills;
            player.TotalPoints        += gameData.Points;
            player.TotalWins          += gameData.Win ? 1 : 0;
            player.TotalGames         += 1;
            player.TotalSecondsPlayed += gameSeconds;

            //Create PlayerGame Row
            PlayerGameEntity playerGame = new PlayerGameEntity(playerId, gameId)
            {
                Points       = gameData.Points,
                Win          = gameData.Win,
                Kills        = gameData.Kills,
                Deaths       = gameData.Deaths,
                GameDuration = gameSeconds
            };

            batchOperation.Insert(playerGame);


            try
            {
                StorageManager.Instance.PlayersTable.ExecuteBatch(batchOperation);
            }
            catch (Exception ex)
            {
                //TODO: handle exception, check if its because an entity already existed.
                //This means we've already handled this data.
            }
        }