public ActionResult Create(EventSchedulerViewModel evm) { Event e = new Event(); e.Title = evm.EventModel.Title; e.Address = evm.EventModel.Address; e.NumberPlaces = evm.EventModel.NumberPlaces; e.Price = evm.EventModel.Price; e.Description = evm.EventModel.Description; e.Start = evm.EventModel.Start; e.End = evm.EventModel.End; e.OrganizedBy = evm.EventModel.OrganizedBy; eventService.Add(e); eventService.Commit(); foreach (Scheduler scheduler in listScheduler) { Scheduler s = new Scheduler() { Duration = scheduler.Duration, ProgramName = scheduler.ProgramName, EventId = e.EventId }; schedulerService.Add(s); schedulerService.Commit(); } try { // TODO: Add insert logic here return(RedirectToAction("Index")); } catch { return(View()); } }
public ActionResult Index(long id) { var theEvent = _eventService.FindById(id); if (theEvent == null) { return(RedirectToAction("Index", "EventFeed")); } theEvent.Scheduler = theEvent.Scheduler ?? new EventScheduler { IsTimeSet = theEvent.EventTime != null && theEvent.EventTime.StartTime != null }; var model = new EventSchedulerViewModel(); model.Event = theEvent; model.ViewerIsCreator = theEvent.Creator.Id.Equals(User.Identity.GetUserId()); if (theEvent.Scheduler.IsTimeSet) { return(RedirectToAction("Details", "Event", new { id = id })); } model.Times = theEvent.Scheduler.ProposedTimes.Select(pt => { var resp = theEvent.Scheduler.Responses.FirstOrDefault(r => r.Time.CompareTo(pt.StartTime) == 0 && r.User.Id.Equals(User.Identity.GetUserId())); return(new EventSchedulerProposedTimeViewModel { Time = pt.StartTime, CurrentUserResponse = resp == null ? SchedulerResponse.NoResponse : resp.Response, YesCount = theEvent.Scheduler.Responses.Count(r => r.Time.CompareTo(pt.StartTime) == 0 && r.Response == SchedulerResponse.Yes), MaybeCount = theEvent.Scheduler.Responses.Count(r => r.Time.CompareTo(pt.StartTime) == 0 && r.Response == SchedulerResponse.Maybe), NoCount = theEvent.Scheduler.Responses.Count(r => r.Time.CompareTo(pt.StartTime) == 0 && r.Response == SchedulerResponse.No) }); }).OrderBy(t => t.Time).ToList(); return(View("FindTime", model)); }