/// <summary> /// Obtiene la lista de todos los cursos del cliente http /// </summary> /// <returns></returns> private async Task GetAllCourses() { try { courses = await CourseHttpService.GetAll(); } catch (ServerErrorException ex) { new CustomErrorMessageWindow(ex.Message).ShowDialog(); } }
/// <summary> /// Evento al pulsar asignar /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void ButtonAssign_Click(object sender, EventArgs e) { if (this.dgvSubjects.SelectedRows[0].Cells[0].Value != null) { //Recupera el id de la asignatura seleccionada int selectedId = (int)this.dgvSubjects .SelectedRows[0].Cells[0].Value; //Recupera la asignatura Subject subject = subjects.FirstOrDefault(s => s.Id == selectedId); try { //Agrega la asignatura al curso await CourseHttpService.AssignSubject(_course.Id, selectedId); string name = (string)this.dgvSubjects .SelectedRows[0].Cells[1].Value; string message = string.Format("Se ha añadidio la asignatura {0} a {1}º de {2}.", name, _course.Year, _cycleName); CustomSuccesMessageWindow dialog = new CustomSuccesMessageWindow(message); dialog.ShowDialog(); this.OnSubjectAddedDelegate(subject);//Callback con la asignatura añadida this.Close(); } catch (ServerErrorException ex) { new CustomErrorMessageWindow(ex.Message).ShowDialog(); } } else { new CustomErrorMessageWindow("Debes seleccionar una asignatura antes.") .ShowDialog(); } }
/// <summary> /// Evento al pulsar el botón Retirar asignatura del primer curso: /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private async void ButtonRemoveSubject1_Click(object sender, EventArgs e) { if (this.dgvSubjects.Rows.Count > 0 && this.dgvSubjects.SelectedRows[0].Cells[0].Value != null) { try { //Recupera el Id de la asignatura seleccionada int selectedId = int .Parse(this.dgvSubjects .SelectedRows[0].Cells[0].Value.ToString()); //Recupero la asignatura de la lista de asignaturas del curso Subject subject = selectedCourse.Subjects .FirstOrDefault(s => s.Id == selectedId); //Abre dialogo de confirmación string message = string. Format("Si retiras la asignatura {0} de {1}º de {2}, " + "se cancelarán todas las clases, " + "¿Estás seguro de querer retirarla? ", subject.Name, selectedCourse.Year, selectedCycle.Name); CustomConfirmDialogForm dialog = new CustomConfirmDialogForm(message); dialog.ShowDialog(); //Si se confirma se retira la asignatura if (dialog.Confirmed) { //Envio el curso copiado al servicio http y este retorna //el curso modificado por el servidor await CourseHttpService .RemoveAssignedSubject(selectedCourse.Id, selectedId); //Borro la asignatura del curso selectedCourse.Subjects.Remove(subject); //Refresca la tabla de asignaturas del primer curso this.PopulateSubjectsTable(); //Ventanita con mensaje de éxito message = string.Format("La asignatura {0} ha sido " + "retirada de {1}º de {2}", subject.Name, selectedCourse.Year, selectedCycle.Name); new CustomSuccesMessageWindow(message).ShowDialog(); } } catch (ServerErrorException ex) { //Ventanita de mensaje de error devuelto por el servidor new CustomErrorMessageWindow(ex.Message).ShowDialog(); } } else { new CustomErrorMessageWindow("Debes seleccionar una asignatura antes.") .ShowDialog(); } }