public async Task <HomeIndexViewModel> BuildIndexViewModel() { var allUpcomingClasses = _scheduledClassReader.GetAllScheduledClasses(); var nextThreeUpcomingClasses = allUpcomingClasses.Where(t => t.ClassStartTime > DateTime.UtcNow) .OrderBy(x => x.ClassStartTime).Take(2).ToList(); var allClassTypes = _classTypeReader.GetAllClassTypes(); var threeUpcomingClassTypes = allClassTypes.Where(x => nextThreeUpcomingClasses.Select(u => u.ClassTypeName).Contains(x.Name)).ToList(); var upcomingClassViewModels = nextThreeUpcomingClasses.Select(x => new UpcomingClassViewModel() { ClassTypeName = x.ClassTypeName, ClassTypeId = allClassTypes.FirstOrDefault(u => u.Name == x.ClassTypeName).Id, NextScheduledClassStartTime = $"{x.ClassStartTime.DayOfWeek} {x.ClassStartTime.ToShortTimeString()}" }).ToList(); var viewModel = new HomeIndexViewModel() { UpcomingClasses = upcomingClassViewModels }; return(await Task.FromResult(viewModel)); }
public async Task <IList <ClassTypeDto> > GetAllClassTypes() { var result = _classTypeReader.GetAllClassTypes(); return(await Task.FromResult(result)); }