// To protect from overposting attacks, please enable the specific properties you want to bind to, for // more details see https://aka.ms/RazorPagesCRUD. public async Task <IActionResult> OnPostAsync() { if (Quiz.BookNumber == 0 && Quiz.PredefinedQuiz == 0) { ModelState.AddModelError("Quiz.BookNumber", "You must select either a Book/BookList or a Template."); ModelState.AddModelError("Quiz.PredefinedQuiz", "You must select either a Book/BookList or a Template."); } if (!ModelState.IsValid) { //Initialize Select Lists ViewData["BookSelectList"] = await BibleBook.GetBookAndBookListSelectListAsync(_context, BibleId); ViewData["TemplateSelectList"] = await PredefinedQuiz.GetTemplateSelectListAsync(_context, PBEUser); return(Page()); } // confirm our user is a valid PBE User. IdentityUser user = await _userManager.GetUserAsync(User); PBEUser = await QuizUser.GetOrAddPBEUserAsync(_context, user.Email); if (!PBEUser.IsValidPBEQuizHost()) { return(RedirectToPage("/error", new { errorMessage = "Sorry! You do not have sufficient rights to add a PBE Quiz" })); } // Now let's create an empty Quiz var emptyQuiz = new QuizGroupStat { Created = DateTime.Now, Modified = DateTime.Now, QuizUser = PBEUser, IsDeleted = false }; if (await TryUpdateModelAsync <QuizGroupStat>( emptyQuiz, "Quiz", // Prefix for form value. q => q.GroupName, q => q.BookNumber, q => q.PredefinedQuiz)) { if (emptyQuiz.PredefinedQuiz > 0) { // Template trumps Book/BookList so we set BookNumber 0 emptyQuiz.BookNumber = 0; } _context.QuizGroupStats.Add(emptyQuiz); await _context.SaveChangesAsync(); } return(RedirectToPage("./Quizzes", new { BibleId = this.BibleId, Message = String.Format("Quiz {0} successfully created...", emptyQuiz.GroupName) })); }
public async Task <IActionResult> OnGetAsync(string BibleId) { IdentityUser user = await _userManager.GetUserAsync(User); PBEUser = await QuizUser.GetOrAddPBEUserAsync(_context, user.Email); if (!PBEUser.IsValidPBEQuestionBuilder()) { return(RedirectToPage("/error", new { errorMessage = "Sorry! You do not have sufficient rights to add a PBE Quiz Template" })); } this.BibleId = await Bible.GetValidPBEBibleIdAsync(_context, BibleId); ViewData["BookSelectList"] = await BibleBook.GetBookAndBookListSelectListAsync(_context, BibleId); ViewData["CountSelectList"] = PredefinedQuiz.GetCountSelectList(); return(Page()); }
// To protect from overposting attacks, please enable the specific properties you want to bind to, for // more details see https://aka.ms/RazorPagesCRUD. public async Task <IActionResult> OnPostAsync() { if (!ModelState.IsValid) { ViewData["BookSelectList"] = await BibleBook.GetBookAndBookListSelectListAsync(_context, BibleId); return(Page()); } // confirm our user is a valid PBE User. IdentityUser user = await _userManager.GetUserAsync(User); PBEUser = await QuizUser.GetOrAddPBEUserAsync(_context, user.Email); if (!PBEUser.IsValidPBEQuestionBuilder()) { return(RedirectToPage("/error", new { errorMessage = "Sorry! You do not have sufficient rights to add a PBE Quiz Template" })); } // Now let's create an empty template var emptyTemplate = new PredefinedQuiz { Created = DateTime.Now, Modified = DateTime.Now, QuizUser = PBEUser }; if (await TryUpdateModelAsync <PredefinedQuiz>( emptyTemplate, "Template", // Prefix for form value. t => t.QuizName, t => t.BookNumber, t => t.NumQuestions)) { emptyTemplate.QuizName = Name; // Name is handled seperately for remote validation to work. emptyTemplate.IsDeleted = false; _context.PredefinedQuizzes.Add(emptyTemplate); await _context.SaveChangesAsync(); return(RedirectToPage("./ConfigureTemplate", new { Id = emptyTemplate.Id, BibleId = this.BibleId })); } return(RedirectToPage("./Templates", new { Message = String.Format("Quiz Template {0} successfully created...", emptyTemplate.QuizName) })); }
public async Task <IActionResult> OnGetAsync(string BibleId) { IdentityUser user = await _userManager.GetUserAsync(User); PBEUser = await QuizUser.GetOrAddPBEUserAsync(_context, user.Email); // Static method not requiring an instance if (!PBEUser.IsValidPBEQuizHost()) { return(RedirectToPage("/error", new { errorMessage = "Sorry! You do not have sufficient rights to add a PBE Quiz" })); } this.BibleId = await Bible.GetValidPBEBibleIdAsync(_context, BibleId); //Initialize Select Lists ViewData["BookSelectList"] = await BibleBook.GetBookAndBookListSelectListAsync(_context, BibleId); ViewData["TemplateSelectList"] = await PredefinedQuiz.GetTemplateSelectListAsync(_context, PBEUser); return(Page()); }