public async Task CreateGameRound()
        {
            var languageId = await Fixture.CreateDefaultLanguage();

            var userId = await Fixture.CreateDefaultUser();

            var gameId = await Fixture.CreateDefaultGame(languageId, userId);

            var playerId = await Fixture.CreateDefaultPlayer(userId, gameId);

            var questionCardId = await CreateQuestionCard(languageId);

            var repository  = Fixture.GetService <IGameRoundsRepository>();
            var createRound = new CreateGameRoundModel
            {
                RoundCode      = "123",
                GameId         = gameId,
                OwnerPlayerId  = playerId,
                QuestionCardId = questionCardId,
                RoundNumber    = 1
            };

            var gameRoundId = await repository.CreateGameRound(createRound);

            var gameRound = await repository.GetCurrentGameRound(gameId);

            Assert.NotNull(gameRound);
            Assert.Equal(playerId, gameRound.OwnerPlayerId);
            Assert.Equal(gameId, gameRound.GameId);
            Assert.Equal("123", gameRound.Code);
            Assert.Equal(questionCardId, gameRound.QuestionCardId);
            Assert.Equal(1, gameRound.Number);
            Assert.Equal(GameRoundStatusEnum.Pending, gameRound.Status);
            TestHelper.AssertNumberOfFields <CreateGameRoundModel>(5);
        }
Beispiel #2
0
        private async Task <GameRoundModel> CreateGameRound(int gameId, int playerId, int questionCardId, int roundNumber = 1)
        {
            var repository  = Fixture.GetService <IGameRoundsRepository>();
            var createRound = new CreateGameRoundModel
            {
                GameId         = gameId,
                OwnerPlayerId  = playerId,
                QuestionCardId = questionCardId,
                RoundNumber    = roundNumber
            };

            return(await repository.CreateGameRound(createRound));
        }
        public async Task <GameRoundModel> CreateGameRound(CreateGameRoundModel model)
        {
            var newRound = new GameRound
            {
                GameId         = model.GameId,
                Code           = model.RoundCode,
                Number         = model.RoundNumber,
                QuestionCardId = model.QuestionCardId,
                OwnerPlayerId  = model.OwnerPlayerId,
                CreateDate     = DateTime.UtcNow,
                Status         = (byte)GameRoundStatusEnum.Pending,
                IsActive       = true
            };

            context.GameRounds.Add(newRound);
            await context.SaveChangesAsync();

            return(MapToModel(newRound));
        }