public ExercisesByAreaViewModel GetExercisesByTopicArea(string userId, string topicAreaDescription) { var result = new ExercisesByAreaViewModel(); using (var context = new ApplicationDbContext()) { var topicArea = context.TopicAreas.FirstOrDefault(ta => ta.Description == topicAreaDescription); var topicsForThisArea = context.TopicAreaTopics .Where(tat => tat.TopicAreaId == topicArea.TopicAreaId) .Select(tat => tat.Topic) .ToList(); result.Topics = topicsForThisArea; var exerciseResultViewModels = new List <ExerciseResultViewModel>(); foreach (var topic in result.Topics) { var newViewModel = new ExerciseResultViewModel(); newViewModel.Exercises = this.ExerciseServices.GetExerciseDTOsCards(userId, topic.TopicId, true); newViewModel.TopicImageUrl = string.Concat("/Content/images/thumbnails/", topic.Description.Replace(' ', '_'), ".png"); exerciseResultViewModels.Add(newViewModel); } result.ExerciseResultViewModels = exerciseResultViewModels; return(result); } }
public PartialViewResult Search(string topicDescription, bool showResolvedExercises = false) { var resultsViewModel = new ExerciseResultViewModel(); if (!string.IsNullOrEmpty(topicDescription)) { var topic = TopicService.GetByDescription(topicDescription); var exercises = ExerciseService.GetExercisesByTopic(topicDescription); var userId = User.Identity.GetUserId(); resultsViewModel.Exercises = ExerciseService.GetExerciseDTOsCards(userId, topic.TopicId, showResolvedExercises); resultsViewModel.TopicImageUrl = string.Concat(@"/Content/images/thumbnails/", topic.Description.Replace(' ', '_'), ".png"); } return(PartialView("_ExerciseSearchResult", resultsViewModel)); }
// GET: Topic public ActionResult Index(int topicId) { var userId = User.Identity.GetUserId(); var topic = this.TopicService.GetById(topicId); var exercises = this.ExerciseService.GetExerciseDTOsCards(userId, topicId, true); var resultsViewModel = new ExerciseResultViewModel() { Exercises = exercises, TopicImageUrl = string.Concat(@"/Content/images/thumbnails/", topic.Description.Replace(' ', '_'), ".png") }; ViewBag.TopicDescription = topic.Description; return(View(resultsViewModel)); }