Пример #1
0
        public async Task <EndSubmissionsResult> Handle(EndSubmissions request, CancellationToken cancellationToken)
        {
            using (var transaction = repositoryTransactionsFactory.CreateTransaction())
            {
                var validationResult = await requestValidator.Validate(request);

                if (!validationResult.IsSuccessful)
                {
                    return(new EndSubmissionsResult(validationResult.Error));
                }

                var updated = await gameRoundsRepository
                              .UpdateGameRoundStatus(request.GameRoundId, Common.Enums.GameRoundStatusEnum.Selection);

                if (!updated)
                {
                    return(new EndSubmissionsResult(GameErrors.CouldNotEndAnswersSubmissions));
                }

                var checkpoint = await gameCheckpointUpdater.Update(request.GameId, nameof(EndSubmissions));

                transaction.CommitTransaction();

                return(new EndSubmissionsResult());
            }
        }
Пример #2
0
        public async Task ReturnSuccessForValidData()
        {
            var baseMock      = BaseGameRequestsValidatorMock.CreateMock();
            var gameRoundRepo = GameRoundsRepositoryMock.Create(
                status: Common.Enums.GameRoundStatusEnum.InProgress).Object;
            var playerAnswersRepo        = PlayerAnswersRepositoryMock.Create().Object;
            var gameOrRoundOnwerRuleMock = GameOrRoundOwnerRuleMock.Create <EndSubmissions>();

            var validator = new EndSubmissionsValidator(baseMock.Object, gameRoundRepo, playerAnswersRepo, gameOrRoundOnwerRuleMock.Object);

            var request = new EndSubmissions
            {
                GameRoundId = 1,
                UserId      = 1,
                GameId      = 1,
            };

            var result = await validator.Validate(request);

            Assert.True(result.IsSuccessful);
            baseMock.Verify(x => x.Validate(request));
            gameOrRoundOnwerRuleMock.Verify(x => x.Validate(request));
        }