public async Task <IActionResult> Create(CreateRegistrationModel model) { var evt = await _dbContext.Events.FindAsync(model.EventId); if (evt == null) { return(BadRequest("Invalid event")); } var session = await _dbContext.Sessions.FindAsync(model.SessionId); if (session == null || session.EventId != evt.Id) { return(BadRequest("Invalid session")); } var currentUser = await _userManager.GetUserAsync(User); try { var existing = await _dbContext.Registrations .AnyAsync(x => x.EventId == model.EventId && x.SessionId == model.SessionId && x.UserId == currentUser.Id); if (existing) { return(BadRequest("User is already registered for session")); } var hasSameSectionReg = await _dbContext.Registrations .AnyAsync(x => x.Session.SectionId == session.SectionId && x.UserId == currentUser.Id); if (hasSameSectionReg) { return(BadRequest("User is already registered for session in the time section")); } var registration = new Registration { Event = evt, Session = session, User = currentUser, CreatedOn = DateTime.UtcNow }; _dbContext.Registrations.Add(registration); await _dbContext.SaveChangesAsync(); var result = registration.ToModel(); return(Created("", result)); } catch (Exception ex) { _logger.LogError(2, ex, "Error creating registration", model.EventId, model.SessionId, model.UserId); return(StatusCode((int)HttpStatusCode.InternalServerError, "Error creating registration")); } }
public IActionResult AddRegistration() { var model = new CreateRegistrationModel(); ViewBag.Students = _studentService.GetAllStudent(); ViewBag.Books = _bookService.GetAllBook(); return(View(model)); }
public IActionResult AddRegistration(CreateRegistrationModel model) { model.AddNew(); return(RedirectToAction("Index")); }