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); }
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); }