示例#1
0
        public ActionResult Create(NewQuestionViewModel qvm)
        {
            List <CategoryViewModel> categories = this.cs.GetCategories();

            ViewBag.categories = categories;
            return(View(categories));
        }
        public IActionResult AddQuestion(int id)
        {
            NewQuestionViewModel model = new NewQuestionViewModel();

            model.Survey = _surveyService.GetSurveyById(id);
            return(View(model));
        }
示例#3
0
 public Question(NewQuestionViewModel vm, Test test)
 {
     Text          = vm.QuestionText;
     CorrectAnswer = vm.CorrectAnswer;
     Points        = vm.Points;
     Test          = test;
 }
        private PartialViewResult ViewNewQuestion(NewQuestionViewModel viewModel)
        {
            var subGoalsGroup = HttpRequestStorage.DatabaseEntities.AssessmentSubGoals.ToList().ToGroupedSelectList();
            var viewData      = new NewQuestionViewData(CurrentFirmaSession, subGoalsGroup);

            return(RazorPartialView <NewQuestion, NewQuestionViewData, NewQuestionViewModel>(viewData, viewModel));
        }
示例#5
0
        public void InsertQuestion(NewQuestionViewModel newQuestionViewModel)
        {
            var      config   = new MapperConfiguration(cfg => { cfg.CreateMap <NewQuestionViewModel, Question>(); cfg.IgnoreUnmapped(); });
            IMapper  mapper   = config.CreateMapper();
            Question question = mapper.Map <NewQuestionViewModel, Question>(newQuestionViewModel);

            questionRepository.InsertQuestion(question);
        }
        public void InsertQuestion(NewQuestionViewModel qvm)
        {
            var      config = new MapperConfiguration(cfg => { cfg.CreateMap <NewQuestionViewModel, Question>(); cfg.IgnoreUnmapped(); });
            IMapper  mapper = config.CreateMapper();
            Question q      = mapper.Map <NewQuestionViewModel, Question>(qvm);

            qr.InsertQuestion(q);
        }
        private NewQuestionViewModel GetNewImageQuestionViewModelFromFormCollection(NewQuestionViewModel model, FormCollection collection)
        {
            model.Options        = new List <Option>();
            model.CorrectOptions = new List <Option>();

            if (collection.Keys.Count() > 0)
            {
                foreach (string key in collection.Keys)
                {
                    if (key == "Title")
                    {
                        model.Title = collection[key];
                    }
                    else if (key.Contains("correctOption")) //this must be Correct Option
                    {
                        if (!string.IsNullOrEmpty(collection[key]))
                        {
                            try
                            {
                                var correctOption = new Option();
                                correctOption.Image      = ImagesService.Instance.GetImage(int.Parse(collection[key]));
                                correctOption.IsCorrect  = true;
                                correctOption.ModifiedOn = DateTime.Now;

                                model.CorrectOptions.Add(correctOption);
                            }
                            catch (Exception ex)
                            {
                                //ignore this option
                            }
                        }
                    }
                    else if (key.Contains("option")) //this must be Option
                    {
                        if (!string.IsNullOrEmpty(collection[key]))
                        {
                            try
                            {
                                var option = new Option();
                                option.Image      = ImagesService.Instance.GetImage(int.Parse(collection[key]));
                                option.IsCorrect  = false;
                                option.ModifiedOn = DateTime.Now;

                                model.Options.Add(option);
                            }
                            catch (Exception ex)
                            {
                                //ignore this option
                            }
                        }
                    }
                }
            }

            return(model);
        }
        public IActionResult OnPost(IFormCollection collection)
        {
            NewQuestionViewModel model = new NewQuestionViewModel();

            model.QuizId = GetQuizIDFromCollection(collection);

            var quiz = _context.Quizzes.FirstOrDefault(x => x.Id == model.QuizId);

            if (quiz == null)
            {
                return(NotFound());
            }

            model = GetNewImageQuestionViewModelFromFormCollection(model, collection);

            if (string.IsNullOrEmpty(model.Title) || model.Options.Where(x => x.IsCorrect).ToList().Count == 0 || model.Options.Count == 0)
            {
                if (string.IsNullOrEmpty(model.Title))
                {
                    ModelState.AddModelError("Title", "Please enter question title.");
                }

                if (model.Options.Where(x => x.IsCorrect).ToList().Count == 0)
                {
                    ModelState.AddModelError("CorrectOptions", "Please enter some correct options.");
                }

                if (model.Options.Count == 0)
                {
                    ModelState.AddModelError("Options", "Please enter some other options.");
                }

                QuestionViewModel = model;
                return(Page());
            }

            var question = new Question();

            question.QuizID       = quiz.Id;
            question.Title        = model.Title;
            question.ImageID      = model.ImageID;
            question.QuestionType = Models.Enums.QuestionType.Image;
            question.Options      = new List <Option>();
            question.Options.AddRange(model.CorrectOptions);
            question.Options.AddRange(model.Options);

            _context.Questions.Add(question);
            if (_context.SaveChanges() > 0)
            {
                return(Redirect("~/admin/add_image_question?quizId=" + quiz.Id));
            }
            else
            {
                return(StatusCode(500));
            }
        }
示例#9
0
        public IActionResult Add(NewQuestionViewModel model)
        {
            var success = service.Add(
                Utility.GetUserContext().UserId,
                model.CourseId,
                model.Type,
                model.Topic,
                model.AnswerOptions);

            return(Ok(success));
        }
        public ActionResult NewQuestion(NewQuestionViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(ViewNewQuestion(viewModel));
            }
            var question = new AssessmentQuestion(viewModel.AssessmentSubGoalID, viewModel.AssessmentQuestionText);

            viewModel.UpdateModel(question, CurrentFirmaSession);
            HttpRequestStorage.DatabaseEntities.AllAssessmentQuestions.Add(question);
            return(new ModalDialogFormJsonResult());
        }
示例#11
0
        // GET: /Question/Create
        public ActionResult Create(int?sessionId)
        {
            if (sessionId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            NewQuestionViewModel view = new NewQuestionViewModel()
            {
                SessionID = (int)sessionId
            };

            return(View(view));
        }
        public IActionResult AddQuestion(int id, NewQuestionViewModel model)
        {
            SurveyQuestion question = new SurveyQuestion();

            question.Question     = model.Question;
            question.ParentSurvey = _surveyService.GetSurveyById(id);
            if (ModelState.IsValid)
            {
                _surveyService.AddQuestion(question);
                return(RedirectToAction("Questions", new { id = question.ParentSurvey.Id }));
            }

            return(View(model));
        }
示例#13
0
        public ActionResult Create(NewQuestionViewModel view)
        {
            if (ModelState.IsValid)
            {
                Question question = new Question()
                {
                    Text      = view.Text,
                    SessionID = view.SessionID,
                    StudentID = User.Identity.GetUserId()
                };
                db.Questions.Add(question);
                db.SaveChanges();
                return(RedirectToAction("Index", new { sessionId = view.SessionID }));
            }

            return(View(view));
        }
        public IActionResult OnGet(int quizId)
        {
            QuestionViewModel = new NewQuestionViewModel();

            var quiz = _context.Quizzes.FirstOrDefault(x => x.Id == quizId);

            if (quiz == null)
            {
                return(NotFound());
            }

            QuestionViewModel.QuizId = quiz.Id;

            QuizId = quizId;

            return(Page());
        }
        private NewQuestionViewModel GetNewTextQuestionViewModelFromFormCollection(NewQuestionViewModel model, IFormCollection collection)
        {
            model.Options        = new List <Option>();
            model.CorrectOptions = new List <Option>();

            if (collection.Keys.Count() > 0)
            {
                foreach (var key in collection)
                {
                    if (key.Key == "Title")
                    {
                        model.Title = collection[key.Key];
                    }
                    //else if (key.Key.Contains("correctOption")) //this must be Correct Option
                    //{
                    //    if (!string.IsNullOrEmpty(collection[key.Key]))
                    //    {
                    //        var correctOption = new Option();
                    //        correctOption.Answer = collection[key.Key];
                    //        correctOption.IsCorrect = true;

                    //        model.CorrectOptions.Add(correctOption);
                    //    }
                    //}
                    else if (key.Key.Contains("option") && key.Key.Contains("isoptioncorrect") == false) //this must be Option
                    {
                        if (!string.IsNullOrEmpty(collection[key.Key]))
                        {
                            var option = new Option();
                            option.Answer = collection[key.Key];

                            var index = Regex.Replace(key.Key, "[^0-9]+", string.Empty);

                            var isOptionCorrect = collection["isoptioncorrect" + index] == "on";

                            option.IsCorrect = isOptionCorrect;

                            model.Options.Add(option);
                        }
                    }
                }
            }

            return(model);
        }
 public ActionResult Create(NewQuestionViewModel qvm)
 {
     if (ModelState.IsValid)
     {
         qvm.AnswersCount        = 0;
         qvm.ViewsCount          = 0;
         qvm.VotesCount          = 0;
         qvm.QuestionDateAndTime = DateTime.Now;
         qvm.UserID = Convert.ToInt32(Session["CurrentUserID"]);
         this.qs.InsertQuestion(qvm);
         return(RedirectToAction("Questions", "Home"));
     }
     else
     {
         ModelState.AddModelError("x", "Invalid data");
         return(View());
     }
 }
        public void AddQuestion(NewQuestionViewModel vm)
        {
            var test = _context.Tests.Include(x => x.Subject)
                       .Include(x => x.Questions)
                       .FirstOrDefault(x => x.Id == vm.TestId);

            if (test == null)
            {
                return;
            }

            var question = new Question(vm, test);

            _context.Questions.Add(question);

            _context.QuestionAnswers.Add(new QuestionAnswer(vm.Answer1, question));
            _context.QuestionAnswers.Add(new QuestionAnswer(vm.Answer2, question));
            _context.QuestionAnswers.Add(new QuestionAnswer(vm.Answer3, question));
        }
        private NewQuestionViewModel GetNewTextQuestionViewModelFromFormCollection(NewQuestionViewModel model, FormCollection collection)
        {
            model.Options        = new List <Option>();
            model.CorrectOptions = new List <Option>();

            if (collection.Keys.Count() > 0)
            {
                foreach (string key in collection.Keys)
                {
                    if (key == "Title")
                    {
                        model.Title = collection[key];
                    }
                    else if (key.Contains("correctOption")) //this must be Correct Option
                    {
                        if (!string.IsNullOrEmpty(collection[key]))
                        {
                            var correctOption = new Option();
                            correctOption.Answer     = collection[key];
                            correctOption.IsCorrect  = true;
                            correctOption.ModifiedOn = DateTime.Now;

                            model.CorrectOptions.Add(correctOption);
                        }
                    }
                    else if (key.Contains("option")) //this must be Option
                    {
                        if (!string.IsNullOrEmpty(collection[key]))
                        {
                            var option = new Option();
                            option.Answer     = collection[key];
                            option.IsCorrect  = false;
                            option.ModifiedOn = DateTime.Now;

                            model.Options.Add(option);
                        }
                    }
                }
            }

            return(model);
        }
        public ActionResult NewQuestion(int quizID)
        {
            NewQuestionViewModel model = new NewQuestionViewModel();

            var quiz = UserHasRights() ? QuizzesService.Instance.GetQuizForAdmin(quizID) : QuizzesService.Instance.GetUserQuiz(User.Identity.GetUserId(), quizID);

            if (quiz == null)
            {
                return(HttpNotFound());
            }

            model.PageInfo = new PageInfo()
            {
                PageTitle       = "Add New Question",
                PageDescription = "Add questions to selected quiz."
            };

            model.QuizID   = quiz.ID;
            model.QuizType = quiz.QuizType;

            return(View(model));
        }
示例#20
0
 public NewQuestionView()
 {
     InitializeComponent();
     DataContext = new NewQuestionViewModel();
 }
        public async Task <ActionResult> NewQuestion(FormCollection collection)
        {
            NewQuestionViewModel model = new NewQuestionViewModel();

            model.QuizID = GetQuizIDFromCollection(collection);

            var userId = User.FindFirstValue(ClaimTypes.NameIdentifier);
            var quiz   = UserHasRights() ? QuizzesService.Instance.GetQuizForAdmin(model.QuizID) : QuizzesService.Instance.GetUserQuiz(userId, model.QuizID);

            if (quiz == null)
            {
                return(NotFound());
            }

            if (quiz.QuizType == QuizType.Image)
            {
                model = GetNewImageQuestionViewModelFromFormCollection(model, collection);
            }
            else
            {
                model = GetNewTextQuestionViewModelFromFormCollection(model, collection);
            }

            model.PageInfo = new PageInfo()
            {
                PageTitle       = "Add New Question",
                PageDescription = "Add questions to selected quiz."
            };

            if (string.IsNullOrEmpty(model.Title) || model.CorrectOptions.Count == 0 || model.Options.Count == 0)
            {
                if (string.IsNullOrEmpty(model.Title))
                {
                    ModelState.AddModelError("Title", "Please enter question title.");
                }

                if (model.CorrectOptions.Count == 0)
                {
                    ModelState.AddModelError("CorrectOptions", "Please enter some correct options.");
                }

                if (model.Options.Count == 0)
                {
                    ModelState.AddModelError("Options", "Please enter some other options.");
                }

                model.QuizType = quiz.QuizType;

                return(View(model));
            }

            var question = new Question();

            question.QuizID = quiz.ID;
            question.Title  = model.Title;

            question.Options = new List <Option>();
            question.Options.AddRange(model.CorrectOptions);
            question.Options.AddRange(model.Options);

            question.ModifiedOn = DateTime.Now;

            if (await QuestionsService.Instance.SaveNewQuestion(question))
            {
                return(RedirectToAction("NewQuestion", new { quizID = question.QuizID }));
            }
            else
            {
                return(new StatusCodeResult(500));
            }
        }
 public NewQuestionWindow(NewQuestionViewModel viewModel)
 {
     InitializeComponent();
     this.DataContext = viewModel;
 }
        public PartialViewResult NewQuestion()
        {
            var viewModel = new NewQuestionViewModel();

            return(ViewNewQuestion(viewModel));
        }
        private NewQuestionViewModel GetNewImageQuestionViewModelFromFormCollection(NewQuestionViewModel model, IFormCollection collection)
        {
            model.Options        = new List <Option>();
            model.CorrectOptions = new List <Option>();

            if (collection.Keys.Count() > 0)
            {
                foreach (var key in collection)
                {
                    if (key.Key == "Title")
                    {
                        model.Title = collection[key.Key];
                    }
                    //else if (key.Key.Contains("correctOption")) //this must be Correct Option
                    //{
                    //    if (!string.IsNullOrEmpty(collection[key.Key]))
                    //    {
                    //        try
                    //        {
                    //            var correctOption = new Option();
                    //            correctOption.Image = _context.Images.FirstOrDefault(x => x.Id == int.Parse(collection[key.Key]));
                    //            correctOption.IsCorrect = true;

                    //            model.CorrectOptions.Add(correctOption);
                    //        }
                    //        catch (Exception ex)
                    //        {
                    //            //ignore this option
                    //        }
                    //    }
                    //}
                    else if (key.Key.Contains("option")) //this must be Option
                    {
                        if (!string.IsNullOrEmpty(collection[key.Key]))
                        {
                            try
                            {
                                var option = new Option();
                                option.Image = _context.Images.FirstOrDefault(x => x.Id == int.Parse(collection[key.Key]));

                                var index = Regex.Replace(key.Key, "[^0-9]+", string.Empty);

                                var isOptionCorrect = collection["isoptioncorrect" + index] == "on";

                                option.IsCorrect = isOptionCorrect;

                                model.Options.Add(option);
                            }
                            catch (Exception ex)
                            {
                                //ignore this option
                            }
                        }
                    }
                    else if (key.Key.Contains("questionfile"))
                    {
                        if (string.IsNullOrEmpty(collection[key.Key]) == false)
                        {
                            model.ImageID = Convert.ToInt32(collection[key.Key]);
                        }
                    }
                    else if (key.Key == "Hours")
                    {
                        if (string.IsNullOrEmpty(collection[key.Key]) == false)
                        {
                            model.Hours = Convert.ToInt32(collection[key.Key]);
                        }
                    }
                    else if (key.Key == "Minutes")
                    {
                        if (string.IsNullOrEmpty(collection[key.Key]) == false)
                        {
                            model.Minutes = Convert.ToInt32(collection[key.Key]);
                        }
                    }
                    else if (key.Key == "Seconds")
                    {
                        if (string.IsNullOrEmpty(collection[key.Key]) == false)
                        {
                            model.Seconds = Convert.ToInt32(collection[key.Key]);
                        }
                    }
                    else if (key.Key == "EnableOptionTimer")
                    {
                        model.HasOptionsTime = Convert.ToBoolean(collection[key.Key]);
                    }
                    else if (key.Key == "OptionHours")
                    {
                        if (string.IsNullOrEmpty(collection[key.Key]) == false)
                        {
                            model.OptionHours = Convert.ToInt32(collection[key.Key]);
                        }
                    }
                    else if (key.Key == "OptionMinutes")
                    {
                        if (string.IsNullOrEmpty(collection[key.Key]) == false)
                        {
                            model.OptionMinutes = Convert.ToInt32(collection[key.Key]);
                        }
                    }
                    else if (key.Key == "OptionSeconds")
                    {
                        if (string.IsNullOrEmpty(collection[key.Key]) == false)
                        {
                            model.OptionSeconds = Convert.ToInt32(collection[key.Key]);
                        }
                    }
                }
            }

            return(model);
        }