private static void Ensure(Domain.Entities.Quiz quiz, int quizId)
 {
     if (quiz == null)
     {
         throw new EntityNotFoundException("Quiz", quizId);
     }
 }
 private void Ensure(Domain.Entities.Quiz quiz, int quizId)
 {
     if (quiz == null)
     {
         throw new EntityNotFoundException($"Quiz {quizId} was not found.");
     }
 }
예제 #3
0
        public async Task <Unit> Handle(DeleteQuizCommand request, CancellationToken cancellationToken)
        {
            Domain.Entities.Quiz quiz = await dbContext.FindQuizAsync(request.QuizId, cancellationToken);

            if (quiz == null)
            {
                throw new EntityNotFoundException($"Quiz {request.QuizId} was not found.");
            }

            dbContext.Quizes.Remove(quiz);
            await dbContext.SaveChangesAsync(cancellationToken);

            return(Unit.Value);
        }
예제 #4
0
        public async Task <Unit> Handle(DeleteQuestionCommand request, CancellationToken cancellationToken)
        {
            Domain.Entities.Quiz quiz = await _dbContext.FindQuizAsync(request.QuizId, cancellationToken);

            if (quiz == null)
            {
                throw new EntityNotFoundException("No Quiz with Question", request.QuestionId);
            }

            quiz.RemoveQuestion(request.QuestionId);
            await _dbContext.SaveChangesAsync(cancellationToken);

            return(Unit.Value);
        }
예제 #5
0
        public async Task <CreateQuizCommandResponse> Handle(CreateQuizCommand request, CancellationToken cancellationToken)
        {
            var quiz = new Domain.Entities.Quiz(request.Name, request.Description);
            await _dbContext.Quizes.AddAsync(quiz, cancellationToken);

            await _dbContext.SaveChangesAsync(cancellationToken);

            var model = new CreateQuizCommandResponse()
            {
                Id          = quiz.Id,
                Name        = quiz.Name,
                Description = quiz.Description
            };

            return(model);
        }
예제 #6
0
        public override Task <QuizCreatedResponse> CreateGame(QuizCreateRequest request, ServerCallContext context)
        {
            var quiz = new Domain.Entities.Quiz()
            {
                Title       = request.Quiz.Title,
                Description = request.Quiz.Description,
                ImageUrl    = request.Quiz.ImageUrl,
                Questions   = request.Quiz.Questions.Select(x => new Question()
                {
                    Timeout = x.Timeout,
                    Title   = x.Title,
                    Answer  = x.Answers.Select(answer => new Answer()
                    {
                        Description = answer.Description,
                        IsCorrect   = answer.IsCorrect
                    }).ToList(),
                }).ToList()
            };

            var random = new Random();

            ulong id = (ulong)random.Next(21000000, 25000000);

            var game = new QuizGame()
            {
                Quiz    = quiz,
                Id      = id,
                Started = DateTime.UtcNow,
                Users   = new List <Player>()
            };

            var result = _manager.CreateNew(game);

            var response = new QuizCreatedResponse()
            {
                Quiz = request.Quiz,
                Id   = result.Id
            };

            return(Task.FromResult(response));
        }
예제 #7
0
 public QuizTests()
 {
     target = new Domain.Entities.Quiz(id, name, description);
 }