Beispiel #1
0
        public Replay GetEntity(ReplayParsedDto replayParsedDto)
        {
            var replay = new Replay
            {
                IsNetworkMode      = Convert.ToBoolean(replayParsedDto.IsNetworkMode),
                Version            = replayParsedDto.Version,
                GameMode           = _gameModeRepository.GetByPublicCode(replayParsedDto.GameMode),
                GameMap            = _gameMapRepository.GetByPublicCode(replayParsedDto.Map),
                MaxPlayers         = replayParsedDto.NbMaxPlayer,
                AI                 = Convert.ToBoolean(replayParsedDto.NbAI),
                GameType           = _gameTypeRepository.GetByPublicCode(replayParsedDto.GameType),
                Private            = Convert.ToBoolean(replayParsedDto.Private),
                InitMoney          = replayParsedDto.InitMoney,
                ScoreLimit         = replayParsedDto.ScoreLimit,
                ServerName         = replayParsedDto.ServerName,
                VictoryCondition   = _victoryConditionRepository.GetByPublicCode(replayParsedDto.VictoryCond),
                NationConstraint   = replayParsedDto.NationConstraint ?? "0",
                ThematicConstraint = replayParsedDto.ThematicConstraint ?? "0",
                DateConstraint     = replayParsedDto.DateConstraint ?? "0",
                IncomeRate         = int.Parse(replayParsedDto.IncomeRate),
                AllowObservers     = Convert.ToBoolean(replayParsedDto.AllowNbObs),
                Seed               = replayParsedDto.Seed
            };

            if (replay.GameMode == null)
            {
                replay.GameMode = _gameModeRepository.CreateByPublicCode(replayParsedDto.GameMode);
            }

            if (replay.GameMap == null)
            {
                replay.GameMap = _gameMapRepository.CreateByPublicCode(replayParsedDto.Map);
            }

            if (replay.GameType == null)
            {
                replay.GameType = _gameTypeRepository.CreateByPublicCode(replayParsedDto.GameType);
            }

            if (replay.VictoryCondition == null)
            {
                replay.VictoryCondition = _victoryConditionRepository.CreateByPublicCode(replayParsedDto.VictoryCond);
            }

            replay.Players = new List <Player>();
            foreach (var playerDto in replayParsedDto.Players)
            {
                var player = GetPlayer(playerDto);
                player.Replay = replay;

                replay.Players.Add(player);
            }

            return(replay);
        }