private IEnumerable <SelectListItem> DaysInWeek(DateTime startTime, params DayOfWeek[] daysOfWeek) { var currentDay = startTime.Date; SelectListGroup group = null; while (true) { if (currentDay.DayOfWeek == DayOfWeek.Sunday || group == null) { var beginningOfWeek = DateTimeHelper.GetBeginningOfWeek(currentDay); group = new SelectListGroup { Name = beginningOfWeek.ToString("MMM-dd") }; } if (daysOfWeek.Contains(currentDay.DayOfWeek)) { var existingRoutes = string.Join(", ", ScheduleProvider.Get(currentDay, TimeSpan.FromDays(1)).Select(schedule => schedule.Route.Name)); var scheduledRoutes = string.IsNullOrEmpty(existingRoutes) ? string.Empty : $" - ({existingRoutes})"; yield return(new SelectListItem($"{currentDay:dddd M-d}{scheduledRoutes}", currentDay.Date.ToString()) { Group = group }); } currentDay = currentDay.AddDays(1); } }
public async Task <IViewComponentResult> InvokeAsync(DateTime dateTime) { var beginningOfWeek = DateTimeHelper.GetBeginningOfWeek(DateTime.Now); return(View( new WeeklySchedule( beginningOfWeek, _scheduleProvider.Get(beginningOfWeek, TimeSpan.FromDays(7))))); }