Пример #1
0
        public ReplayParsedDto ParseFile(Stream replayFile)
        {
            var result = GetJsonPart(replayFile);

            var replayObject = JObject.Parse(result);

            var gameSection = replayObject.SelectToken("game").ToString();

            ReplayParsedDto parsedReplayParsedDto = JsonConvert.DeserializeObject <ReplayParsedDto>(gameSection);

            var properties = replayObject.Properties();

            foreach (var property in properties)
            {
                if (property.Name.Contains("player_"))
                {
                    var             playerSection         = replayObject.SelectToken(property.Name).ToString();
                    PlayerParsedDto parsedPlayerParsedDto = JsonConvert.DeserializeObject <PlayerParsedDto>(playerSection);
                    parsedPlayerParsedDto.PlayerNumber = int.Parse(property.Name.Substring(7));

                    parsedReplayParsedDto.Players.Add(parsedPlayerParsedDto);
                }
            }

            return(parsedReplayParsedDto);
        }
Пример #2
0
        private Player GetPlayer(PlayerParsedDto playerParsedDto)
        {
            var player = new Player
            {
                PlayerElo              = playerParsedDto.PlayerElo,
                PlayerRank             = playerParsedDto.PlayerRank,
                PlayerLevel            = playerParsedDto.PlayerLevel,
                PlayerName             = playerParsedDto.PlayerName,
                PlayerTeamName         = playerParsedDto.PlayerTeamName,
                PlayerAvatar           = playerParsedDto.PlayerAvatar,
                PlayerIALevel          = playerParsedDto.PlayerIALevel,
                PlayerReady            = Convert.ToBoolean(playerParsedDto.PlayerReady),
                PlayerDeckName         = playerParsedDto.PlayerDeckName,
                PlayerDeckContent      = playerParsedDto.PlayerDeckContent,
                PlayerAlliance         = playerParsedDto.PlayerAlliance,
                PlayerIsEnteredInLobby = Convert.ToBoolean(playerParsedDto.PlayerIsEnteredInLobby),
                PlayerScoreLimit       = playerParsedDto.PlayerScoreLimit,
                PlayerIncomeRate       = playerParsedDto.PlayerIncomeRate,
                PlayerNumber           = playerParsedDto.PlayerNumber
            };

            var playerUser = _playerUserRepository.GetPlayerUserByEugenUserId(playerParsedDto.PlayerEugenId);

            if (playerUser == null)
            {
                playerUser = new PlayerUser
                {
                    EugenUserId = playerParsedDto.PlayerEugenId,
                    Name        = playerParsedDto.PlayerName
                };

                _playerUserRepository.Save(playerUser);
            }

            player.PlayerUser = playerUser;

            return(player);
        }