private void BtnCargarAdjuntos_Click(object sender, EventArgs e) { string idcourse = this.DtGVClases.SelectedRows[0].Cells["ClnIdCourse"].Value.ToString(); string idwork = this.DtGVTareas.SelectedRows[0].Cells["ClnIdTarea"].Value.ToString(); string idestudiante = this.DtGVAlumnos.SelectedRows[0].Cells["ClnIdStudent"].Value.ToString(); DtGVAdjuntos.Rows.Clear(); UserCredential credential; using (var stream = new FileStream("credentials-p4.json", FileMode.Open, FileAccess.Read)) { // The file token.json stores the user's access and refresh tokens, and is created // automatically when the authorization flow completes for the first time. string credPath = "token.json"; credential = GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(stream).Secrets, Scopes, "user", CancellationToken.None, new FileDataStore(credPath, true)).Result; Console.WriteLine("Credential file saved to: " + credPath); } //Servicio // Create Classroom API service. var service = new ClassroomService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = ApplicationName, }); CoursesResource.CourseWorkResource.StudentSubmissionsResource.ListRequest request3 = service.Courses.CourseWork.StudentSubmissions.List(idcourse, idwork); //request3.PageSize = 40; request3.UserId = idestudiante; ListStudentSubmissionsResponse response3 = request3.Execute(); Console.WriteLine("---"); Console.WriteLine("Envíos:"); if (response3.StudentSubmissions != null && response3.StudentSubmissions.Count > 0) { foreach (var envio in response3.StudentSubmissions) { //Console.WriteLine("{0} / {1}", trabajo.Id, trabajo.Description); Console.WriteLine("{0} / {1} / {2}", envio.Id, envio.UpdateTime, envio.UserId); this.TxtBoxDatosEnvío.Text = "Id Envío: " + envio.Id + Environment.NewLine; this.TxtBoxDatosEnvío.Text += "Fecha Envío: " + envio.UpdateTime + Environment.NewLine; this.TxtBoxDatosEnvío.Text += "Estado: " + envio.State + Environment.NewLine; this.TxtBoxDatosEnvío.Text += "Borrador: " + envio.DraftGrade + Environment.NewLine; this.TxtBoxDatosEnvío.Text += "Id Usuario: " + envio.UserId; if (envio.AssignmentSubmission != null) { if (envio.AssignmentSubmission.Attachments != null && envio.AssignmentSubmission.Attachments.Count > 0) { Console.WriteLine("- Adjuntos -"); foreach (var adjunto in envio.AssignmentSubmission.Attachments) { Console.WriteLine(" - Enlace - {0}", adjunto.DriveFile.AlternateLink); Console.WriteLine(" - Fichero - {0}", adjunto.DriveFile.Title); Console.WriteLine(" - Id - {0}", adjunto.DriveFile.Id); //Console.WriteLine(" - Id - {0}", adjunto.); this.DtGVAdjuntos.Rows.Add(adjunto.DriveFile.Id, adjunto.DriveFile.Title, adjunto.DriveFile.AlternateLink, "-"); } } else { this.TxtBoxDatosEnvío.Text += Environment.NewLine + "No hay adjuntos"; } } else { this.TxtBoxDatosEnvío.Text += Environment.NewLine + "No hay información"; } } } }
private static async Task <ListStudentSubmissionsResponse> DescargarClsEnvíosAPI(CoursesResource.CourseWorkResource.StudentSubmissionsResource.ListRequest solicitud) { //respuesta = await solicitud.Execute(); //return 1; Console.WriteLine("Subproceso asíncrono para obtener listado de envíos"); //ListStudentsResponse r = new ListStudentsResponse(); ListStudentSubmissionsResponse r = await solicitud.ExecuteAsync(); return(r); }
public static async Task CargarDatosIniciales(object sender, EventArgs e) { UserCredential credential; using (var stream = new FileStream("credentials-p4.json", FileMode.Open, FileAccess.Read)) { // The file token.json stores the user's access and refresh tokens, and is created // automatically when the authorization flow completes for the first time. string credPath = "token.json"; credential = GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(stream).Secrets, Scopes, "user", CancellationToken.None, new FileDataStore(credPath, true)).Result; Console.WriteLine("Credential file saved to: " + credPath); } //Servicio // Create Classroom API service. var service = new ClassroomService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = ApplicationName, }); //1. Obtenemos los alumnos y los envíos de manera asíncrona CoursesResource.StudentsResource.ListRequest request = service.Courses.Students.List(_idcurso); CoursesResource.CourseWorkResource.StudentSubmissionsResource.ListRequest request2 = service.Courses.CourseWork.StudentSubmissions.List(_idcurso, _idtarea); var TareaClsAPi = DescargarClsAPI(request); var TareaEnvíosAPI = DescargarClsEnvíosAPI(request2); var todasTareas = new List <Task> { TareaEnvíosAPI, TareaClsAPi }; while (todasTareas.Count > 0) { Task finishedTask = await Task.WhenAny(todasTareas); if (finishedTask == TareaEnvíosAPI) { /*frmppal.toolStripProgressBar2.ProgressBar.Style = ProgressBarStyle.Continuous; * frmppal.toolStripProgressBar2.ProgressBar.Value = frmppal.toolStripProgressBar2.ProgressBar.Maximum;*/ } else if (finishedTask == TareaClsAPi) { /*frmppal.toolStripProgressBar3.ProgressBar.Style = ProgressBarStyle.Continuous; * frmppal.toolStripProgressBar3.ProgressBar.Value = frmppal.toolStripProgressBar2.ProgressBar.Maximum;*/ } todasTareas.Remove(finishedTask); } ListStudentsResponse resp_lista_estudiantes = TareaClsAPi.Result; var lista_estudiantes = resp_lista_estudiantes.Students; ListStudentSubmissionsResponse resp_lista_envíos = TareaEnvíosAPI.Result; var lista_envíos = resp_lista_envíos.StudentSubmissions; //MessageBox.Show(r.ToString()); //2. Por cada envío, sus adjuntos, y almacenamos esa información en un diccionario de envíos if (lista_envíos != null && lista_envíos.Count > 0) { foreach (var envio in lista_envíos) { //Console.WriteLine("{0} / {1}", trabajo.Id, trabajo.Description); Console.WriteLine("{0} / {1} / {2}", envio.Id, envio.UpdateTime, envio.UserId); /*this.TxtBoxDatosEnvío.Text = "Id Envío: " + envio.Id + Environment.NewLine; * this.TxtBoxDatosEnvío.Text += "Fecha Envío: " + envio.UpdateTime + Environment.NewLine; * this.TxtBoxDatosEnvío.Text += "Estado: " + envio.State + Environment.NewLine; * this.TxtBoxDatosEnvío.Text += "Borrador: " + envio.DraftGrade + Environment.NewLine; * this.TxtBoxDatosEnvío.Text += "Id Usuario: " + envio.UserId;*/ _envíos.Add(envio.UserId, envio); /*if (envio.AssignmentSubmission != null) * { * if (envio.AssignmentSubmission.Attachments != null && envio.AssignmentSubmission.Attachments.Count > 0) * { * Console.WriteLine("- Adjuntos -"); * foreach (var adjunto in envio.AssignmentSubmission.Attachments) * { * Console.WriteLine(" - Enlace - {0}", adjunto.DriveFile.AlternateLink); * Console.WriteLine(" - Fichero - {0}", adjunto.DriveFile.Title); * Console.WriteLine(" - Id - {0}", adjunto.DriveFile.Id); * //Console.WriteLine(" - Id - {0}", adjunto.); * * //this.DtGVAdjuntos.Rows.Add(adjunto.DriveFile.Id, adjunto.DriveFile.Title, adjunto.DriveFile.AlternateLink, "-"); * * } * } * else * { * //this.TxtBoxDatosEnvío.Text += Environment.NewLine + "No hay adjuntos"; * } * } * else * { * //this.TxtBoxDatosEnvío.Text += Environment.NewLine + "No hay información"; * * * }*/ } } //3. Presentamos la información por pantalla if (lista_estudiantes != null && lista_estudiantes.Count > 0) { foreach (var estudiante in lista_estudiantes) { string estudiante_id = estudiante.UserId; string estudiante_nombre = estudiante.Profile.Name.GivenName; string estudiante_apellidos = estudiante.Profile.Name.FamilyName; string estudiante_email = estudiante.Profile.EmailAddress; Console.WriteLine("Correo electrónico: {0}", estudiante_email); Console.WriteLine("{0} / {1} / {2} / {3}", estudiante.UserId, estudiante.Profile.Name.FullName, estudiante.Profile.Name.FamilyName, estudiante.Profile.Name.GivenName); //2. Por cada alumno, obtenemos sus envíos StudentSubmission envío = _envíos[estudiante_id]; string envío_id = envío.Id; string envío_fecha = envío.UpdateTime.ToString(); string envío_estado = envío.State; string envío_retrasado = envío.Late.ToString(); int envío_n_adjuntos = 0; if (envío.AssignmentSubmission != null) { if (envío.AssignmentSubmission.Attachments != null) { envío_n_adjuntos = envío.AssignmentSubmission.Attachments.Count(); } } frmTarea.DtGVEnvíos.Rows.Add(estudiante_id, estudiante_nombre, estudiante_apellidos, envío_id, envío_fecha, envío_estado, envío_retrasado, envío_n_adjuntos, "-"); } } }
private void FrmTarea2_Load(object sender, EventArgs e) { this.Text = "Tarea: " + _titulo_tarea; UserCredential credential; using (var stream = new FileStream("credentials-p4.json", FileMode.Open, FileAccess.Read)) { // The file token.json stores the user's access and refresh tokens, and is created // automatically when the authorization flow completes for the first time. string credPath = "token.json"; credential = GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(stream).Secrets, Scopes, "user", CancellationToken.None, new FileDataStore(credPath, true)).Result; Console.WriteLine("Credential file saved to: " + credPath); } //Servicio // Create Classroom API service. var service = new ClassroomService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = ApplicationName, }); CoursesResource.StudentsResource.ListRequest request = service.Courses.Students.List(_idcurso); CoursesResource.CourseWorkResource.StudentSubmissionsResource.ListRequest request2 = service.Courses.CourseWork.StudentSubmissions.List(_idcurso, _idtarea); ListStudentsResponse resp_lista_estudiantes = request.Execute(); ListStudentSubmissionsResponse resp_lista_envíos = request2.Execute(); var lista_estudiantes = resp_lista_estudiantes.Students; var lista_envíos = resp_lista_envíos.StudentSubmissions; if (lista_envíos != null && lista_envíos.Count > 0) { foreach (var envio in lista_envíos) { Console.WriteLine("{0} / {1} / {2}", envio.Id, envio.UpdateTime, envio.UserId); _envíos.Add(envio.UserId, envio); } } if (lista_estudiantes != null && lista_estudiantes.Count > 0) { foreach (var estudiante in lista_estudiantes) { string estudiante_id = estudiante.UserId; string estudiante_nombre = estudiante.Profile.Name.GivenName; string estudiante_apellidos = estudiante.Profile.Name.FamilyName; string estudiante_email = estudiante.Profile.EmailAddress; Console.WriteLine("Correo electrónico: {0}", estudiante_email); Console.WriteLine("{0} / {1} / {2} / {3}", estudiante.UserId, estudiante.Profile.Name.FullName, estudiante.Profile.Name.FamilyName, estudiante.Profile.Name.GivenName); //2. Por cada alumno, obtenemos sus envíos StudentSubmission envío = _envíos[estudiante_id]; string envío_id = envío.Id; string envío_fecha = envío.UpdateTime.ToString(); string envío_estado = envío.State; string envío_retrasado = envío.Late.ToString(); int envío_n_adjuntos = 0; if (envío.AssignmentSubmission != null) { if (envío.AssignmentSubmission.Attachments != null) { envío_n_adjuntos = envío.AssignmentSubmission.Attachments.Count(); } } frmTarea2.DtGVEnvíos.Rows.Add(estudiante_id, estudiante_nombre, estudiante_apellidos, envío_id, envío_fecha, envío_estado, envío_retrasado, envío_n_adjuntos, "-"); } } }