public async Task <IActionResult> Admin(long filterVariantId, CancellationToken cancel) { var model = new List <RegistrationModel>(); var registrations = filterVariantId != 0 ? await _registrationService.GetAsync(filterVariantId, cancel) : await _registrationService.GetAsync(cancel); foreach (var registration in registrations) { var registrationModel = new RegistrationModel() { FirstName = registration.FirstName, SecondName = registration.SecondName, Phone = registration.Phone, BirthDate = registration.BirthDate, Questions = new List <QuestionModel>() }; var variantIdList = registration.Answers .Select(d => d.VariantId) .ToList(); foreach (var variantId in variantIdList) { var dbVariant = await _variantService.GetAsync(variantId, cancel); var dbQuestion = await _questionService.GetAsync(dbVariant.QuestionId, cancel); var questionModel = registrationModel.Questions.FirstOrDefault(q => q.Id == dbQuestion.Id); if (questionModel == null) { questionModel = new QuestionModel() { Id = dbQuestion.Id, Name = dbQuestion.Name, Variants = new List <VariantModel>() }; registrationModel.Questions.Add(questionModel); } questionModel.Variants.Add(new VariantModel() { Id = dbVariant.Id, Name = dbVariant.Name }); } model.Add(registrationModel); } return(View(model)); }