public ActionResult Add(SessionsAddEditModel model)
        {
            if (!ModelState.IsValid)
                return View(model);

            var user = _repository.Find<UserProfile>().GetBy(_currentUser.Email);

            var presentation = new Session(user, model.Title, model.Description, model.Level, model.Category);

            _repository.Save(presentation);

            return RedirectTo<SessionsController>(c => c.Show(presentation.Id, presentation.Title.MakeUrlFriendly()));
        }
        public ActionResult Edit(SessionsAddEditModel model)
        {
            if (!ModelState.IsValid)
            {
                ViewData["TimeSlot"] = new SelectList(Core.Domain.Session.TimeSlots, "Key", "Value", model.TimeSlot);
                return View(model);
            }

            var presentation = GetSession(model.Id, true);
            if (presentation.IsClosedForEdit())
            {
                _currentUser.AddRedirectMessage("Session {0} closed to editing".F(model.Id));
                return RedirectTo<SessionsController>(c => c.Show(presentation.Id, presentation.Title.MakeUrlFriendly()));
            }

            presentation.Update(model.Title, model.Description, model.Level, model.Category, model.Track, model.TimeSlot);
            _repository.Save(presentation);

            return RedirectTo<SessionsController>(c => c.Show(presentation.Id, presentation.Title.MakeUrlFriendly()));
        }
        public ActionResult Edit(int id)
        {
            var session = GetSession(id, true);
            if (session.IsClosedForEdit())
            {
                _currentUser.AddRedirectMessage("Session {0} closed to editing".F(id));
                return RedirectTo<SessionsController>(c => c.Show(session.Id, session.Title.MakeUrlFriendly()));
            }

            var model = new SessionsAddEditModel
                {
                    Id = session.Id,
                    Title = session.Title,
                    Description = session.Description,
                    Level = session.Level,
                    Category = session.Category,
                    Track = session.Track,
                    TimeSlot = session.Slot,
                    Day = session.Day
                };

            ViewData["TimeSlot"] = new SelectList(Core.Domain.Session.TimeSlots, "Key", "Value", model.TimeSlot);
            return View(model);
        }