Esempio n. 1
0
        public void GradeStudent()
        {
            Console.Clear();
            Console.WriteLine("Asistente de calificaciones");
            Console.WriteLine("---------------------------");
            Console.WriteLine("");

            var subjects = SubjectSrv.GetAllSubjects();

            if (subjects.Count() == 0)
            {
                Console.WriteLine("No hay cursos registrados en el sistema");
                return;
            }

            Console.WriteLine("Materias disponibles");
            Console.WriteLine("");
            ConsolePrompts.PrintListWithIndices(subjects.Select(s => s.Name));

            Console.WriteLine("");
            var option = ConsolePrompts.ReadNumberUntilValid(
                prompt: "Numero de la materia deseada",
                min: 1,
                max: subjects.Count());

            var subject  = subjects.ElementAt(option - 1);
            var students = StudentSrv.GetStudentsEnrolledInSubject(subject.Id);

            Console.WriteLine("");

            if (students.Count() == 0)
            {
                Console.WriteLine($"No hay estudiantes inscriptos a {subject.Name}");
                return;
            }

            Console.WriteLine("Estudiantes inscriptos");
            Console.WriteLine("");
            ConsolePrompts.PrintListWithIndices(students.Select(s => $"{s.LastName}, {s.FirstName} [{s.Id}]"));

            Console.WriteLine("");
            option = ConsolePrompts.ReadNumberUntilValid(
                prompt: "Numero del estudiante",
                min: 1,
                max: subjects.Count());

            var student = students.ElementAt(option - 1);

            Console.WriteLine("");
            var grade = ConsolePrompts.ReadNumberUntilValid(
                prompt: "Nota",
                min: 1,
                max: 100);

            StudentSrv.GradeStudent(student.Id, subject.Id, grade);
            Srv.SendNotification(student.Id, $"Has recibido una calificacion! Sacaste {grade} en {subject.Name}");
            Console.WriteLine("");
            Console.WriteLine($"Se notifico a {student.LastName}, {student.FirstName} que su nota para {subject.Name} fue {grade}");
        }