Exemplo n.º 1
0
        public IHttpActionResult Post(CreateQuestionViewModels data)
        {
            try
            {
                foreach (var item in data.Answers)
                {
                    if (item.Tags.Count() == 0)
                    {
                        ModelState.AddModelError(string.Empty, "Câu trả lời phải được gắn thẻ");
                        break;
                    }
                }
                if (ModelState.IsValid)
                {
                    Question             question = ModelBuilder.ConvertToModels(data);
                    ICollection <Answer> answers  = new List <Answer>();

                    if (data.Answers != null)
                    {
                        data.Answers.ToList().ForEach(_ => {
                            ICollection <Tag> tags = new List <Tag>();
                            _.Tags.ToList().ForEach(__ =>
                            {
                                tags.Add(_tagService.Find(__));
                            });

                            answers.Add(new Answer
                            {
                                Content = _.Answer,
                                Tags    = tags
                            });
                        });
                    }
                    _questionService.Create(question, answers);

                    return(Ok());
                }
                else
                {
                    return(BadRequest(ModelState));
                }
            }
            catch (Exception ex)
            {
                _loggingService.Write(GetType().Name, nameof(Post), ex);

                return(InternalServerError(ex));
            }
        }
Exemplo n.º 2
0
        public IHttpActionResult EditQuestion(CreateQuestionViewModels data)
        {
            foreach (var item in data.Answers)
            {
                if (item.Tags.Count() == 0)
                {
                    ModelState.AddModelError(string.Empty, "Câu trả lời phải được gắn thẻ");
                    break;
                }
            }
            if (ModelState.IsValid)
            {
                int id           = data.Id;
                var baseQuestion = _questionService.Find(id, _ => _.Areas);

                var areas = baseQuestion.Areas.Select(_ => _areaService.Find(_.Id, __ => __.Questions)).ToList();
                _questionService.Delete(baseQuestion.Id);
                Question             question = ModelBuilder.ConvertToModels(data);
                ICollection <Answer> answers  = new List <Answer>();

                if (data.Answers != null)
                {
                    data.Answers.ToList().ForEach(_ => {
                        ICollection <Tag> tags = new List <Tag>();
                        _.Tags.ToList().ForEach(__ =>
                        {
                            tags.Add(_tagService.Find(__));
                        });

                        answers.Add(new Answer
                        {
                            Content = _.Answer,
                            Tags    = tags
                        });
                    });
                }
                _questionService.Create(question, answers, areas);
                return(Ok());
            }
            else
            {
                return(BadRequest(ModelState));
            }
        }
        public ActionResult Create(CreateQuestionViewModels question)
        {
            if (ModelState.IsValid)
            {
                Test test  = db.Tests.Single(p => p.Id_testu == question.TestID);
                var  quest = new Question();
                quest.Content = question.Content;
                quest.Test    = test;

                db.Questions.Add(quest);
                db.SaveChanges();

                TempData["msg"]    = "Utworzono nowe pytanie do testu poprawnie!";
                TempData["option"] = "success";
                return(RedirectToAction("Details", "Tests", new { id = test.Id_testu }));
            }

            return(PartialView("_Create", question));
        }
Exemplo n.º 4
0
        public IHttpActionResult EditQuestion(CreateQuestionViewModels data, [FromBody] int id)
        {
            if (ModelState.IsValid)
            {
                var baseQuestion = _questionService.Find(id, _ => _.Areas);

                var                  area     = baseQuestion.Areas.Select(_ => _areaService.Find(_.Id, __ => __.Questions));
                Question             question = ModelBuilder.ConvertToModels(data);
                ICollection <Answer> answers  = new List <Answer>();

                if (data.Answers != null)
                {
                    data.Answers.ToList().ForEach(_ => {
                        ICollection <Tag> tags = new List <Tag>();
                        _.Tags.ToList().ForEach(__ =>
                        {
                            tags.Add(_tagService.Find(__));
                        });

                        answers.Add(new Answer
                        {
                            Content = _.Answer,
                            Tags    = tags
                        });
                    });
                }
                _questionService.Create(question, answers);
                foreach (var item in area)
                {
                    item.Questions.Add(question);
                    _areaService.Update(item);
                }
                return(Ok());
            }
            else
            {
                return(BadRequest());
            }
        }
        //GET: Questions/Create?TestID=5
        public ActionResult Create(int?TestID)
        {
            if (TestID == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Test test = db.Tests.Find(TestID);

            if (test == null)
            {
                return(HttpNotFound());
            }
            if (test.Status == "Open")
            {
                TempData["msg"]    = "Nie można dodać pytania do testu, który jest otwarty do wypełniania!";
                TempData["option"] = "warning";
                return(RedirectToAction("Details", "Tests", new { id = test.Id_testu }));
            }

            CreateQuestionViewModels question = new CreateQuestionViewModels();

            question.TestID = test.Id_testu;
            return(PartialView("_Create", question));
        }
Exemplo n.º 6
0
 public Question ConvertToModels(CreateQuestionViewModels question)
 => new Question
 {
     Content    = question.Content,
     Categories = question.Categories,
 };