Example #1
0
        static void ShowExamManagementMenu()
        {
            int  option  = 0;
            bool looping = true;

            while (looping)
            {
                Console.WriteLine("Elige una opción de las siguientes: ");

                Console.WriteLine("1. Crear Examen.");
                Console.WriteLine("2. Mostrar Examen.");
                Console.WriteLine("3. Modificar Examen.");
                Console.WriteLine("4. Borrar Examen.");

                Console.WriteLine("5. Volver al Menú principal.");
                option = Input.InputInt();
                if (option == 1)
                {
                    #region Input FInalMArk
                    Console.WriteLine("Escribe la nota del examen");
                    string inputFinalmark = Console.ReadLine();

                    ValidationResult <double> valResultFinalMark = Exam.ValidateFinalMark(inputFinalmark);

                    while (!valResultFinalMark.ValidationSuccesful)
                    {
                        foreach (var msg in valResultFinalMark.Messages)
                        {
                            Console.WriteLine(msg);
                        }
                        inputFinalmark     = Console.ReadLine();
                        valResultFinalMark = Exam.ValidateFinalMark(inputFinalmark);
                    }
                    #endregion



                    #region Input StudentDNi
                    Console.WriteLine("Escribe el dni del alumno que ha realizado ele xamen");
                    string inputStudentDni = Console.ReadLine();

                    ValidationResult <Student> valResultStudent = Exam.ValidateStudent(inputStudentDni);

                    while (!valResultStudent.ValidationSuccesful)
                    {
                        foreach (var msg in valResultStudent.Messages)
                        {
                            Console.WriteLine(msg);
                        }
                        inputStudentDni  = Console.ReadLine();
                        valResultStudent = Exam.ValidateStudent(inputStudentDni);
                    }
                    #endregion

                    #region Input SubjectName
                    Console.WriteLine("Escribe el el nombre de la asignatura dele xamen");
                    string inputSubjectName = Console.ReadLine();

                    ValidationResult <Subject> valResultSubject = Exam.ValidateSubject(inputSubjectName);

                    while (!valResultSubject.ValidationSuccesful)
                    {
                        foreach (var msg in valResultSubject.Messages)
                        {
                            Console.WriteLine(msg);
                        }
                        inputStudentDni  = Console.ReadLine();
                        valResultSubject = Exam.ValidateSubject(inputSubjectName);
                    }
                    #endregion

                    #region Input Title
                    Console.WriteLine("Escribe el título de este examen. Ejemplo: AA1. El formato final será: DNIAlumno_SubjectNAme_Titulo");
                    string inputTitle = Console.ReadLine();

                    ValidationResult <String> valResultTitle = Exam.ValidateTitle(inputStudentDni + "_" + inputSubjectName + "_" + inputTitle);

                    while (!valResultTitle.ValidationSuccesful)
                    {
                        foreach (var msg in valResultTitle.Messages)
                        {
                            Console.WriteLine(msg);
                        }
                        inputTitle     = Console.ReadLine();
                        valResultTitle = Exam.ValidateTitle(inputTitle);
                    }
                    #endregion

                    if (valResultStudent.ValidationSuccesful && valResultFinalMark.ValidationSuccesful && valResultSubject.ValidationSuccesful && valResultTitle.ValidationSuccesful)
                    {
                        var exam = new Exam(valResultFinalMark.ValidatedResult, valResultStudent.ValidatedResult, valResultSubject.ValidatedResult, valResultTitle.ValidatedResult);

                        var er = exam.Save <Exam>();
                        if (er.SaveValidationSuccesful)
                        {
                            Console.WriteLine("Guardado!");
                        }
                        else
                        {
                            Console.WriteLine("Asgnatrua no guardada debido a errores.");
                        }
                    }
                }
                else if (option == 2)
                {
                    Console.Clear();
                    Console.WriteLine("Escribe el título del examen");
                    string examTitle = Console.ReadLine();


                    IEnumerable <Exam> ex = ExamRepository.GetExamByTitle(examTitle);

                    foreach (Exam exam in ex)
                    {
                        Console.WriteLine("Nota Final:" + exam.FinalMark + " en el examen con el siguiente comentario:" + exam.Title);
                    }
                }
                else if (option == 3)
                {
                    Console.WriteLine("Escribe el dni de alumno");
                    string studentDni = Console.ReadLine();
                    Console.WriteLine("Escribe el título del examen");
                    string examName = Console.ReadLine();
                    Console.WriteLine("Escribe el nombre de la asignatura que quieras buscar");
                    string subjectname = Console.ReadLine();

                    if (ExamRepository.ExamByTitle.ContainsKey(studentDni + "_" + subjectname + "_" + examName))
                    {
                        Exam examClone = ExamRepository.ExamByTitle[studentDni + "_" + subjectname + "_" + examName];
                        examClone.Id = ExamRepository.ExamByTitle[studentDni + "_" + subjectname + "_" + examName].Id;

                        #region Input FInalMArk
                        Console.WriteLine("Escribe la nota del examen");
                        string inputFinalmark = Console.ReadLine();

                        ValidationResult <double> valResultFinalMark = Exam.ValidateFinalMark(inputFinalmark);

                        while (!valResultFinalMark.ValidationSuccesful)
                        {
                            foreach (var msg in valResultFinalMark.Messages)
                            {
                                Console.WriteLine(msg);
                            }
                            inputFinalmark     = Console.ReadLine();
                            valResultFinalMark = Exam.ValidateFinalMark(inputFinalmark);
                        }
                        #endregion

                        #region Input Title
                        Console.WriteLine("Escribe un título para el examen.");
                        string inputTitle = Console.ReadLine();

                        ValidationResult <String> valResultTitle = Exam.ValidateTitle(inputTitle);

                        while (!valResultTitle.ValidationSuccesful)
                        {
                            foreach (var msg in valResultTitle.Messages)
                            {
                                Console.WriteLine(msg);
                            }
                            inputTitle     = Console.ReadLine();
                            valResultTitle = Exam.ValidateTitle(inputTitle);
                        }
                        #endregion

                        #region Input StudentDNi
                        Console.WriteLine("Escribe el dni del alumno que ha realizado ele xamen");
                        string inputStudentDni = Console.ReadLine();

                        ValidationResult <Student> valResultStudent = Exam.ValidateStudent(inputStudentDni);

                        while (!valResultStudent.ValidationSuccesful)
                        {
                            foreach (var msg in valResultStudent.Messages)
                            {
                                Console.WriteLine(msg);
                            }
                            inputStudentDni  = Console.ReadLine();
                            valResultStudent = Exam.ValidateStudent(inputStudentDni);
                        }
                        #endregion

                        #region Input SubjectName
                        Console.WriteLine("Escribe el el nombre de la asignatura dele xamen");
                        string inputSubjectName = Console.ReadLine();

                        ValidationResult <Subject> valResultSubject = Exam.ValidateSubject(inputSubjectName);

                        while (!valResultSubject.ValidationSuccesful)
                        {
                            foreach (var msg in valResultSubject.Messages)
                            {
                                Console.WriteLine(msg);
                            }
                            inputStudentDni  = Console.ReadLine();
                            valResultSubject = Exam.ValidateSubject(inputSubjectName);
                        }
                        #endregion

                        if (valResultStudent.ValidationSuccesful && valResultFinalMark.ValidationSuccesful && valResultSubject.ValidationSuccesful && valResultTitle.ValidationSuccesful)
                        {
                            examClone.FinalMark = valResultFinalMark.ValidatedResult;
                            examClone.Title     = valResultTitle.ValidatedResult;
                            examClone.Student   = valResultStudent.ValidatedResult;
                            examClone.Subject   = valResultSubject.ValidatedResult;

                            var er = examClone.Save <Exam>();
                            if (er.SaveValidationSuccesful)
                            {
                                Console.WriteLine("Guardado!");
                            }
                            else
                            {
                                Console.WriteLine("Asgnatrua no guardada debido a errores.");
                            }
                        }
                    }
                }
                else if (option == 4)
                {
                    //TODO DeleteExam()
                }

                else
                {
                    looping = false;
                    break;
                }
            }
        }
Example #2
0
        public override Repository <T> GetRepo <T>()
        {
            var output = new ExamRepository();

            return(output as Repository <T>);
        }