public ActionResult Reply(QuestionViewModel question, int[] isTrueAnswers, string[] answers) { if (isTrueAnswers != null && isTrueAnswers.Where(x => x == 0).Count() != answers.Count()) { var listAnswers = new List <AnswerViewModel>(); listAnswers.ToAnswersModel(isTrueAnswers, answers); var fullQuestion = new FullQuestionViewModel { Id = question.Id, QuestionContent = question.QuestionContent, QuantityPoint = question.QuantityPoint, TestId = question.TestId, Answers = listAnswers }; resultService.SaveResult(fullQuestion.ToBllQuestion(), User.Identity.Name); var nextQuestion = questionService.MoveToNextQuestion(question.TestId, User.Identity.Name)?.ToMvcQuestion(); if (nextQuestion == null) { return(RedirectToAction("GetResultTesting", new { idOfTest = question.TestId })); } if (Request.IsAjaxRequest()) { return(PartialView("QuestionContentPartial", nextQuestion)); } } return(RedirectToAction("GetATestQuestion", new { idTest = question.TestId })); }
public ActionResult Create(QuestionViewModel question, int[] isTrueAnswers, string[] answers) { if (isTrueAnswers != null && isTrueAnswers.Count() != answers.Count()) { if (question.QuantityPoint <= 0) { ModelState.AddModelError("QuantityPoint", "Incorrect quantity point input"); return(View(question)); } var listAnswers = new List <AnswerViewModel>(); listAnswers.ToAnswerModel(isTrueAnswers, answers); if (questionService.GetQuestionByParams(question.TestId, question.QuestionContent) == null) { var fullQuestion = new FullQuestionViewModel { Id = question.Id, QuestionContent = question.QuestionContent, QuantityPoint = question.QuantityPoint, TestId = question.Id, Answers = listAnswers }; questionService.CreateQuestion(fullQuestion.ToBllQuestion()); return(RedirectToAction("Index", "Test", new { nameTest = testService.GetTestById(question.TestId).TestName })); } } return(View(question)); }
public static FullQuestionEntity ToBllQuestion(this FullQuestionViewModel questionModel) { return(new FullQuestionEntity { Id = questionModel.Id, QuestionContent = questionModel.QuestionContent, QuantityPoint = questionModel.QuantityPoint, TestId = questionModel.TestId, Answers = questionModel.Answers.Select(x => x.ToBllAnswer()) }); }
public ActionResult Edit(FullQuestionViewModel question, int[] isTrueAnswers, string[] answers) { if (isTrueAnswers != null && isTrueAnswers.Count() != answers.Count()) { var listAnswers = new List <AnswerViewModel>(); listAnswers.ToAnswerModel(isTrueAnswers, answers); listAnswers.ToList().ForEach(x => x.QuestionId = question.Id); question.Answers = listAnswers; if (question.QuantityPoint <= 0) { ModelState.AddModelError("QuantityPoint", "Incorrect quantity point input"); return(View(question)); } questionService.UpdateQuestion(question.ToBllQuestion()); } return(RedirectToAction("Show", "Test", new { idOfTest = question.TestId })); }
public ActionResult Thread(int page, string title, string iD) { FullQuestionViewModel mainModel = new FullQuestionViewModel(); HtmlToText convert = new HtmlToText(); int questionId = page; var SingleQuestion = _applicationDbContext.Questions .Where(q => q.QuestionId == page) .Include(a => a.AnswerToQuestions) .Include(c => c.QuestionComments) .Include(d => d.DiscussionCategory) .Include(l => l.QuestionLikes) .SingleOrDefault(); string loggedInUser = User.Identity.GetUserId(); mainModel.CurrentUser = loggedInUser; mainModel.QuestionLikes = SingleQuestion.QuestionLikes.Count(e => e.UserLike); var UserLikeStatus = SingleQuestion.QuestionLikes.SingleOrDefault(i => i.UserId == loggedInUser && i.UserLike == true); if (UserLikeStatus == null) { mainModel.hasUserLiked = false; } else { mainModel.hasUserLiked = true; } var acList = new List <AnswerCommentViewModel>(); var atqList = new List <AnswerToQuestionViewModel>(); var relQlist = new List <RelatedQuestionViewModel>(); if (SingleQuestion != null) { var User = UserManager.FindByIdAsync(SingleQuestion.UserId); var UserImage = _applicationDbContext.UserProfilePhotos.SingleOrDefault(u => u.UserId == SingleQuestion.UserId); if (UserImage == null) { mainModel.QuestionOwnerDP = "person.gif"; } else { mainModel.QuestionOwnerDP = UserImage.ImageName; } var QuestionOwner = User.Result.NameExtension; //string QuestionTime = SingleQuestion.DateAsked.ToString("H:mm"); mainModel.QuestionId = SingleQuestion.QuestionId; mainModel.QuestionOwner = QuestionOwner; mainModel.Title = SingleQuestion.Title; mainModel.QuestionText = SingleQuestion.QuestionText; mainModel.Discussion = SingleQuestion.DiscussionCategory.Name; mainModel.DateAsked = SingleQuestion.DateAsked.ToString("d,MMMM yy"); mainModel.TimeAsked = SingleQuestion.DateAsked.ToString("H:mm tt"); var answer = _applicationDbContext.AnswerToQuestions.Where(q => q.QuestionId == SingleQuestion.QuestionId) .Include(c => c.AnswerComments) .OrderBy(d => d.DateAnswered).ToList(); foreach (var atq in answer) { var AUserImage = _applicationDbContext.UserProfilePhotos.SingleOrDefault(u => u.UserId == atq.UserId); var lastAnswerDate = _applicationDbContext.AnswerToQuestions.OrderByDescending(d => d.DateAnswered).FirstOrDefault(id => id.QuestionId == atq.QuestionId); lastAnswerToDate = lastAnswerDate.DateAnswered; var atqModel = new AnswerToQuestionViewModel(); if (AUserImage == null) { atqModel.AToQuestionOwnerDP = "person.gif"; } else { atqModel.AToQuestionOwnerDP = AUserImage.ImageName; } var atqbUser = UserManager.FindByIdAsync(atq.UserId); var atqOwner = atqbUser.Result.NameExtension; atqModel.AToQuestionOwner = atqOwner; atqModel.AnswerToQuestionId = atq.AnswerToQuestionId; atqModel.AToQuestion = atq.Answer; atqModel.AToCDateCommented = atq.DateAnswered.ToString("d,MMMM yy"); atqModel.AToTimeCommented = atq.DateAnswered.ToString("H:mm tt"); foreach (AnswerComment com in atq.AnswerComments.OrderBy(d => d.DateCommented)) { var AnswerUserImage = _applicationDbContext.UserProfilePhotos.SingleOrDefault(u => u.UserId == com.UserId); var lastAnswerCommentDate = _applicationDbContext.AnswerComments.OrderByDescending(d => d.DateCommented).FirstOrDefault(id => id.AnswerToQuestionId == atq.AnswerToQuestionId); lastAnswerComment = lastAnswerCommentDate.DateCommented; var acModel = new AnswerCommentViewModel(); if (AnswerUserImage == null) { acModel.ACommentOnwerDP = "person.gif"; } else { acModel.ACommentOnwerDP = AnswerUserImage.ImageName; } acModel.AnswerToQuestionId = com.AnswerToQuestionId; acModel.AComment = com.Comment; acModel.ACDateCommented = com.DateCommented.ToString("d,MMMM yy"); acModel.ACTimeCommented = com.DateCommented.ToString("H:mm tt"); var acUser = UserManager.FindByIdAsync(com.UserId); var acOwner = acUser.Result.NameExtension; acModel.ACommentOwner = acOwner; acList.Add(acModel); } atqList.Add(atqModel); if (lastAnswerToDate > lastAnswerComment) { mainModel.LastActiveDate = lastAnswerToDate.ToString("dd,MMMM yy"); mainModel.LastActiveTime = lastAnswerToDate.ToString("H:mm tt"); } if (lastAnswerToDate < lastAnswerComment) { mainModel.LastActiveDate = lastAnswerComment.ToString("dd,MMMM yy"); mainModel.LastActiveTime = lastAnswerComment.ToString("H:mm tt"); } } //var relQuestionByTitle = from p in // where search.Any(val => p.Description.Contains(val)) // select p; //var relQuestionByTitle = _applicationDbContext.Questions.OrderByDescending(d => d.DateAsked) // .Where(i => i.Title.StartsWith(SingleQuestion.Title) || i.Title.Contains(SingleQuestion.Title)).ToList(); IQueryable <Question> questions = _applicationDbContext.Questions.OrderByDescending(d => d.DateAsked) .Take(10); if (!String.IsNullOrEmpty(SingleQuestion.Title)) { questions = questions.Where( ii => ii.Title.Contains(SingleQuestion.Tag) || ii.QuestionText.Contains(SingleQuestion.Tag)); } foreach (var q in questions) { RelatedQuestionViewModel relModel = new RelatedQuestionViewModel(); relModel.QuestionText = convert.Convert(q.QuestionText); relModel.QuestionId = q.QuestionId; relModel.QuestionTitle = q.Title; relQlist.Add(relModel); } //foreach (var rel in relQuestionByTitle) //{ // RelatedQuestionViewModel relModel = new RelatedQuestionViewModel(); // relModel.QuestionText = convert.Convert(rel.QuestionText); // var Count = relQuestionByTitle.Count; // relQlist.Add(relModel); //} } if (lastAnswerToDate.ToString() == "1/1/0001 12:00:00 AM") { mainModel.LastActiveDate = SingleQuestion.DateAsked.ToString("dd,MMMM yy"); mainModel.LastActiveTime = SingleQuestion.DateAsked.ToString("H:mm tt"); } mainModel.AnswerToQuestionViewModels = atqList; mainModel.AnswerCommentViewModels = acList; mainModel.RelatedQuestionViewModels = relQlist; string loggedInUserId = User.Identity.GetUserId(); var loggedPicture = _applicationDbContext.UserProfilePhotos.SingleOrDefault(i => i.UserId == loggedInUserId); if (loggedPicture == null) { ViewBag.loggedInUserImage = "person.gif"; } else { ViewBag.loggedInUserImage = loggedPicture.ImageName; } if (mainModel.RelatedQuestionViewModels.Count <= 1) { mainModel.Count = 1; } else { mainModel.Count = 2; } string rawUrl = this.Request.RawUrl.ToString(); ViewBag.absoluteUrl = "https://www.ripoff.com.ng/" + rawUrl; ViewBag.page = SingleQuestion.DiscussionCategoryId; ViewBag.TitlePage = SingleQuestion.DiscussionCategory.Description; ViewBag.Title = mainModel.Title; return(View(mainModel)); }