Beispiel #1
0
 static void AgregarEventoPersonal(Estudiante estudiante)
 {
     return;
 }
Beispiel #2
0
        static void InscribirCurso(Estudiante estudiante)
        {
            int quiereAgregar = 1;

            while (quiereAgregar == 1)
            {
                if (Aplicacion.GetCursoCurricular().Count == 0)
                {
                    Console.WriteLine("No hay cursos disponibles para inscribir");
                    goto SinCursosDisponiblesParaInscribir;
                }

                Console.WriteLine("Seleccione un curso para inscribir: ");
                foreach (CursoCurricular curs in Aplicacion.GetCursoCurricular())
                {
                    Console.WriteLine("NRC:{0}\nNombre: {1}\nProfesor: {2}\n", curs.nrc, curs.nombre, curs.profesor);
                }

                List <string> listadoNRC = Aplicacion.GetCursoCurricular().Select(x => x.nrc).ToList();

                string option = "";


                do
                {
                    Console.Write("NRC:> ");
                    option = Console.ReadLine();
                    if (!listadoNRC.Contains(option))
                    {
                        Program.ImprimirNegativo("NRC No Valido");
                    }
                } while (!listadoNRC.Contains(option));

                CursoCurricular curso = Aplicacion.GetCursoCurricular().Find(x => x.nrc == option);

                bool compatibilidad = ChequearCompatibilidad(estudiante, curso);
                if (estudiante.listaInscripcion.Contains(curso))
                {
                    Program.ImprimirNegativo($"El curso {curso.nombre} ya esta agregado\n");
                }
                else if (compatibilidad == false)
                {
                    Program.ImprimirNegativo($"El curso {curso.nombre} posee un tope de horario\n");
                }
                else
                {
                    estudiante.listaInscripcion.Add(curso);
                    Program.ImprimirPositivo("Curso agregado");
                    Program.Log(quiereAgregar.ToString(), "Agregar curso");
                }

                Console.WriteLine("\n¿Quiere agregar otro curso?\n" +
                                  "1. Si\n" +
                                  "2. No");
                int opcion = Program.ChequearOpcion(1, 2);
                if (opcion == 2)
                {
                    quiereAgregar = 2;
                }
            }

SinCursosDisponiblesParaInscribir:

            return;
        }
        public static Estudiante InscribirCurso(Estudiante estudiante, string cursoInscripcion)
        {
            CursoCurricular curso = Aplicacion.GetCursoCurricular().Find(x => x.nrc == cursoInscripcion);

            bool compatibilidadHorario      = ChequearCompatibilidadHorario(estudiante, curso);
            bool compatibilidadPreRequisito = ChequearCompatibilidadPreRequisito(estudiante, curso);

            bool compatibilidadEspecialidadyConcentracion = ChequearCompatibilidadEspecialidadyConcentracion(estudiante, curso);
            bool compatibilidadCantidadCreditos           = ChequearCompatibilidadCantidadCreditos(estudiante, curso);

            if (estudiante.listaInscripcion.Contains(curso))
            {
                MessageBox.Show("El Curso ya está inscrito.", "Error de Inscripción");
            }
            else
            {
                if ((compatibilidadHorario == false) || (compatibilidadPreRequisito == false) || (compatibilidadEspecialidadyConcentracion == false) || (compatibilidadCantidadCreditos == false))
                {
                    if (compatibilidadHorario == false)
                    {
                        MessageBox.Show($"El curso {curso.nombre} posee un tope de horario\n", "Error de Inscripción");
                    }
                    if (compatibilidadPreRequisito == false)
                    {
                        //MessageBox.Show($"Todavia no has aprobado cursos prerequisitos del curso {curso.nombre}", "Error de Inscripcion");
                        //MessageBox.Show($"No has aprobado {cursosNoAprobados[0]}");

                        cursosNoAprobados.Insert(0, $"Todavía no has aprobado los siguientes cursos, que son prerrequisitos de {curso.nombre}:");
                        var mensaje = string.Join(Environment.NewLine, cursosNoAprobados);
                        cursosNoAprobados.RemoveAt(0);
                        MessageBox.Show(mensaje);
                    }
                    if (compatibilidadEspecialidadyConcentracion == false)
                    {
                        MessageBox.Show($"El curso {curso.nombre} es de la especialidad {curso.especialidad}, pero tú eres de {estudiante.especialidad}, y tu concenctración tecnológica es {estudiante.concentracion}", "Error de Inscripción");
                    }
                    if (compatibilidadCantidadCreditos == false)
                    {
                        MessageBox.Show($"Al inscribir {curso.nombre} tendrías {ContarCreditos(estudiante) + curso.creditos} créditos, y no puedes exceder los 11", "Error de Inscripción");
                    }

                    //MessageBox.Show($"El curso {curso.nombre} es de la especialidad {curso.especialidad}, pero tú eres de {estudiante.especialidad}", "Error de Inscripción");
                }

                /*
                 * else if ((compatibilidadHorario == false) || (compatibilidadPreRequisito == false))
                 * {
                 *  MessageBox.Show($"No puedes inscribir el curso {curso.nombre}", "Error de Inscripcion");
                 * }
                 */

                else
                {
                    //MessageBox.Show("Agregado Exitosamente");
                    estudiante.listaInscripcion.Add(curso);
                    //cantidadCreditos += curso.creditos;
                    MessageBox.Show(curso.nombre + " inscrito con éxito");
                    MessageBox.Show($"Llevas {ContarCreditos(estudiante)} créditos");
                    return(estudiante);
                }
            }

            return(estudiante);
        }