Beispiel #1
0
        public async Task <IActionResult> CreateAnswer(CreateAnswerViewModel cavm)
        {
            cavm.Ans.BQID = cavm.ID;

            //Check and see if the cookie has a valid number in it.
            // if it does, then save that to PID of the Answer object.

            if (Int32.TryParse(Request.Cookies["Player"], out int userId))
            {
                cavm.Ans.PID = userId;
            }

            var player = _context.PlayerTable.FirstOrDefault(p => p.ID == cavm.Ans.PID);

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

            player.Points++;

            _context.PlayerTable.Update(player);

            await _context.AnswerTable.AddAsync(cavm.Ans);

            await _context.SaveChangesAsync();

            return(RedirectToAction("Index", "Profile", player));
        }
        public async Task <IActionResult> CreateChoiceAnswer([Bind("ChoiceAnswerId,Answer,IsRight,QuestionId,CreationDate")] ChoiceAnswer choiceAnswer)
        {
            choiceAnswer.Question = await _context.Questions.Where(q => q.QuestionId == choiceAnswer.QuestionId).FirstOrDefaultAsync();

            if (ModelState.IsValid)
            {
                _context.Add(choiceAnswer);
                await _context.SaveChangesAsync();
            }

            var model = new CreateAnswerViewModel
            {
                IsChoiceAnswer   = true,
                Question         = choiceAnswer.Question,
                ListChoiceAnswer = _context.ChoiceAnswers.Where(a => a.QuestionId == choiceAnswer.QuestionId).ToList()
            };

            // For single choice, check if one answer is already True
            // TODO :: Replace Name by a key value in app config
            var query = from answer in _context.ChoiceAnswers
                        join question in _context.Questions
                        on answer.QuestionId equals question.QuestionId
                        join type in _context.TypeQuestions
                        on question.TypeQuestionId equals type.TypeQuestionId
                        where type.Name == "Unique" && question.QuestionId == choiceAnswer.QuestionId && answer.IsRight
                        select answer;

            ViewData["ChoiceAnswersIsRight"] = query.Count() > 0 ? true : false;

            // Return to the add answer
            return(View("CreateAnswer", model));
        }
        public async Task <IActionResult> CreateAnswer(CreateAnswerViewModel cavm)
        {
            cavm.Ans.TQID = cavm.ID;


            if (Int32.TryParse(Request.Cookies["Player"], out int userId))
            {
                cavm.Ans.PID = userId;
            }
            //Save to the answer table
            await _context.AnswerTable.AddAsync(cavm.Ans);

            var player = _context.PlayerTable.FirstOrDefault(p => p.ID == cavm.Ans.PID);

            if (player == null)
            {
                return(NotFound());
            }
            player.Points++;
            //Update player on playertable
            _context.PlayerTable.Update(player);

            await _context.SaveChangesAsync();

            return(RedirectToAction("Index", "Profile", player));
        }
Beispiel #4
0
        public CreateQuizViewModel CreateQuizViewModelFromQuizDTO(QuizDTO quiz)
        {
            CreateQuizViewModel viewModel = new CreateQuizViewModel();

            viewModel.Id          = quiz.Id;
            viewModel.Description = quiz.Description;
            viewModel.Title       = quiz.Title;
            viewModel.Path        = quiz.FilePath;
            int i = 0;

            foreach (var q in quiz.Questions)
            {
                CreateQuestionViewModel questionViewModel = new CreateQuestionViewModel();
                questionViewModel.Question = q.Question;
                int j = 0;
                foreach (var a in quiz.Questions[i].Answers)
                {
                    CreateAnswerViewModel answerViewModel = new CreateAnswerViewModel();
                    questionViewModel.Answers.Add(answerViewModel);
                    questionViewModel.Answers[j].Answer    = a.Answer;
                    questionViewModel.Answers[j].isCorrect = a.isCorrect;
                    j++;
                }
                i++;
            }


            return(viewModel);
        }
        public void CreateAnswerRedirectsAsync()
        {
            DbContextOptions <FunemploymentDbContext> options = new DbContextOptionsBuilder <FunemploymentDbContext>()
                                                                .UseInMemoryDatabase("CreateAnswerRedirect")
                                                                .Options;

            using (FunemploymentDbContext context = new FunemploymentDbContext(options))
            {
                TechnicalController tc = new TechnicalController(context);

                Player player = new Player();
                player.Username = "******";
                player.Location = "testLocation";
                player.About    = "testAbout";

                Answer answer = new Answer();



                CreateAnswerViewModel cavm = new CreateAnswerViewModel();

                try
                {
                    var x = tc.CreateAnswer(cavm);
                }
                catch (Exception ex)
                {
                    Assert.True(ex is NullReferenceException);
                }
            }
        }
        public async Task <ActionResult> Add(CreateAnswerViewModel answer)
        {
            if (ModelState.IsValid)
            {
                Question question = await _context.Questions.SingleAsync(x => x.Id == answer.QuestionId);

                question.Answers.Add(new Answer(answer.Text));
                await _context.SaveChangesAsync();

                return(RedirectToAction("Details", "Questions", new { id = answer.QuestionId }));
            }

            return(View(answer));
        }
Beispiel #7
0
 private static void SetupQuestions(AddQuizQuestionsViewModel viewModel)
 {
     for (int i = 0; i < 10; i++)
     {
         CreateQuestionViewModel      q       = new CreateQuestionViewModel();
         List <CreateAnswerViewModel> answers = new List <CreateAnswerViewModel>();
         for (int j = 0; j < 4; j++)
         {
             CreateAnswerViewModel a = new CreateAnswerViewModel();
             answers.Add(a);
         }
         q.Answers = answers;
         viewModel.Questions.Add(q);
     }
 }
Beispiel #8
0
        public async Task <IActionResult> CreateAnswer(CreateAnswerViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Index", new { id = viewModel.PostId }).PushAlert("Answer is Valid", Core.Enums.AlertType.Error));
            }

            var createdAnswer = await answerService.CreateAnswer(viewModel.Content, viewModel.PostId);

            if (createdAnswer == null)
            {
                return(RedirectToAction("Index", new { id = viewModel.PostId }).PushAlert("Error occured when creating a answer"));
            }

            return(RedirectToAction("Index", new { id = viewModel.PostId }).PushAlert("Answer added successfully"));
        }
        public async Task <IActionResult> CreateAnswer(CreateAnswerViewModel model)
        {
            if (ModelState.IsValid)
            {
                Answer newAnswer = new Answer
                {
                    QuestionId             = model.QuestionId,
                    QuestionVariantContent = model.QuestionVariantContent,
                    CorrectAnswer          = model.CorrectAnswer
                };
                // Add new Answer
                var result = await _examDBContect.DbAnswer.AddAsync(newAnswer);

                var resultSave = await _examDBContect.SaveChangesAsync();
            }

            return(RedirectToAction("ListAnswers"));
        }
        public async Task <IActionResult> CreateBoolAnswer([Bind("BoolAnswerId,Answer,QuestionId,CreationDate")] BoolAnswer boolAnswer)
        {
            if (ModelState.IsValid)
            {
                _context.Add(boolAnswer);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Details), "Questions", new { id = boolAnswer.QuestionId }));
            }

            // Can't add answer we return to the CreateAnswer page
            var model = new CreateAnswerViewModel
            {
                Question = boolAnswer.Question
            };

            return(View("CreateAnswer", model));
        }
        public ActionResult Reply(int page, string title, string iD)
        {
            var UserId             = User.Identity.GetUserId();
            var loggedUserByUserId = _applicationDbContext.Users.SingleOrDefault(i => i.Id == UserId);

            if (loggedUserByUserId.Career == "General")
            {
                CreateAnswerViewModel ansModel = new CreateAnswerViewModel();
                var getAnswerByanswerId        = _applicationDbContext.AnswerToQuestions.SingleOrDefault(i => i.AnswerToQuestionId == page);
                ansModel.AnswerToQuestionId = getAnswerByanswerId.AnswerToQuestionId;
                ansModel.AnswerText         = getAnswerByanswerId.Answer;

                return(View(ansModel));
            }
            else
            {
                AuthenticationManager.SignOut(DefaultAuthenticationTypes.ApplicationCookie);
                return(RedirectToAction("Login", "Account"));
            }
        }
        public async Task <IActionResult> Create([Bind("QuestionId,Header,Mark,CreationDate,TypeQuestionId,SubjectId,UserId")] Question question)
        {
            question.UserId = _userManager.GetUserId(User);
            if (ModelState.IsValid)
            {
                _context.Add(question);
                await _context.SaveChangesAsync();

                // Return the right view to fill the answer => TypeQuestion
                question.TypeQuestion = await _context.TypeQuestions.Where(t => t.TypeQuestionId == question.TypeQuestionId).FirstOrDefaultAsync();

                question.Subject = await _context.Subjects.Where(s => s.SubjectId == question.SubjectId).FirstOrDefaultAsync();

                var model = new CreateAnswerViewModel
                {
                    Question = question
                };

                if (question.TypeQuestion.Name == "Multiple" || question.TypeQuestion.Name == "Unique")
                {
                    model.IsChoiceAnswer = true;
                }
                else if (question.TypeQuestion.Name == "VraiFaux")
                {
                    model.IsBoolAnswer   = true;
                    model.ListBoolAnswer = _context.BoolAnswers.Where(a => a.QuestionId == question.QuestionId).ToList();
                }
                else if (question.TypeQuestion.Name == "Trou")
                {
                    model.IsHoleAnswer   = true;
                    model.ListHoleAnswer = _context.HoleAnswers.Where(a => a.QuestionId == question.QuestionId).ToList();
                }

                ViewData["ChoiceAnswersIsRight"] = false;

                return(View("CreateAnswer", model));
            }
            ViewData["SubjectId"]      = new SelectList(_context.Subjects, "SubjectId", "SubjectId", question.SubjectId);
            ViewData["TypeQuestionId"] = new SelectList(_context.TypeQuestions, "TypeQuestionId", "TypeQuestionId", question.TypeQuestionId);
            return(View(question));
        }
        public async Task <IActionResult> CreateAnswer(int id)
        {
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("http://funemploymentapi.azurewebsites.net");

                var response = client.GetAsync($"/api/technical/{id}").Result;

                if (response.EnsureSuccessStatusCode().IsSuccessStatusCode)
                {
                    var stringResult = await response.Content.ReadAsStringAsync();

                    var obj = JsonConvert.DeserializeObject <TechnicalQuestion>(stringResult);

                    CreateAnswerViewModel cavm = new CreateAnswerViewModel();
                    cavm.Ans      = new Answer();
                    cavm.ID       = id;
                    cavm.Question = obj.ProblemDomain;
                    return(View(cavm));
                }
                return(NotFound());
            }
        }
        public async Task <IActionResult> Answer(int id, [FromBody] CreateAnswerViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            if (id != model.QuestionId)
            {
                return(NotFound());
            }

            var currentUser = await GetCurrentUser();

            var answer = Mapper.Map <Answer>(model);

            answer.CreatorId  = currentUser.Id;
            answer.QuestionId = id;

            _context.Answers.Add(answer);
            _context.SaveChanges();

            return(Ok(answer));
        }
 public IViewComponentResult Invoke(CreateAnswerViewModel viewModel) => View(viewModel);
Beispiel #16
0
 public static AnswerDTO Map(CreateAnswerViewModel viewModel)
 {
     return(new AnswerDTO {
         isCorrect = viewModel.isCorrect, Answer = viewModel.Answer
     });
 }
 // GET: Answers/Create
 public IActionResult Create(CreateAnswerViewModel model)
 {
     return(View(model));
 }