public IActionResult Create(int QuestionId) { var viewModel = new AnswerCreateViewModel(); viewModel.Question = _context.Question.Find(QuestionId); viewModel.Answer = new Answer() { QuestionId = QuestionId }; return(View(viewModel)); }
public async Task <ActionResult> Create(AnswerCreateViewModel model) { if (!ModelState.IsValid) { return(Json(ModelState.ToDictionary())); } await _agentAnswerService.Create(model.Answer, model.QuestionId, User.Identity.GetUserId()); var questionWithCreatedAnswer = await _agentQuestionServices.Get(model.QuestionId, User.Identity.GetUserId()); return(Json(questionWithCreatedAnswer)); }
public async Task <IActionResult> CreateAnswerSubmit(Guid id, IFormCollection collection, AnswerCreateViewModel answer, bool createSingleAnswer) { try { if (!ModelState.IsValid) { return(BadRequest()); } string uniqueFileName = null; if (answer.Foto != null) { string uploadsFolder = Path.Combine(hostingEnvironment.WebRootPath, "images"); uniqueFileName = Guid.NewGuid().ToString() + "_" + answer.Foto.FileName; string filePath = Path.Combine(uploadsFolder, uniqueFileName); answer.Foto.CopyTo(new FileStream(filePath, FileMode.Create)); } Answer newAnswer = new Answer { Id = Guid.NewGuid(), Description = answer.Description, FotoURL = uniqueFileName }; if (answer.Correct.ToString() == "True") { newAnswer.Correct = Answer.IsCorrect.True; } else { newAnswer.Correct = Answer.IsCorrect.False; } newAnswer.QuestionId = id; Question question = await quizRepo.GetQuestionForIdAsync(id); if (question == null || id == Guid.Empty) { return(RedirectToAction(nameof(Quizzes), new { exc = "Wrong QuestionId" })); } newAnswer.Question = question; var created = await quizRepo.AddAnswer(newAnswer); if (created == null) { return(RedirectToAction(nameof(Quizzes), new { exc = "Answer failed to create" })); } if (createSingleAnswer) { return(RedirectToAction(nameof(QuestionAnswers), new { id = question.Id, QuizId = question.QuizId, QuestionName = question.Description })); } IEnumerable <Answer> answers = await quizRepo.GetAllAnswersByQuestionId(id); var answerCount = answers.Count(); if (answerCount == 10) { return(RedirectToAction(nameof(QuizQuestions), new { id = question.QuizId })); } else { return(RedirectToAction(nameof(CreateAnswer), new { id = id, QuizId = question.QuizId })); } } catch (Exception ex) { Console.WriteLine("Create is giving an error: " + ex.Message); return(View()); } }
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)); }