public async Task <IActionResult> DefineQuiz([FromBody] QuizDefinition request) { if (request == null || string.IsNullOrEmpty(request.QuizName) || string.IsNullOrEmpty(request.QuizType)) // || request.QuestionSet?.Count == 0) { return(BadRequest("Mandatory Fields Missing.")); } request.DocumentType = "Define"; var parameters = new Dictionary <string, object>(); var query = string.Format(@"SELECT quizName FROM {0} WHERE status=""{1}"" and quizName = $quizName and quizType = $quizType and documentType=""{2}""", CouchbaseHelper.Bucket, "Published", "Define"); parameters.Add("$quizName", request.QuizName); parameters.Add("$quizType", request.QuizType); var req = new QueryRequest(query); req.AddNamedParameter(parameters.ToArray()); var result = await CouchbaseHelper.CouchbaseClient.GetByQueryAsync <QuizDefinition>(req); if (result.Count > 0) { return(BadRequest("This Quiz is already Published.")); } var response = await CouchbaseHelper.CouchbaseClient.UpsertAsync(request.QuizName + "_" + request.QuizType, request); return(Ok(response)); }
private QuizDefinition CreateQuiz(QuizUserViewModel quizViewModel, bool replace) { QuizDefinition newQuiz = new QuizDefinition(); this.MapViewModelToModel(quizViewModel, newQuiz, replace); this.Db.QuizzesDefinitions.Add(newQuiz); return(newQuiz); }
public ActionResult Create(QuizUserViewModel quizViewModel) { if (this.ModelState.IsValid) { QuizDefinition newQuiz = this.CreateQuiz(quizViewModel, false); this.Db.SaveChanges(); quizViewModel.Id = newQuiz.Id; return(this.RedirectToAction("Index")); } return(this.View(quizViewModel)); }
public ActionResult Edit(QuizUserViewModel quizViewModel) { if (this.ModelState.IsValid) { // create new and disable the old //TODO Manage questions QuizDefinition newQuiz = this.CreateQuiz(quizViewModel, false); this.Db.QuizzesDefinitions.Delete(quizViewModel.Id); this.Db.SaveChanges(); return(this.RedirectToAction("Index")); } return(this.View(quizViewModel)); }
private void MapViewModelToModel(QuizUserViewModel quizViewModel, QuizDefinition dbQuiz, bool replace) { var category = this.Db.Categories.SearchFor(c => c.Id == quizViewModel.CategoryId).FirstOrDefault(); if (category == null) { throw new HttpException("Category not found."); } dbQuiz.Title = quizViewModel.Title; dbQuiz.CategoryId = quizViewModel.CategoryId; dbQuiz.IsPublic = quizViewModel.IsPublic; dbQuiz.Rating = quizViewModel.Rating; var user = this.Db.Users.Find(this.User.Identity.GetUserId()); dbQuiz.Author = user; dbQuiz.QuestionsDefinitions = new List <QuestionDefinition>(); }