public IHttpActionResult GetByDate(string date) { var items = _eventRepository.ListByDate(DateTime.Parse(date)).Where(x => x.MaximumNumberOfVisitors > 0); var events = new List <EventViewModel>(); foreach (var eventItem in items) { int pendingCount = _registrationRepository.GetPendingCount(eventItem); int registeredCount = _registrationRepository.GetRegisteredCount(eventItem); int visitedCount = _registrationRepository.GetVisitedCount(eventItem); string themeTitle = ""; if (eventItem.Theme != null) { Theme theme = _themeRepository.GetById(eventItem.Theme.Id); if (theme != null) { themeTitle = theme.Title.ToUpper(); } } events.Add(new EventViewModel() { Id = eventItem.Id, Registered = registeredCount, MaxPersons = eventItem.MaximumNumberOfVisitors, Available = eventItem.MaximumNumberOfVisitors - registeredCount, Pending = pendingCount, StartTime = eventItem.TimeRange.Start.ToShortTimeString(), EndTime = eventItem.TimeRange.End.ToShortTimeString(), Visited = visitedCount, ThemeTitle = themeTitle, }); } return(Ok(events)); }
// GET: Event public ActionResult Index(string date = null) { var currentDate = DateTime.Now; if (!String.IsNullOrEmpty(date)) { currentDate = DateTime.Parse(date); } var firstDayOfTheMonth = new DateTime(currentDate.Year, currentDate.Month, 1); var lastDayOfTheMonth = new DateTime(currentDate.Year, currentDate.Month, DateTime.DaysInMonth(currentDate.Year, currentDate.Month)); DateTime startDate = firstDayOfTheMonth.AddDays(-(int)firstDayOfTheMonth.DayOfWeek + 1); var days = new List <CalendarDay>(); for (int j = 0; j < 42; j++) { DateTime day = startDate.AddDays(j); var maxPersons = _eventRepository.GetMaxPersonsByDate(day); days.Add(new CalendarDay() { Date = day, IsVisible = day >= firstDayOfTheMonth && day <= lastDayOfTheMonth, MaxPersons = _eventRepository.GetMaxPersonsByDate(day), IsAvailable = maxPersons > 0, IsPast = day < currentDate, IsToday = day.ToShortDateString() == DateTime.Now.ToShortDateString() }); } var calendarMonth = new CalendarMonth() { Title = Months[currentDate.Month - 1] + " " + currentDate.Year, CalendarDays = days }; IEnumerable <Event> items = _eventRepository.ListByDate(currentDate); var events = new List <EventViewModel>(); foreach (var eventItem in items) { events.Add(new EventViewModel() { Id = eventItem.Id, StartTime = eventItem.TimeRange.Start.ToString("hh:mm"), EndTime = eventItem.TimeRange.End.ToString("hh:mm"), MaxPersons = eventItem.MaximumNumberOfVisitors, Visited = _registrationRepository.GetVisitedCount(eventItem) }); } var listViewModel = new EventListViewModel() { Date = currentDate, Events = events, Month = calendarMonth }; return(View(listViewModel)); }