#pragma warning disable 0108 public ActionResult Session(string conferenceSlug, int? id, CfpSession session) #pragma warning restore 0108 { var conference = _conferenceService.GetConferenceBySlug(conferenceSlug); var userId = User.Identity.GetUserId(); var speaker = _dbContext.CfpSpeakers.Include(sp => sp.Sessions).SingleOrDefault(sp => sp.UserId == userId && sp.ConferenceId == conference.Id); session.Speaker = speaker; if (ModelState.IsValid) { try { var dbSession = id.HasValue ? speaker.Sessions.SingleOrDefault(s => s.Id == id) : null; if (dbSession == null) { if (!User.IsAllowedToCreateCfp(conference)) { // CFP Isn't open. Can't create new sessions. return RedirectToAction("Conference"); } dbSession = new CfpSession(); _dbContext.Entry(dbSession).State = EntityState.Added; dbSession.ConferenceId = conference.Id; speaker.Sessions.Add(dbSession); } dbSession.Name = session.Name; dbSession.Description = session.Description; dbSession.Comments = session.Comments; dbSession.Audience = session.Audience; dbSession.Level = session.Level; dbSession.Tags = session.Tags; _dbContext.SaveChanges(); return RedirectToAction("Conference"); } catch (Exception ex) { ModelState.AddModelError("Saving", ex); } } ViewBag.Conference = conference; ViewBag.Speaker = speaker; return View(session); }
#pragma warning disable 0108 public ActionResult Session(string conferenceSlug, int? id) #pragma warning restore 0108 { var conference = _conferenceService.GetConferenceBySlug(conferenceSlug); var userId = User.Identity.GetUserId(); var speaker = _dbContext.CfpSpeakers.Include(sp => sp.Sessions).SingleOrDefault(sp => sp.UserId == userId && sp.ConferenceId == conference.Id); CfpSession session; if (id.HasValue) { session = speaker.Sessions.SingleOrDefault(s => s.Id == id); } else { if (!User.IsAllowedToCreateCfp(conference)) { // CFP Isn't open. Can't create new sessions. return RedirectToAction("Conference"); } session = new CfpSession() { Speaker = speaker }; } ViewBag.Conference = conference; ViewBag.Speaker = speaker; return View(session); }