예제 #1
0
        public static void EliminarCurso()
        {
            Program.ImprimirNegativo("Eliminar Curso");
            Console.WriteLine("Seleccione el NRC del curso a eliminar:");

            ImprimirCursos();


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

            string option = "";

            while (!listadoNRC.Contains(option))
            {
                Console.Write("NRC:> ");
                option = Console.ReadLine();
            }

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

            Aplicacion.cursos.Remove(curso);
            Program.ImprimirPositivo($"Curso {curso.nombre} removido exitosamente!");
            Console.WriteLine("Presione cualquier tecla para continuar...");
            Console.ReadKey();

            return;
        }
예제 #2
0
 public static void ImprimirCursos()
 {
     foreach (CursoCurricular curso in Aplicacion.GetCursoCurricular())
     {
         Console.WriteLine($"NRC: {curso.nrc}, Nombre: {curso.nombre}");
     }
     return;
 }
예제 #3
0
        public static void CrearCursoCurricular()
        {
            Console.Clear();

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

            Console.Write("NRC:> ");
            string nrc = Console.ReadLine();

            if (listadoNRC.Contains(nrc))
            {
                do
                {
                    Program.ImprimirNegativo("Ese NRC ya existe");
                    Console.Write("Ingrese otro NRC:> ");
                    nrc = Console.ReadLine();
                } while (listadoNRC.Contains(nrc));
            }

            Console.Write("Nombre: ");
            string nombre = Console.ReadLine();

            Console.Write("Profesor: ");
            string profesor = Console.ReadLine();

            Console.Write("Creditos: ");
            int creditos = Convert.ToInt32(Console.ReadLine());

            Console.Write("Especialidad:\n");
            for (int i = 0; i <= 5; i++)
            {
                Console.WriteLine(i + 1 + ". " + Enum.GetName(typeof(Especialidad), i));
            }
            Especialidad especialidad = (Especialidad)Program.ChequearOpcion(1, 6);

            List <Evento> listaEventos    = new List <Evento>();
            int           quiereAgregarEv = 1;

            while (quiereAgregarEv == 1)
            {
                listaEventos.AddRange(CrearEventoMati(listaEventos));
                Console.WriteLine("¿Quiere agregar otro evento?\n" +
                                  "1. Si\n" +
                                  "2. No ");
                int opcion = Program.ChequearOpcion(1, 2);
                if (opcion == 2)
                {
                    quiereAgregarEv = 2;
                }
            }
            Program.ImprimirPositivo("Curso agregado");



            Aplicacion.AñadirCurso(new CursoCurricular(nrc, creditos, new List <CursoCurricular>(), especialidad, listaEventos, nombre, profesor, TipoCurso.Curricular));
            Console.Write("Presione una tecla para continuar");
            Console.ReadKey();
        }
예제 #4
0
        public static bool CrearCursoCurricular(string nrc, string nombreCurso, string profesor, int creditos, Especialidad especialidad, List <Evento> eventosCurso)
        {
            List <string> listadoNRC = Aplicacion.GetCursoCurricular().Select(x => x.nrc).ToList();

            if (listadoNRC.Contains(nrc))
            {
                return(false);
            }
            CursoCurricular c = Aplicacion.cursos[3];

            Aplicacion.AñadirCurso(new CursoCurricular(nrc, creditos, new List <string>(), especialidad, eventosCurso, nombreCurso.ToUpper(), profesor, TipoCurso.Curricular));
            return(true);
        }
예제 #5
0
        public static void LeerCurso()
        {
LeerCurso:
            Console.Clear();
            Program.ImprimirBanner("Leer Curso");
            ImprimirCursos();
            Console.WriteLine("\nSeleccione El NRC del curso que desea leer: ");
            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);

            Console.Clear();
            Console.WriteLine($"NRC: {curso.nrc}\nNombre: {curso.nombre}\n" +
                              $"Creditos: {curso.creditos}\nProfesor: {curso.profesor}\nEventos:\n");

            foreach (Evento evento in curso.eventosCurso)
            {
                Console.WriteLine($"\t{evento.nombre} [{evento.tipo.ToString()}] hora:{evento.hora} fecha:{evento.fecha}");
            }

            Console.Write("\n¿Leer Otro Curso?\n" +
                          "1. Si\n" +
                          "2. No\n:> ");
            int opcion = Program.ChequearOpcion(1, 2);

            if (opcion == 1)
            {
                goto LeerCurso;
            }
            if (opcion == 2)
            {
                Console.Clear(); return;
            }
            else
            {
                return;
            }
        }
예제 #6
0
        public static bool ActualizarCurso(string nrc, string parametro, object cambio)
        {
            CursoCurricular curso = Aplicacion.GetCursoCurricular().Find(x => x.nrc == nrc);

            if (parametro == "nrc")
            {
                foreach (CursoCurricular c in Aplicacion.GetCursoCurricular())
                {
                    if (c.nrc == cambio.ToString())
                    {
                        MessageBox.Show("Ese NRC ya existe");
                        return(false);
                    }
                }
                curso.nrc = cambio.ToString();
            }

            else if (parametro == "nombre")
            {
                curso.nombre = cambio.ToString();
            }

            else if (parametro == "creditos")
            {
                curso.creditos = Int32.Parse(cambio.ToString());
            }

            else if (parametro == "especialidad")
            {
                curso.especialidad = (Especialidad)Enum.Parse(typeof(Especialidad), cambio.ToString());
            }

            else if (parametro == "profesor")
            {
                curso.profesor = cambio.ToString();
            }
            return(true);
        }
예제 #7
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);
        }