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(); }
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); }