-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathEstudianteController.cpp
130 lines (112 loc) · 4.31 KB
/
EstudianteController.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#include "EstudianteController.h"
#include "OfertaLaboralController.h"
#include "IOfertaLaboralController.h"
#include "OfertaLaboral.h"
#include "ManejadorEstudiante.h"
EstudianteController* EstudianteController::instance = NULL;
EstudianteController::EstudianteController()
{
//constructor
}
EstudianteController* EstudianteController::getInstance()
{
if (instance==NULL)
instance = new EstudianteController;
return instance;
}
IDictionary* EstudianteController::ListarEstudiantesNoInscriptos()
{
OfertaLaboralController* olc = OfertaLaboralController::getInstance();
string numExpe = olc->getOfertaLaboral()->getNumExpediente();
ManejadorEstudiante *me = ManejadorEstudiante::getInstance();
IDictionary *estNoInsc = me->getEstNoInscriptos(numExpe);
if (estNoInsc == NULL)
throw "No existe un Estudiante no Inscripto a la Oferta Seleccionada";
return estNoInsc;
}
IDictionary* EstudianteController::ListarEstudiantesInscriptosEnOferta()
{
OfertaLaboralController* olc = OfertaLaboralController::getInstance();
string numExpe = olc->getOfertaLaboral()->getNumExpediente();
ManejadorEstudiante *me = ManejadorEstudiante::getInstance();
IDictionary* studentsInsc = me->getEstInscriptosEnOferta(numExpe);
return studentsInsc;
}
void EstudianteController::SeleccionarEstudiante(string cedula, IDictionary *estudiantesValidos)
{
ManejadorEstudiante *me = ManejadorEstudiante::getInstance();
String* ci = new String(cedula.c_str());
if(! (estudiantesValidos->member(ci)))
throw "La cedula es invalida.";
this->estudiante = me->SeleccionarEstudiante(cedula);
}
DataDatosEstudiante* EstudianteController::ConsultarDatosEstudiante(string cedula)
{
ManejadorEstudiante *me = ManejadorEstudiante::getInstance();
String* ci = new String(cedula.c_str());
if(! (me->getEstudiantes()->member(ci)))
throw "La cedula es invalida.";
Estudiante *e = me->SeleccionarEstudiante(cedula);
return (e->getDataDatosEstudiante());
}
IDictionary* EstudianteController::ListarEstudiantesRegistrados()
{
ManejadorEstudiante *me = ManejadorEstudiante::getInstance();
IDictionary *estudiantes = me->getEstudiante();
if (estudiantes->isEmpty())
throw "EstudianteController -> No hay estudiantes registrados en el Sistema.";
return estudiantes;
}
Estudiante* EstudianteController::getEstudiante()
{
if (this->estudiante == NULL)
throw "No hay ningun estudiante recordado en el sistema";
return this->estudiante;
}
void EstudianteController::ModificarEstudiante(string cedula, string nombre, string apellido, string telefono, Date *fechaNacimiento, int creditos, string email, ICollection *aprobacionesAAgregar, IDictionary *asignaturasAEliminar, IDictionary *carrerasAAgregar, IDictionary *carrerasAEliminar)
{
ManejadorEstudiante *me = ManejadorEstudiante::getInstance();
me->ModificarEstudiante(cedula, nombre, apellido, telefono, fechaNacimiento, creditos, email, aprobacionesAAgregar, asignaturasAEliminar, carrerasAAgregar, carrerasAEliminar);
}
IDictionary* EstudianteController::getAsignaturas()
{
ManejadorEstudiante *me = ManejadorEstudiante::getInstance();
IDictionary* asigs = me->getAsignaturas();
if (asigs == NULL)
throw "No hay asignaturas registradas en el Sistema.";
return asigs;
}
IDictionary* EstudianteController::getCarreras()
{
ManejadorEstudiante *me = ManejadorEstudiante::getInstance();
IDictionary* carrs = me->getCarreras();
if (carrs == NULL)
throw "No hay carreras registradas en el Sistema.";
return carrs;
}
IDictionary* EstudianteController::getEstudiantes()
{
ManejadorEstudiante* me = ManejadorEstudiante::getInstance();
IDictionary* students = me->getEstudiantes();
if (students == NULL)
throw "No hay estudiantes registrados en el Sistema.";
return students;
}
bool EstudianteController::EstudianteCumpleRequisitos(Estudiante* student, IDictionary* asignaturasOferta)
{
ManejadorEstudiante* me = ManejadorEstudiante::getInstance();
bool cumple = me->EstudianteCumpleRequisitos(student, asignaturasOferta);
return cumple;
}
void EstudianteController::destroyEstudianteController()
{
if (instance != NULL)
{
delete instance;
instance = NULL;
}
}
EstudianteController::~EstudianteController()
{
//dtor
}