public static async Task <CourseRegistration> CreateAsync(Course newCourse, User user, ICourseRegistrationPolicy registrationPolicy) { await registrationPolicy.CheckRegistrationAttemptAsync(newCourse, user); return(new CourseRegistration { TenantId = newCourse.TenantId, CourseId = newCourse.Id, Course = newCourse, UserId = user.Id, User = user }); }