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));
        }
示例#2
0
        public List <ClassTypeDto> GetClassTypeDtos()
        {
            var dtos = _classTypeReader.GetAllActiveClassTypes().ToList();

            return(dtos);
        }