public IActionResult <HomeTopicsViewModel> Topics(HttpResponse response, HttpSession session) { HomeTopicsViewModel viewModel = new HomeTopicsViewModel(); viewModel = this.homeService.GenerateHomeTopicsViewModel(session); return(View(viewModel)); }
public HomeTopicsViewModel GenerateHomeTopicsViewModel(HttpSession session) { HomeTopicsViewModel viewModel = new HomeTopicsViewModel(); NavbarViewModel nvm = new NavbarViewModel(); if (this.signInManagerService.IsAuthenticated(session)) { User user = this.signInManagerService.GetAuthenticatedUser(session); nvm.LoggedIn = true; nvm.Username = user.Username; nvm.UserId = user.Id; nvm.UserLevel = (int)user.Role; } else { nvm.LoggedIn = false; } viewModel.Navbar = nvm; foreach (var topic in this.Context.Topics.OrderByDescending(t => t.PublishDate).Take(10)) { TopicViewModel topicViewModel = new TopicViewModel(); UserViewModel userViewModel = new UserViewModel(); CategoryViewModel categoryViewModel = new CategoryViewModel(); List <ReplyViewModel> replyViewModelList = new List <ReplyViewModel>(); userViewModel.Username = topic.Author.Username; userViewModel.UserId = topic.Author.Id; categoryViewModel.CategoryName = topic.Category.Name; categoryViewModel.CategoryId = topic.Category.Id; foreach (var reply in topic.Replies) { ReplyViewModel replyViewModel = new ReplyViewModel(); UserViewModel replyUserViewModel = new UserViewModel(); replyUserViewModel.Username = reply.Author.Username; replyUserViewModel.UserId = reply.Author.Id; replyViewModel.User = replyUserViewModel; replyViewModelList.Add(replyViewModel); } topicViewModel.Author = userViewModel; topicViewModel.Category = categoryViewModel; topicViewModel.Replies = replyViewModelList; topicViewModel.TopicId = topic.Id; topicViewModel.TopicName = topic.Title; topicViewModel.PublishedOn = topic.PublishDate; viewModel.Topics.Add(topicViewModel); } return(viewModel); }