Beispiel #1
0
        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));
        }