コード例 #1
0
        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));
        }
コード例 #2
0
ファイル: HomeController.cs プロジェクト: vlad-ni/sectors
        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)));
        }
コード例 #3
0
ファイル: UserAnswersMapper.cs プロジェクト: vlad-ni/sectors
 public static UserAnswer MapToEntity(UserAnswersViewModel model)
 {
     return(new UserAnswer
     {
         Name = model.Name,
         UserSectorCodes = model.UserSectors,
         AgreedToTerms = model.AgreedToTerms
     });
 }
コード例 #4
0
        // 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)));
        }
コード例 #5
0
ファイル: TestController.cs プロジェクト: iskraL/ITest
        public IActionResult SubmitTest([FromBody] UserAnswersViewModel answersViewModel)
        {
            if (ModelState.IsValid)
            {
                var answers = this.mappingProvider.MapTo <AnswersFromUserDTO>(answersViewModel);
                this.userTestService.EvaluateTest(answers);
            }

            return(Ok());
        }
コード例 #6
0
ファイル: UserAnswersMapper.cs プロジェクト: vlad-ni/sectors
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        // 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);
        }
コード例 #9
0
        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,
            }));
        }