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)); } }
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)); }
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)); }
public Question ConvertToModels(CreateQuestionViewModels question) => new Question { Content = question.Content, Categories = question.Categories, };