public AppFlowMetadata(string clientId, string secret, Gc2LtiDbContext context) { Flow = new GoogleAuthorizationCodeFlow(new GoogleAuthorizationCodeFlow.Initializer { ClientSecrets = new ClientSecrets { ClientId = clientId, ClientSecret = secret }, Scopes = new[] { //========================================================================= // HomeController creates the assignment. // Gc2LtiController launches the assignment (the LTI tool). // OutcomesController saves the grade. //========================================================================= // https://developers.google.com/classroom/reference/rest/v1/courses/list // While sharing to classroom, get the list of the current user's courses // so they can choose which one gets the assignment. // https://developers.google.com/classroom/reference/rest/v1/courses/get // While sharing to classroom, get the course so it's name can be displayed // in the share to classroom confirmation, and so a View button can be // constructed that displays the course with the assignment. And while // launching the assignment, get the course so it's id and name can be // passed to the LTI tool. ClassroomService.Scope.ClassroomCoursesReadonly, // https://developers.google.com/classroom/reference/rest/v1/userProfiles/get // While sharing to classroom, get the current user's profile so their name // can be displayed in the share to classroom dialog (as a reminder of which // account is signed on). And while launching the assignment, get the user's // profile so their id, email, names, and photo can be passed to the LTI tool. // https://developers.google.com/classroom/reference/rest/v1/courses.teachers/get // While launching the assignment, find out if the current user is one of the // teachers of the course so the role can be passed to the LTI tool. ClassroomService.Scope.ClassroomRostersReadonly, ClassroomService.Scope.ClassroomProfileEmails, ClassroomService.Scope.ClassroomProfilePhotos, // https://developers.google.com/classroom/reference/rest/v1/courses.courseWork/create // While sharing to classroom, create the assignment. // https://developers.google.com/classroom/reference/rest/v1/courses.courseWork.studentSubmissions/patch // While saving a grade, patch the studentsubmission. ClassroomService.Scope.ClassroomCourseworkStudents, // https://developers.google.com/classroom/reference/rest/v1/courses.courseWork/get // While saving a grade, get the coursework (assignment). // https://developers.google.com/classroom/reference/rest/v1/courses.courseWork.studentSubmissions/list // While saving a grade, get the studentsubmission for the assignment. ClassroomService.Scope.ClassroomCourseworkStudentsReadonly, // https://developers.google.com/classroom/reference/rest/v1/courses.courseWork/list // While launching the assignment, get the corresponding coursework id, title, and // description so it can be passed to the LTI tool. ClassroomService.Scope.ClassroomCourseworkMeReadonly, // https://developers.google.com/admin-sdk/directory/v1/reference/users/get // While launching the assignment, get the current user's directory entry so // their SIS ID and organization (school) can be passed to the LTI tool. DirectoryService.Scope.AdminDirectoryUserReadonly, }, DataStore = new EfDataStore(context) }); }
public EfDataStore(Gc2LtiDbContext context) { _context = context; }