public AnswersViewModel GetAnswers(string examId, string UserId) { UserParticipateInExam participant = ctx.UsersParticipateInExams.Where(o => o.ExamFK == examId && o.ParticipantFK == UserId).FirstOrDefault(); if (participant == null) { return(null); } List <Answer> anss = ctx.Answers.Where(o => o.ExamParticipant == participant).ToList(); List <AnswerViewModel> RetAnswers = new List <AnswerViewModel>(); foreach (Answer ans in anss) { RetAnswers.Add( new AnswerViewModel { AnswerText = ans.AnswerText, //ExamId=ans.ExamId, QuestionId = ans.QuestionId }); } AnswersViewModel AnsVM = new AnswersViewModel(); AnsVM.UserName = ctx.AppUsers.Where(o => o.Id == UserId).FirstOrDefault().UserName; AnsVM.ExamName = ctx.Exams.Where(o => o.ExamId == examId).FirstOrDefault().ExamName; AnsVM.Answers = RetAnswers; return(AnsVM); }
public ActionResult Answers() { //treba zoznam užívateľov a zoznam ich odpovedí + názvy súťaží + názov otázky var answersViewModel = new AnswersViewModel(); var userAnswers = _context.ContestQuestionUsers .Include(cqu => cqu.ContestQuestion) .Include(cqu => cqu.ApplicationUser) .Include(cqu => cqu.ContestQuestion.Contest) .Include(cqu => cqu.ContestQuestion.Question) .Take(answersViewModel.PaginationViewModel.PageLength) .ToList(); userAnswers.Reverse(); var contests = _context.Contests.Select(c => c.Name).ToList(); var users = _context.ApplicationUsers.Select(u => u.Email).ToList(); answersViewModel.PaginationViewModel.Entities = userAnswers; answersViewModel.PaginationViewModel.PageCount = (int)Math.Ceiling((double)_context.ContestQuestionUsers.Count() / answersViewModel.PaginationViewModel.PageLength); answersViewModel.Contests = contests; answersViewModel.Users = users; return(View(answersViewModel)); }
public AnswersViewModel GetAnswerByAnswerID(int AnswerID) { Answer a = ar.GetAnswersByAnswerID(AnswerID).FirstOrDefault(); AnswersViewModel avm = null; if (a != null) { var config = new MapperConfiguration(cfg => { cfg.CreateMap <Answer, AnswersViewModel>(); cfg.IgnoreUnMapped(); }); IMapper mapper = config.CreateMapper(); avm = mapper.Map <Answer, AnswersViewModel>(a); } return(avm); }
/// <summary> /// Gets the view model for an answer. /// </summary> /// <param name="answer">The answer.</param> /// <returns></returns> /// <exception cref="CustomException"></exception> public AnswersViewModel GetViewModel(Answers answer) { try { AnswersViewModel avm = new AnswersViewModel(); avm.AnswerId = answer.AnswerId; avm.AnswerType = answer.AnswerType; avm.AnswerValue = answer.AnswerValue; return(avm); } catch (Exception ex) { throw new CustomException(ex.Message); } }
public IActionResult GetParticipantAnswers(string ExamId, string ParticipantId) { AnswersViewModel Answers = examRepository.GetAnswers(ExamId, ParticipantId); //check if the user actually takes the exam if (Answers == null) { return(NotFound()); } else { return(Ok(Answers)); } }
public ActionResult Index() { AnswersViewModel model = new AnswersViewModel(); model.Answers = new List <Answer>(); IEnumerable <Question> questions = _questionRepository.GetRandomQuestions(); foreach (Question question in questions) { model.Answers.Add(new Answer() { QuestionText = question.QuestionText }); } return(View(model)); }
public async Task <IActionResult> SaveAnswers([FromBody] AnswersViewModel respondentData) { Guid respondentId = await _respondentService.AddAsync(); await _surveySectionRespondentService.AddAsync(respondentData.SurveyId, respondentId); List <BaseAnswerModel> typedAnswerList = new List <BaseAnswerModel>(); typedAnswerList = _answerService.GetTypedAnswerList(respondentData.AnswerList); if (typedAnswerList.Any()) { foreach (var item in typedAnswerList) { var question = _questionService.GetQuestionById(item.Id); item.OptionGroupId = question.OptionGroupId.Value; _answerService.SaveAnswerByType(item, respondentId); } } PortalController.respondentId = respondentId.ToString(); return(Ok()); }
public async Task <IActionResult> SubmitAllAnswers(AnswersViewModel answers, string ExamId) { if (!ModelState.IsValid) { return(BadRequest()); } //TODO: check the clock if (!takeExamRepository.FillAllAnswers(answers, ExamId, User.FindFirstValue(ClaimTypes.NameIdentifier))) { return(BadRequest()); } if (!await takeExamRepository.SaveChangesAsync()) { return(BadRequest()); } return(Ok()); }
/// <summary> /// Get answers for the one questions /// </summary> /// <param name="id">Question ID</param> /// <param name="sortby">Sort parameter</param> /// <returns></returns> public ActionResult GetAnswersForAQuestion(int id, string sortby) { AnswersViewModel model = new AnswersViewModel(); //Get the answers which belong to this question model.Answers = AnswerManager.GetAllAnswerToOneQuestion(id); //Get the votes of the answers Dictionary <Answer, int> ansvotes = new Dictionary <Answer, int>(); Dictionary <Answer, UserProfile> answeruser = new Dictionary <Answer, UserProfile>(); foreach (var item in model.Answers) { int vote = AnswerManager.GetVote(item.Id); UserProfile userprof = UserManager.GetUserById(item.UserId); answeruser.Add(item, userprof); ansvotes.Add(item, vote); } //Create the viewmodel model.AnswerVotes = ansvotes; model.AnswerUser = answeruser; //Order the answers by the given method if (sortby == "time") { model.Answers = model.Answers.OrderBy(d => d.Date).ToList(); } else if (sortby == "reversedtime") { model.Answers = model.Answers.OrderByDescending(d => d.Date).ToList(); } else { model.Answers = model.Answers.OrderByDescending(d => model.AnswerVotes[d]).ToList(); } return(PartialView("_ShowAnswers", model)); }
public ActionResult GetPartialViewData(string userEmail, string contestName, string searchString, int pageLength, int pageNumber) { IQueryable <ContestQuestionUser> query = _context.ContestQuestionUsers .Include(cqu => cqu.ContestQuestion) .Include(cqu => cqu.ApplicationUser) .Include(cqu => cqu.ContestQuestion.Contest) .Include(cqu => cqu.ContestQuestion.Question); if (!string.IsNullOrEmpty(searchString)) { query = query.Where(q => q.ApplicationUser.Email.Contains(searchString)); } if (!string.IsNullOrEmpty(userEmail)) { query = query.Where(q => q.ApplicationUser.Email.Contains(userEmail)); } if (!string.IsNullOrEmpty(contestName)) { query = query.Where(q => q.ContestQuestion.Contest.Name.Contains(contestName)); } var answersViewModel = new AnswersViewModel(); answersViewModel.PaginationViewModel = GetViewModelData(searchString, pageLength, pageNumber, query); var contests = _context.Contests.Select(c => c.Name).ToList(); var users = _context.ApplicationUsers.Select(u => u.Email).ToList(); answersViewModel.Contests = contests; answersViewModel.Users = users; answersViewModel.SelectedUser = userEmail; answersViewModel.SelectedContest = contestName; return(PartialView("_AnswersPartial", answersViewModel)); }
public IActionResult Post([FromBody] AnswersViewModel model) { try { if (ModelState.IsValid) { var newAnswer = _map.Map <AnswersViewModel, SurveryAnswer>(model); _repo.AddEntity(newAnswer); if (_repo.SaveAll()) { return(Created($"/api/survey/{newAnswer.Id}", _map.Map <SurveryAnswer, AnswersViewModel>(newAnswer))); } } else { return(BadRequest(ModelState)); } } catch (Exception ex) { _log.LogError($"Failed to save a new answer: {ex}"); } return(BadRequest("Failed to save new answer")); }
public bool FillAllAnswers(AnswersViewModel answers, string ExamId, string UserId) { UserParticipateInExam part = ctx.UsersParticipateInExams.Where(o => o.ExamFK == ExamId && o.ParticipantFK == UserId).FirstOrDefault(); if (part == null) { return(false); } List <Answer> anss = ctx.Answers.Where(o => o.ExamId == ExamId && o.ExamParticipant == part) .ToList(); foreach (var ans in answers.Answers) { anss.Where(o => o.QuestionId == ans.QuestionId) .FirstOrDefault().AnswerText = ans.AnswerText; } return(true); }
public ActionResult Index(AnswersViewModel model) { //the model will be properly bound here return(View(model)); }