public ActionResult AskQuestion(QuestionViewModel question) { try { if (ModelState.IsValid) { question.DatePublished = DateTime.Now; var user = System.Web.HttpContext.Current.User.Identity.GetUserId(); //Map View Model -> Entity var questionEntity = new DataStore.Question(); questionEntity.DatePublished = question.DatePublished; questionEntity.QuestionText = question.QuestionText; questionEntity.UserId = user; //Add in DataBase bool isInserted = repo.InsertQuestion(questionEntity); if (isInserted) { ViewBag.InsertMessage = "Your Question has been successfully submitted, please wait for your response..."; return(RedirectToAction("ViewMyQuestions")); } else { ModelState.AddModelError("", "The Question could not be submitted... Please try again later"); } } } catch (Exception ex) { Console.WriteLine(ex.ToString()); ModelState.AddModelError("", "There is something wrong at server side, please be patient till we fix some things..."); } return(View()); }
private QuestionViewModel GetQuestionModel(DataStore.Question questionEntity) { QuestionViewModel questionModel = new QuestionViewModel(); try { questionModel.Id = questionEntity.Id; questionModel.QuestionText = questionEntity.QuestionText; questionModel.UserId = questionEntity.UserId; questionModel.DatePublished = questionEntity.DatePublished; questionModel.AnswerId = questionEntity.AnswerId; questionModel.IsPublic = questionEntity.IsPublic; if (questionEntity.Answer != null) { questionModel.Answer = GetAnswerModel(questionEntity.Answer); } if (questionEntity.AspNetUsers != null) { questionModel.UserName = questionEntity.AspNetUsers.UserName; } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } return(questionModel); }
private DataStore.Question GetQuestionEntity(QuestionViewModel questionModel) { DataStore.Question questionEntity = new DataStore.Question(); try { questionEntity.Id = questionModel.Id; questionEntity.QuestionText = questionModel.QuestionText; questionEntity.UserId = questionModel.UserId; questionEntity.DatePublished = questionModel.DatePublished; questionEntity.AnswerId = questionModel.AnswerId; questionEntity.IsPublic = questionModel.IsPublic; if (questionEntity.Answer != null) { questionEntity.Answer = GetAnswerEntity(questionModel.Answer); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } return(questionEntity); }
public ActionResult ViewAnswer(int?questionId) { QuestionViewModel question = new QuestionViewModel(); try { if (questionId == null) { ModelState.AddModelError("", "Invalid Question..."); return(RedirectToAction("AccessDenied", "Error")); } //Fetch Question against Id DataStore.Question questionEntity = repo.GetQuestionById((int)questionId); question = GetQuestionModel(questionEntity); } catch (Exception ex) { Console.WriteLine(ex.ToString()); ModelState.AddModelError("", "An Error Occured Retrieving the Answer against question, please try again later..."); } return(View(question)); }