Пример #1
0
        static async Task Main(string[] args)
        {
            var channel = GrpcChannel.ForAddress("https://localhost:5001");
            var client  = new Quiz.QuizClient(channel);

            var request = new GetQuizByCategoryAndDifficultyAndNumberDTO {
                Category = "Mythology", Difficulty = "hard", Number = 4
            };
            var reply = await client.GetQuizzesByCategoryAndDifficultyAndNumberAsync(request);

            foreach (var item in reply.Quizzes)
            {
                List <string> options = new List <string>();

                foreach (var option in item.IncorrectAnswers)
                {
                    options.Add(option.Option);
                }

                Console.WriteLine($"\nCategory: {item.Category}\nDifficulty: {item.Difficulty}\n" +
                                  $"Question: {item.Question}\nAnswer: {item.Answer}\nIncorrect Answers: {options[0]}, {options[1]}, {options[2]}");
            }



            Console.ReadLine();
        }
Пример #2
0
        public override async Task <QuizzesDTO> GetQuizzesByCategoryAndDifficultyAndNumber(GetQuizByCategoryAndDifficultyAndNumberDTO request, ServerCallContext context)
        {
            List <Database.Models.Quiz> quizzesFromDb = await _unitOfWork.QuizRepository.GetQuizzesByCategoryAndDifficulty(request.Category, request.Difficulty);

            List <QuizDTO> quizList = new List <QuizDTO>();
            QuizzesDTO     quizzes  = new QuizzesDTO();

            for (int i = 0; i < request.Number; i++)
            {
                quizList.Add(await GetQuizAsDTO(quizzesFromDb[i]));
            }

            quizzes.Quizzes.AddRange(quizList);
            return(quizzes);
        }