/// <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();
     }
 }
Beispiel #2
0
        /// <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();
            }
        }