public async Task <ClassTypeDetailsViewModel> BuildClassTypeViewModel(string id) { var classType = _classTypeReader.GetClassType(id); var dtos = _scheduledClassReader.GetScheduledClassesByClassType(classType.Id).Where(x => x.ClassStartTime >= DateTime.UtcNow); var topThree = dtos.OrderBy(x => x.ClassStartTime).Take(3).Select(x => new UpcomingClassesViewModel() { ScheduledClassId = x.Id, ScheduledClassStartTime = $"{x.ClassStartTime.DayOfWeek} {x.ClassStartTime.ToShortTimeString()}" }).ToList(); var classTypeDtos = _classTypeReader.GetAllActiveClassTypes().ToList(); var viewModel = new ClassTypeDetailsViewModel() { Id = classType.Id, Name = classType.Name, ClassColour = classType.ClassColour, Description = classType.Description, Difficulty = classType.Difficulty, UpcomingScheduledClasses = topThree, ImageFileName = classType.ImageFileName, ClassTypeDtos = classTypeDtos }; return(await Task.FromResult(viewModel)); }
public List <ClassTypeDto> GetClassTypeDtos() { var dtos = _classTypeReader.GetAllActiveClassTypes().ToList(); return(dtos); }