public IHttpActionResult PutUserAnswersViewModel(int id, UserAnswersViewModel userAnswersViewModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != userAnswersViewModel.Id) { return(BadRequest()); } UserAnswers UserAnswers = new UserAnswers(); Mapper.CreateMap <UserAnswersViewModel, UserAnswers>(); UserAnswers = Mapper.Map <UserAnswersViewModel, UserAnswers>(userAnswersViewModel); db.Entry(UserAnswers).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!UserAnswersExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public IActionResult UserAnswers(UserAnswersViewModel model) { TempData["Error"] = TempData["Info"] = null; if (!ModelState.IsValid) { model.AllSectors = UserAnswersMapper.MapSectorsToFormattedSelectList(_sectorsBL.GetAllSectors()); return(View(model)); } try { var entityModel = UserAnswersMapper.MapToEntity(model); if (HttpContext.Session.Keys.Contains(SessionUserId) && Guid.TryParse(HttpContext.Session.GetString(SessionUserId), out Guid userId)) { userId = _userAnswersBL.UpdateUserAnswer(userId, entityModel); } else { userId = _userAnswersBL.AddUserAnswer(entityModel); } HttpContext.Session.SetString(SessionUserId, userId.ToString()); TempData["Info"] = Resources.Messages.DataSaved; } catch (Exception e) { TempData["Error"] = e.Message; } return(RedirectToAction(nameof(UserAnswers))); }
public static UserAnswer MapToEntity(UserAnswersViewModel model) { return(new UserAnswer { Name = model.Name, UserSectorCodes = model.UserSectors, AgreedToTerms = model.AgreedToTerms }); }
// GET: UserAnswers public async Task <IActionResult> Index(string currentFilter, string sortOrder, string searchString, int?pageNumber) { var UserAnswersVM = new List <UserAnswersViewModel>(); ViewData["CurrentSort"] = sortOrder; ViewData["AuthorSort"] = String.IsNullOrEmpty(sortOrder) ? "author" : ""; ViewData["EmailSort"] = sortOrder == "email" ? "email_desc" : "email"; ViewData["TimeSort"] = sortOrder == "time" ? "time_desc" : "time"; ViewData["DescSort"] = sortOrder == "desc" ? "desc_desc" : "desc"; ViewData["AnswerSort"] = sortOrder == "answer" ? "answer_desc" : "answer"; if (searchString != null) { pageNumber = 1; } else { searchString = currentFilter; } ViewData["CurrentFilter"] = searchString; List <UserAnswer> users = new List <UserAnswer>(); await foreach (var answer in _userAnswers.GetUserAnswers()) { users.Add(answer); } if (!String.IsNullOrEmpty(searchString)) { users = users.Where(u => u.Quote.Author.Contains(searchString) || u.User.Email.Contains(searchString)).ToList(); } users = Sorting(sortOrder, users); foreach (var UserAnswer in users) { UserAnswersViewModel user = new UserAnswersViewModel { Id = UserAnswer.Id, Answer = UserAnswer.Answer.ToString(), Description = UserAnswer.Quote.Description, Author = UserAnswer.Quote.Author, Email = UserAnswer.User.Email, AnswerTime = UserAnswer.AnswerTime }; UserAnswersVM.Add(user); } int pageSize = 10; return(View(PaginatedList <UserAnswersViewModel> .Create(UserAnswersVM, pageNumber ?? 1, pageSize))); }
public IActionResult SubmitTest([FromBody] UserAnswersViewModel answersViewModel) { if (ModelState.IsValid) { var answers = this.mappingProvider.MapTo <AnswersFromUserDTO>(answersViewModel); this.userTestService.EvaluateTest(answers); } return(Ok()); }
public static UserAnswersViewModel MapToViewModel(UserAnswer userAnswers, List <Sector> sectors) { var model = new UserAnswersViewModel() { Name = userAnswers?.Name, UserSectors = userAnswers?.UserSectors.Select(s => s.Sector.Code).ToArray(), AgreedToTerms = userAnswers?.AgreedToTerms ?? false, AllSectors = sectors }; return(model); }
public UserAnswersViewModel GetUserAnswers(int id) { UserAnswersViewModel UserAnswersViewModel = new UserAnswersViewModel(); NGOdata.UserAnswers GetUserAnswers; GetUserAnswers = db.UserAnswers.Where(x => x.Id == id).FirstOrDefault(); Mapper.CreateMap <UserAnswers, UserAnswersViewModel>(); UserAnswersViewModel = Mapper.Map <UserAnswers, UserAnswersViewModel>(GetUserAnswers); UserAnswersViewModel.UserName = GetUserAnswers.Users.UserName; UserAnswersViewModel.QuestionName = GetUserAnswers.JobForm.QuestionHeader; return(UserAnswersViewModel); }
// GET: api/UserAnswers public List <UserAnswersViewModel> GetUserAnswers() { var UserAnswersList = db.UserAnswers.ToList(); List <UserAnswersViewModel> UserAnswersViewModelList = new List <UserAnswersViewModel>(); foreach (var item in UserAnswersList) { UserAnswersViewModel UserAnswersViewModel = new UserAnswersViewModel(); Mapper.CreateMap <UserAnswers, UserAnswersViewModel>(); UserAnswersViewModel = Mapper.Map <UserAnswers, UserAnswersViewModel>(item); UserAnswersViewModel.UserName = item.Users.UserName; UserAnswersViewModel.QuestionName = item.JobForm.QuestionHeader; UserAnswersViewModelList.Add(UserAnswersViewModel); } return(UserAnswersViewModelList); }
public IActionResult Results(int id, int?assignmentId, int?categoryId) { //an admin can only do "CUD" functionalities if he/she is the creator of the course if (!IsOwner(id)) { return(RedirectToRoute(new { controller = "Account", action = "AccessDenied" })); } //used by the results view ViewBag.isMCResult = false; ViewBag.isCodeSnipResult = false; ViewBag.isCodeSnipNoAnswerResult = false; List <UserResultsViewModel> userResults = new List <UserResultsViewModel>(); int correctCount = 0; int incorrectCount = 0; //used by MC UserAnswersViewModel userAnswers = new UserAnswersViewModel(); //grab all the submissions from the specific category table //grab from MCSubmissions table if (categoryId == 1) { ViewBag.isMCResult = true; //get current question using primary key of table var assignment = _context.MultipleChoices.Where(mc => mc.MultipleChoiceId == assignmentId).First(); //for chart ViewBag.Question = assignment.Description; ViewBag.ChoiceA = assignment.A; ViewBag.ChoiceB = assignment.B; ViewBag.ChoiceC = assignment.C; ViewBag.ChoiceD = assignment.D; //get all submissions from table IEnumerable <MultipleChoiceSubmission> mcSubmissions = _context.MultipleChoiceSubmissions.Where(m => m.AssignmentId == assignmentId); foreach (MultipleChoiceSubmission mc in mcSubmissions) { UserResultsViewModel currentResult = new UserResultsViewModel(); //get current user to get Fname and Lname ApplicationUser user = getUserByEmail(mc.UserEmail); currentResult.FName = user.FirstName; currentResult.LName = user.LastName; currentResult.Answer = mc.Answer; //get counts of all results switch (currentResult.Answer) { case "A": userAnswers.ACount++; break; case "B": userAnswers.BCount++; break; case "C": userAnswers.CCount++; break; case "D": userAnswers.DCount++; break; default: break; } currentResult.IsCorrect = mc.IsCorrect; if (currentResult.IsCorrect == true) { correctCount++; } else { incorrectCount++; } userResults.Add(currentResult); } } //for the code snippet results, we want to show who it belongs to, their code character count, and to check if it is correct else if (categoryId == 2) { ViewBag.isCodeSnipResult = true; //get all submissions from the CodeSnipetSub table for the specific assignment IEnumerable <CodeSnippetSubmission> submissions = _context.CodeSnippetSubmissions.Where(cs => cs.AssignmentId == assignmentId); foreach (CodeSnippetSubmission sub in submissions) { UserResultsViewModel currentResult = new UserResultsViewModel(); //get current user to get Fname and Lname ApplicationUser user = getUserByEmail(sub.UserEmail); currentResult.FName = user.FirstName; currentResult.LName = user.LastName; currentResult.UserCodeLength = sub.UserCode.Length; currentResult.UserCode = sub.UserCode; currentResult.IsCorrect = sub.IsCorrect; if (currentResult.IsCorrect == true) { correctCount++; } else { incorrectCount++; } userResults.Add(currentResult); } } else if (categoryId == 3) { ViewBag.isCodeSnipNoAnswerResult = true; //get all submissions from the CodeSnipetSub table for the specific assignment IEnumerable <CodeSnippetNoAnswerSubmission> submissions = _context.CodeSnippetNoAnswerSubmissions.Where(cs => cs.AssignmentId == assignmentId); foreach (CodeSnippetNoAnswerSubmission sub in submissions) { UserResultsViewModel currentResult = new UserResultsViewModel(); //get current user to get Fname and Lname ApplicationUser user = getUserByEmail(sub.UserEmail); currentResult.FName = user.FirstName; currentResult.LName = user.LastName; currentResult.Answer = sub.UserAnswer; //get assignment var assignment = _context.CodeSnippetNoAnswers.Where(cs => cs.CodeSnippetNoAnswerId == assignmentId).First(); currentResult.IsCorrect = (assignment.Answer == sub.UserAnswer); if (currentResult.IsCorrect == true) { correctCount++; } else { incorrectCount++; } userResults.Add(currentResult); } } return(View(new ResultsViewModel { UserResults = userResults, CorrectCount = correctCount, IncorrentCount = incorrectCount, UserAnswers = userAnswers, })); }