private AnswerQuestionViewModel GetAnswerQuestion(int id) { var model = new AnswerQuestionViewModel(); var answer = _answerService.GetAnswerById(id); var question = _questionService.GetQuestionById(answer.QuestionId); model.Answer = _mapper.Map(answer); model.Question = _mapper.Map(question); var categories = _questionService.GetQuestionCategories(); model.Question.QuestionCategories = new Microsoft.AspNetCore.Mvc.Rendering.SelectList(categories, "Id", "Name"); if (this.User.Identity.IsAuthenticated) { var username = this.User.Identity.Name; model.Answer.CurrentUserIsTheOwner = (username == model.Answer.CreatorName); } else { model.Answer.CurrentUserIsTheOwner = false; } model.DisableInputs = !(model.Answer.CurrentUserIsTheOwner && model.Answer.IsRejected); ViewBag.focus = "Index"; return(model); }
public async Task <IActionResult> AnswerQuestion(string code) { var model = new AnswerQuestionViewModel(); model.Questions = await service.GetQuestionsBy(code); model.Answers = await service.GetAnswers(); return(View(model)); }
public async Task <IActionResult> CreateQuestionAnswer(AnswerQuestionViewModel model) { try { await service.AddQuestionAnswer(model.QuestionAnswers); return(Json(new { Success = true, Message = "Pesquisa respondida com sucesso" })); } catch (Exception ex) { return(Json(new { Success = false, ex.Message })); } }
public async Task <ActionResult> PostAnswerAsync([FromBody] AnswerQuestionViewModel answerQuestionViewModel, int id) { try { var entity = _questionService.GetQuestionById(id); if (entity == null) { return(NotFound()); } var username = answerQuestionViewModel.Username; if (string.IsNullOrWhiteSpace(username)) { return(StatusCode((int)HttpStatusCode.BadRequest, string.Format("Please enter a valid username", username))); } var user = await _userService.GetUserByUsernameUser(username); if (user == null) { return(StatusCode((int)HttpStatusCode.BadRequest, string.Format("{0} is not associated with an account", username))); } var answer = _questionService.GetAnswerByQuestionAndUserIds(id, user.ID); if (answer != null) { return(StatusCode((int)HttpStatusCode.OK, "You have answered the question already !!!")); } answer = new QuestionAnswer { QuestionId = id, UserId = user.ID, IsCorrect = answerQuestionViewModel.IsCorrect, IsDeleted = false, IsDisplayed = true, CreatedOn = DateTime.Now, UpdatedOn = DateTime.Now }; var result = await _questionService.AnswerQuestion(answer); if (result) { return(StatusCode((int)HttpStatusCode.Created, "Question answered successfully !!!")); } return(StatusCode((int)HttpStatusCode.OK, "Question not answered !!!")); } catch (Exception ex) { return(StatusCode((int)HttpStatusCode.InternalServerError, ex.Message)); } }
public JsonResult AnswerJson(AnswerQuestionViewModel model) { if (ModelState.IsValid) { var question = _context.Questions.Find(model.QuestionID); question.Answer = model.Answer; question.Status = Status.Answered; _context.SaveChanges(); return(Json(new { QuestionID = question.QuestionID, Content = question.Content, Answer = question.Answer, PublishedAt = question.PublishedAt }, JsonRequestBehavior.DenyGet)); } return(Json(new { Message = "Invalid model" })); }
public async Task <IActionResult> Complete(int id, AnswerCreateViewModel viewModel) { var user = await GetCurrentUserAsync(); var currentDateTimeTwo = DateTime.Now; var userDB = _context.Users; var surveyDB = await _context.Surveys.FirstOrDefaultAsync(m => m.SurveyId == id); var questionDB = await _context.Questions.Where(q => q.SurveyId == id).ToListAsync(); //var aqVM = viewModel.AnswerQuestionViewModels; List <SelectListItem> recipientList = new List <SelectListItem>(); recipientList.Insert(0, new SelectListItem { Text = "REQUIRED!! Select a person to Receive Feedback", Value = "" }); foreach (var focusU in userDB) { SelectListItem li = new SelectListItem { Value = focusU.Id, Text = focusU.FullName }; recipientList.Add(li); } var nullResponse = false; var vmitem = new List <AnswerQuestionViewModel>(); foreach (var aqVM in viewModel.AnswerQuestionViewModels) { var oldResponse = aqVM.Response; var oldQuestionId = aqVM.QuestionId; Question oldQuestion = await _context.Questions.FindAsync(oldQuestionId); AnswerQuestionViewModel taco = new AnswerQuestionViewModel(); { taco.QuestionId = oldQuestionId; taco.QuestionText = oldQuestion.QuestionText; taco.Response = oldResponse; }; vmitem.Add(taco); if (taco.Response == null) { nullResponse = true; } //Answer duplicate = await _context.Answers // .FirstOrDefaultAsync(a => a.FocusId == viewModel.FocusUserId // && viewModel.ResponderUserId == user.Id && taco.QuestionId == a.QuestionId); //if (duplicate != null) //{ // return RedirectToAction("LoggedIn", "Surveys"); //} } viewModel.AnswerQuestionViewModels = vmitem; viewModel.SurveyId = surveyDB.SurveyId; viewModel.SurveyName = surveyDB.SurveyName; viewModel.Description = surveyDB.Description; viewModel.Instructions = surveyDB.Instructions; viewModel.ResponderUserId = user.Id; viewModel.ResponderUserName = user.FullName; viewModel.ResponseDate = DateTime.Now; viewModel.Recipients = recipientList; ViewData["Recipients"] = new SelectList(_context.ApplicationUsers, "FocusUserId", "FullName"); if (nullResponse == true || viewModel.FocusUserId == null) { return(View(viewModel)); } for (int i = 0; i < viewModel.AnswerQuestionViewModels.Count; i++) { Answer newAnswer = new Answer { ResponderId = user.Id, FocusId = viewModel.FocusUserId, QuestionId = viewModel.AnswerQuestionViewModels[i].QuestionId, Response = viewModel.AnswerQuestionViewModels[i].Response, ResponseDate = viewModel.ResponseDate }; _context.Add(newAnswer); } await _context.SaveChangesAsync(); return(RedirectToAction("LoggedIn", "Surveys")); }
// ************************************************************************ COMPLETE public async Task <IActionResult> Complete(int?id) { var model = new AnswerCreateViewModel(); var surveyDB = await _context.Surveys.FirstOrDefaultAsync(m => m.SurveyId == id); var questionDB = await _context.Questions.Where(q => q.SurveyId == id).ToListAsync(); // Get current user to assign ResponderUserId in VM var user = await GetCurrentUserAsync(); // Get ALL Users to create a Select List to choose FocusUser var userDB = _context.Users; List <SelectListItem> recipientList = new List <SelectListItem>(); recipientList.Insert(0, new SelectListItem { Text = "REQUIRED!! Select a person to Receive Feedback", Value = "" }); foreach (var focusU in userDB) { SelectListItem li = new SelectListItem { Value = focusU.Id, Text = focusU.FullName }; recipientList.Add(li); } if (model == null) { return(NotFound()); } var currentDateTime = DateTime.Now; var vmitem = new List <AnswerQuestionViewModel>(); foreach (var question in questionDB) { AnswerQuestionViewModel taco = new AnswerQuestionViewModel(); { taco.QuestionId = question.QuestionId; taco.QuestionText = question.QuestionText; taco.Response = null; }; vmitem.Add(taco); } var viewModel = new AnswerCreateViewModel(); viewModel.SurveyId = surveyDB.SurveyId; viewModel.SurveyName = surveyDB.SurveyName; viewModel.Description = surveyDB.Description; viewModel.Instructions = surveyDB.Instructions; viewModel.AnswerQuestionViewModels = vmitem; viewModel.ResponderUserId = user.Id; viewModel.ResponderUserName = user.FullName; viewModel.Recipients = recipientList; viewModel.ResponseDate = currentDateTime; ViewData["Recipients"] = new SelectList(_context.ApplicationUsers, "FocusUserId", "FullName"); return(View(viewModel)); }