public async Task <dynamic> GetWithAllInfoById(int id) { var course = await courseRepository.GetWithAllInfoById(id); if (course == null) { return(null); } dynamic dynamicCourse = new ExpandoObject(); dynamicCourse.id = course.Id; dynamicCourse.price = course.Price; dynamicCourse.name = course.Name; dynamicCourse.imageUrl = course.ImageUrl; dynamicCourse.lastUpdated = course.LastUpdated; dynamicCourse.statusId = course.StatusId; dynamicCourse.status = course.Status.Name; dynamicCourse.categoryId = course.CategoryId; dynamicCourse.categoryName = course.Category.Name; dynamicCourse.categoryTypeId = course.Category.CategoryTypeId; dynamicCourse.categoryTypeName = course.Category.CategoryType.Name; dynamicCourse.discount = course.Discount; dynamicCourse.shortDiscription = course.ShortDiscription; dynamicCourse.detailDiscription = course.DetailDiscription; dynamicCourse.lecturerId = course.LecturerId; dynamicCourse.lecturer = await userRepository.GetById(course.LecturerId); dynamicCourse.rating = await feedbackRepository.GetRatingByCourseId(course.Id); dynamicCourse.reviewerNumber = await feedbackRepository.GetReviewerNumberByCourseId(course.Id); dynamicCourse.registeredNumber = await studentCourseRepository.GetRegisteredNumberByCourseId(course.Id); dynamicCourse.viewNumber = await viewRepository.GetViewNumberByCourseId(course.Id); dynamicCourse.lectures = await lectureRepository.GetLectureListByCourseId(course.Id); return(dynamicCourse); }