public ActionResult AskQuestion() { AskQuestionViewModel askQuestionViewModel = new AskQuestionViewModel(); UnitOfWork unitOfWork = new UnitOfWork(); unitOfWork.CategoryRepository.GetAll().ForEach(x => askQuestionViewModel.AllCategories.Add(new CategoryViewModel(x))); return(View(askQuestionViewModel)); }
public ActionResult AskQuestion(AskQuestionViewModel askQuestionViewModel) { if (string.IsNullOrWhiteSpace(askQuestionViewModel.Title)) { ModelState.AddModelError("", "Please enter a valid question title"); UnitOfWork unitOfWork = new UnitOfWork(); unitOfWork.CategoryRepository.GetAll().ForEach(x => askQuestionViewModel.AllCategories.Add(new CategoryViewModel(x))); return(View(askQuestionViewModel)); } if (string.IsNullOrWhiteSpace(askQuestionViewModel.QuestionText)) { ModelState.AddModelError("", "Please enter a valid question"); UnitOfWork unitOfWork = new UnitOfWork(); unitOfWork.CategoryRepository.GetAll().ForEach(x => askQuestionViewModel.AllCategories.Add(new CategoryViewModel(x))); return(View(askQuestionViewModel)); } if (askQuestionViewModel.ChosenCategoriesIds.Count == 0) { ModelState.AddModelError("", "Please choose at least 1 category"); UnitOfWork unitOfWork = new UnitOfWork(); unitOfWork.CategoryRepository.GetAll().ForEach(x => askQuestionViewModel.AllCategories.Add(new CategoryViewModel(x))); return(View(askQuestionViewModel)); } if (ModelState.IsValid) { UnitOfWork unitOfWork = new UnitOfWork(); Question questionInput = new Question(); questionInput.Title = askQuestionViewModel.Title; questionInput.QuestionText = askQuestionViewModel.QuestionText; questionInput.DateAsked = DateTime.Now; questionInput.UserId = LoginUserSession.Current.UserID; questionInput.IsDeleted = false; askQuestionViewModel.ChosenCategoriesIds.ForEach(c => questionInput.Categories.Add(unitOfWork.CategoryRepository.GetFirst(x => x.Id == c))); unitOfWork.QuestionRepository.Create(questionInput); bool isAdded = unitOfWork.Save() > 0; if (isAdded) { TempData["Message"] = "Question asked successfully"; } else { TempData["Message"] = "Ooops something went wrong"; } return(RedirectToAction("Index", "Home")); } return(RedirectToAction("AskQuestion", "Questions")); }
public ActionResult EditQuestion(AskQuestionViewModel editQuestionViewModel) { if (editQuestionViewModel.QuestionId == 0) { TempData["ErrorMessage"] = "Question not found"; return(RedirectToAction("Index", "Home")); } if (string.IsNullOrWhiteSpace(editQuestionViewModel.Title)) { ModelState.AddModelError("", "Please enter a valid question title"); TempData["ErrorMessage"] = "Please enter a valid question title"; } if (string.IsNullOrWhiteSpace(editQuestionViewModel.QuestionText)) { ModelState.AddModelError("", "Please enter a valid question"); TempData["ErrorMessage"] = "Please enter a valid question"; } if (editQuestionViewModel.ChosenCategoriesIds.Count == 0) { ModelState.AddModelError("", "Please choose at least 1 category"); TempData["ErrorMessage"] = "Please choose at least 1 category"; } if (ModelState.IsValid) { UnitOfWork unitOfWork = new UnitOfWork(); Question questionDb = unitOfWork.QuestionRepository.GetFirst(x => x.Id == editQuestionViewModel.QuestionId); questionDb.Title = editQuestionViewModel.Title; questionDb.QuestionText = editQuestionViewModel.QuestionText; questionDb.UserId = LoginUserSession.Current.UserID; questionDb.IsDeleted = false; questionDb.Categories.Clear(); editQuestionViewModel.ChosenCategoriesIds.ForEach(c => questionDb.Categories.Add(unitOfWork.CategoryRepository.GetFirst(x => x.Id == c))); bool isAdded = unitOfWork.Save() > 0; if (isAdded) { TempData["Message"] = "Question edited successfully"; } else { TempData["Message"] = "Ooops something went wrong"; } return(RedirectToAction("Index", "Home")); } return(RedirectToAction("EditQuestion", editQuestionViewModel.QuestionId)); }
public IActionResult Ask(AskQuestionViewModel askQuestionModel) { if (!ModelState.IsValid) { return(View()); } User user = _dataService.GetUser(this.User.Identity.Name); var q = new Question { UserId = user.Id, Text = askQuestionModel.Text, Title = askQuestionModel.Title, DateCreated = System.DateTime.Now }; _dataService.AddQuestion(q); return(RedirectToAction("Index")); }
public IActionResult AskQuestion(int questionId) { AskQuestionViewModel askQuestionViewModel = new AskQuestionViewModel(); askQuestionViewModel.classesViewModel = new List <ClassViewModel>(); using (var unitOfWork = new UnitOfWork(new CuriousDriveContext())) { List <Class> classes = unitOfWork.Classes.GetAll().ToList(); foreach (Class @class in classes) { ClassViewModel classViewModel = new ClassViewModel(); classViewModel.classId = @class.ClassId; classViewModel.className = @class.ClassName; askQuestionViewModel.classesViewModel.Add(classViewModel); } } return(View(askQuestionViewModel)); }
public ActionResult EditQuestion(int id) { UnitOfWork unitOfWork = new UnitOfWork(); User userDb = unitOfWork.UserRepository.GetFirst(x => x.Id == LoginUserSession.Current.UserID); if (!userDb.Questions.Any(x => x.Id == id && x.IsDeleted == false)) { ModelState.AddModelError("", "Question not found"); TempData["ErrorMessage"] = "Question not found"; } if (ModelState.IsValid) { Question questionDb = userDb.Questions.FirstOrDefault(x => x.Id == id); AskQuestionViewModel editQuestionViewModel = new AskQuestionViewModel(questionDb.Categories.ToList()); //already checked categories editQuestionViewModel.Title = questionDb.Title; editQuestionViewModel.QuestionText = questionDb.QuestionText; editQuestionViewModel.QuestionId = questionDb.Id; unitOfWork.CategoryRepository.GetAll().Where(x => !editQuestionViewModel.CheckedCategories.Any(c => c.Id == x.Id)).ToList().ForEach(x => editQuestionViewModel.AllCategories.Add(new CategoryViewModel(x))); return(View(editQuestionViewModel)); } return(RedirectToAction("Index", "Home")); }
public IActionResult AskQuestion(IFormCollection formCollection, AskQuestionViewModel askQuestionViewModel, string submitType) { using (var unitOfWork = new UnitOfWork(new CuriousDriveContext())) { int userId = HttpContext.Session.GetInt32("UserId") ?? 0; if (submitType == "UpdateQuestion") { //new QuestionService().UpdateQuestion(aQuestion, lintUserId); return(RedirectToAction("Question", new { id = askQuestionViewModel.questionId, title = "" })); } else if (submitType == "CancelUpdateQuestion") { return(RedirectToAction("Question", new { id = askQuestionViewModel.questionId, title = "" })); } else { Question question = new Question(); question.UserId = userId; question.QuestionTitle = askQuestionViewModel.questionTitle; question.QuestionHtml = askQuestionViewModel.questionHtml; question.CreatedBy = question.ModifiedBy = userId; //tag classes string classIds = formCollection["txtClassIds"]; if (classIds.Length > 0) { question.QuestionClass = new List <QuestionClass>(); foreach (string classId in classIds.Split(',')) { QuestionClass questionClass = new QuestionClass(); questionClass.ClassId = Convert.ToInt32(classId); question.QuestionClass.Add(questionClass); } } //tag users string taggedUserIds = formCollection["txtUserTags"]; if (taggedUserIds.Length > 0) { question.Tag = new List <Tag>(); foreach (string taggedUserId in taggedUserIds.Split(',')) { Tag tag = new Tag(); tag.UserGroupTypeId = Constant.UserGroupTypeId; tag.UserGroupTypeValue = Constant.UserGroupTypeIndividual; tag.CreatedBy = tag.ModifiedBy = userId; tag.TagDetail = new List <TagDetail>(); TagDetail tagDetail = new TagDetail(); tagDetail.TaggedUserId = Convert.ToInt32(taggedUserId); tag.TagDetail.Add(tagDetail); question.Tag.Add(tag); } } unitOfWork.Questions.Add(question); unitOfWork.Complete(); return(RedirectToAction("Question", "Question", new { questionId = question.QuestionId })); } } }