public IActionResult ViewQuestion(int questionId) { if (questionId <= 0) { return(RedirectToAction("Index")); } var repo = new QTRepository(_connectionString); Question question = repo.GetQuestionById(questionId); if (question == null) { return(RedirectToAction("Index")); } var vm = new ViewQuestionViewModel { Question = question, IsAuthenticated = User.Identity.IsAuthenticated }; if (vm.IsAuthenticated == true) { vm.User = repo.GetUserByEmail(User.Identity.Name); } return(View(vm)); }
public IActionResult ViewQuestion(int id) { var repo = new QuestionsRepository(_connectionString); var vm = new ViewQuestionViewModel(); vm.Question = repo.GetQuestionById(id); vm.AskedBy = repo.GetUserNameById(vm.Question.UserId); vm.CanLike = repo.CanLike(id, GetCurrentUserId().Value); return(View(vm)); }
public IActionResult ViewQuestion(int id) { var connectionString = _connectionString; var repo = new QuestionsRepository(connectionString); var question = repo.GetQuestionById(id); var vm = new ViewQuestionViewModel() { Question = question }; return(View(vm)); }
public IActionResult SelectQuestion(int id) { var connectionString = _configuration.GetConnectionString("ConStr"); var repo = new QARepository(connectionString); Question q = repo.GetQuestionById(id); User u = repo.GetByEmail(User.Identity.Name); var vm = new ViewQuestionViewModel() { Question = q }; if (u != null) { vm.IsLiked = q.Likes.Any(l => l.UserId == u.Id); } return(View(vm)); }
public IActionResult ViewQuestion(int questionId) { var questionsRepo = new QuestionsRepository(_connectionString); var userRepo = new UsersRepository(_connectionString); var vm = new ViewQuestionViewModel(); var question = questionsRepo.GetQuestionById(questionId); if (question == null) { return(Redirect("/")); } vm.Question = question; vm.UserIsLoggedIn = User.Identity.IsAuthenticated; if (vm.UserIsLoggedIn) { vm.User = userRepo.GetByEmail(User.Identity.Name); } return(View(vm)); }
public IActionResult ViewQuestion(int id) { var questionsRepo = new QuestionsRepository(_connectionString); var question = questionsRepo.Get(id); var viewModel = new ViewQuestionViewModel { Question = question }; if (User.Identity.IsAuthenticated) { var userRepo = new UserRepository(_connectionString); viewModel.CurrentUser = userRepo.GetByEmail(User.Identity.Name); } if (question == null) { return(Redirect("/")); } return(View(viewModel)); }
public ActionResult View(int id) { var q = RavenSession.Include <Question>(x => x.CreatedBy) .Include("Comments,CreatedByUserId") .Include("Answers,CreatedByUserId") .Load(id); if (q == null) { return(HttpNotFound()); } q.Stats = RavenSession.Load <Stats>(q.Id + "/stats"); q.Stats.ViewsCount++; // Since we are using Includes, this entire code block will not access the server even once var users = new Dictionary <string, User>(); users.Add(q.CreatedBy, RavenSession.Load <User>(q.CreatedBy)); foreach (var answer in q.Answers) { users.Add(answer.CreatedByUserId, RavenSession.Load <User>(answer.CreatedByUserId)); } if (q.Comments != null) { foreach (var comment in q.Comments) { users.Add(comment.CreatedByUserId, RavenSession.Load <User>(comment.CreatedByUserId)); } } var viewModel = new ViewQuestionViewModel(User); viewModel.Question = q; viewModel.Users = users; viewModel.RelatedQuestions = RavenSession.Advanced.MoreLikeThis <Question>("QuestionsIndex", q.Id); return(View(viewModel)); }
public ActionResult QuestionDetails(int id) { UnitOfWork unitOfWork = new UnitOfWork(); Question questionDb = unitOfWork.QuestionRepository.GetFirst(x => x.Id == id); if (questionDb == null) { ModelState.AddModelError("", "Question not found"); TempData["ErrorMessage"] = "Question not found"; return(RedirectToAction("Index", "Home")); } if (ModelState.IsValid) { ViewQuestionViewModel viewQuestionViewModel = new ViewQuestionViewModel(questionDb); viewQuestionViewModel.AskedBy = questionDb.User.Username; List <UserCommentViewModel> usersCommentsViewModel = GetUsersComments(id); List <Comment> commentsDb = unitOfWork.CommentRepository.GetAll(); for (int i = 0; i < usersCommentsViewModel.Count; i++) { if (usersCommentsViewModel[i].ParentCommentId == "") { usersCommentsViewModel[i].CommentTo = questionDb.User.Username; } else { usersCommentsViewModel[i].CommentTo = commentsDb.Find(x => x.Id == Int32.Parse(usersCommentsViewModel[i].ParentCommentId)).User.Username; } } UserCommentsAndQuestionViewModel userCommentsAndQuestionViewModel = new UserCommentsAndQuestionViewModel(); userCommentsAndQuestionViewModel.ViewQuestionViewModel = viewQuestionViewModel; userCommentsAndQuestionViewModel.UsersCommentsViewModel = usersCommentsViewModel; return(View(userCommentsAndQuestionViewModel)); } return(RedirectToAction("Index", "Home")); }