public ActionResult Create(Alumno Alumno) { if(ModelState.IsValid) { Alumno.CreationDate = Convert.ToString(DateTime.Today); if (Alumno.Sexo == "Masculino") Alumno.Sexo = "M"; else Alumno.Sexo = "F"; IRepositorio<Alumno> myRepoAlumno = new AlumnoRepositorio(); String resultado = myRepoAlumno.Save(Alumno); if (resultado.Equals("true")) return RedirectToAction("Index"); } return View(Alumno); }
public ActionResult EditProfileBasic(Alumno usuario) { IRepositorio<Alumno> repositorioAlumno = new AlumnoRepositorio(); Alumno miUsuario = repositorioAlumno.GetByUniqueAtribute(User.Identity.Name); if (string.IsNullOrWhiteSpace(miUsuario.CorreoUcab)) { ModelState.AddModelError("", "Email no puede ser vacio."); } else if (MembershipService.ChangeEmail(User.Identity.Name, miUsuario.CorreoUcab) == false) { ModelState.AddModelError("", "El email no es valido."); } if (repositorioAlumno.Update(miUsuario) != "true") { ModelState.AddModelError("", "Error al actualizar sus datos, por favor intente de nuevo."); return RedirectToAction("EditProfile"); } return RedirectToAction("Index", "Home"); }
public ActionResult Register(Alumno alumno) { if (ModelState.IsValid) { if (alumno.Password == alumno.ConfirmPassword) { IRepositorio<Direccion> repositorioDireccion = new DireccionRepositorio(); string flag = repositorioDireccion.Save(alumno.Direccion); if (flag == "true") { alumno.CreationDate = Convert.ToString(DateTime.Today); alumno.Sexo = alumno.Sexo == "Masculino" ? "M" : "F"; alumno.IdDireccion = alumno.Direccion.IdDireccion; IRepositorio<Alumno> repositorioAlumno = new AlumnoRepositorio(); string resultado = repositorioAlumno.Save(alumno); if (resultado.Equals("true")) { MembershipCreateStatus createStatus = MembershipService.CreateUser(alumno.Username, alumno.Password, alumno.CorreoUcab); if (createStatus == MembershipCreateStatus.Success) { FormsService.SignIn(alumno.Username, false /* createPersistentCookie */); return RedirectToAction("Index", "Home"); } else { ModelState.AddModelError("passOrUsername", AccountValidation.ErrorCodeToString(createStatus)); } } } } else { ModelState.AddModelError("contrasenia", "Las contraseñas no coinciden."); } } // If we got this far, something failed, redisplay form ViewData["PasswordLength"] = MembershipService.MinPasswordLength; ViewData["Pais"] = new SelectList(GetCountryList()); return View(); }
public ActionResult Register(Alumno alumno) { if (ModelState.IsValid) { if (alumno.Password == alumno.ConfirmPassword) { IRepositorio<Profesor> repositorioProfesor = new ProfesorRepositorio(); var miProfesor = repositorioProfesor.GetByUniqueAtribute(alumno.Username); IRepositorio<Alumno> repositorioAlumno = new AlumnoRepositorio(); var miAlumno = repositorioAlumno.GetByUniqueAtribute(alumno.Username); if (miProfesor == null && miAlumno == null) { MembershipCreateStatus createStatus = MembershipService.CreateUser(alumno.Username, alumno.Password, alumno.CorreoUcab); if (createStatus == MembershipCreateStatus.Success) { if (Roles.RoleExists("Estudiante")) { Roles.AddUserToRole(alumno.Username, "Estudiante"); } else { Roles.CreateRole("Estudiante"); Roles.AddUserToRole(alumno.Username, "Estudiante"); } alumno.CreationDate = DateTime.Today; alumno.Sexo = alumno.Sexo == "Masculino" ? "M" : "F"; string resultado = repositorioAlumno.Save(alumno); if (resultado.Equals("true")) { IRepositorio<ClaseEvaluacion> repositorioHorarioClase = new HorarioClaseRepositorio(); var listCronograma = repositorioHorarioClase.GetAll().Where(alum => alum.Cedula == alumno.Cedula).ToList(); IRepositorio<Actividad> repositorioActividad = new ActividadRepositorio(); var listActividades = repositorioActividad.GetAll().Where(a => a.Periodo.CompareTo(_periodoActual) == 0).ToList(); var misMaterias = (from d in listCronograma from c in listActividades where c.Tipo.CompareTo("Clase") == 0 && d.IdActividad == c.IdActividad select c.IdMateria).Distinct().ToList(); HorasPersonales(misMaterias, alumno); Session["cedula"] = repositorioAlumno.GetByUniqueAtribute(alumno.Username).Cedula; return RedirectToAction("Configuration", alumno); } else { ModelState.AddModelError("saveAlumno", "Oops! Ha ocurrido un error inesperado, vuelva a intentarlo."); } } else { ModelState.AddModelError("passOrUsername", AccountValidation.ErrorCodeToString(createStatus)); } } else { ModelState.AddModelError("passOrUsername", "Oops!! El nombre de usuario ya existe, por favor intente con otro."); } } else { ModelState.AddModelError("contrasenia", "Las contraseñas no coinciden."); } } return View(alumno); }
public ActionResult GetCedula(LogOnModel model) { if (model.Cedula != 0) { if (model.Tipo.CompareTo("Estudiante") == 0) { IRepositorio<Alumno> repositorioAlumno = new AlumnoRepositorio(); var estudiante = repositorioAlumno.GetById(model.Cedula); if (estudiante == null) { estudiante = new Alumno { Cedula = model.Cedula }; IRepositorio<SlAlumno> repositorioSLAlumno = new SlAlumnoRepositorio(); var registroEstudiante = repositorioSLAlumno.GetById(estudiante.Cedula); if (registroEstudiante != null) { estudiante.Apellido = registroEstudiante.Apellido; estudiante.Nombre = registroEstudiante.Nombre; estudiante.FechaNac = Convert.ToDateTime(registroEstudiante.FechaNac).Date; estudiante.Sexo = registroEstudiante.Sexo == "M" ? "Masculino" : "Femenino"; estudiante.CorreoUcab = registroEstudiante.CorreoUcab; estudiante.CorreoAlternativo = registroEstudiante.CorreoAlternativo; estudiante.Direccion = registroEstudiante.Direccion + ", " + registroEstudiante.Estado + ", " + registroEstudiante.Cuidad; estudiante.Password = "******"; estudiante.ConfirmPassword = "******"; return View("Register", estudiante); } } else { ModelState.AddModelError("usuarioInvalido", "El estudiante con la cedula " + estudiante.Cedula + " ya esta registrado en nuestro sistema."); return View(); } } else { IRepositorio<Profesor> repositorioProfesor = new ProfesorRepositorio(); var profesor = repositorioProfesor.GetById(model.Cedula); if (profesor == null || profesor.Username == null) { profesor = new Profesor { Cedula = model.Cedula }; IRepositorio<SlProfesor> repositorioSLProfesor = new SlProfesorRepositorio(); var registroProfesor = repositorioSLProfesor.GetById(profesor.Cedula); if (registroProfesor != null) { profesor.Apellido = registroProfesor.Apellido; profesor.Nombre = registroProfesor.Nombre; return View("RegisterProfesor", profesor); } } else { ModelState.AddModelError("usuarioInvalido", "El profesor con la cedula " + model.Cedula + " ya esta registrado en nuestro sistema."); return View(); } } } ModelState.AddModelError("usuarioInvalido", "Debes escribir un numero de cedula valido"); return View(); }
public ActionResult Configuration(Alumno alumno, FormCollection form) { int cont = 0; IRepositorio<AlumnoMaterium> repositorioAlumnoMateria = new AlumnoMateriumRepositorio(); IList<AlumnoMaterium> listAlumnoMateria = repositorioAlumnoMateria.GetAll(); IRepositorio<PromedioFactor> repositorioPromedioFactor = new PromedioFactorRepositorio(); IList<PromedioFactor> listPromedioFactor = repositorioPromedioFactor.GetAll(); IRepositorio<Actividad> repositorioActividad = new ActividadRepositorio(); IRepositorio<Materium> repositorioMaterium = new MateriumRepositorio(); IList<Materium> listMaterium = repositorioMaterium.GetAll(); IRepositorio<HorarioPreferencia> repositorioHorarioPreferencia = new HorarioPreferenciaRepositorio(); IRepositorio<ClaseEvaluacion> repositorioHorarioClase = new HorarioClaseRepositorio(); var listCronograma = repositorioHorarioClase.GetAll().Where(alum => alum.Cedula == alumno.Cedula); var listActividades = repositorioActividad.GetAll().Where(a => a.Periodo.CompareTo(_periodoActual) == 0); var misMaterias = (from d in listCronograma from c in listActividades where c.Tipo.CompareTo("Clase") == 0 && d.IdActividad == c.IdActividad select c.IdMateria).Distinct(); var misEvaluaciones = (from d in listCronograma from c in listActividades where c.Tipo.CompareTo("Evaluacion") == 0 && d.IdActividad == c.IdActividad select c).ToList(); var mayorCredito = (from mat in listMaterium select mat.Creditos).Max(); alumno.Materiums = new List<Materium>(); foreach (var materia in misMaterias) { Materium mat = repositorioMaterium.GetById(materia); alumno.Materiums.Add(mat); } var strings = form.GetValues("selrate"); if (strings != null) { if ((alumno.Materiums.Count + 15) == strings.Count()) { int contador = 0; int sum = 0; foreach (var value in strings) { if (contador > 14) { var alumnoMateria = (from mat in listAlumnoMateria where mat.IdMateria == alumno.Materiums.ElementAt(cont).IdMateria && mat.Cedula == alumno.Cedula select mat).First(); alumnoMateria.Preferencia = Convert.ToInt32(value); var porcentajePref = (alumnoMateria.Preferencia * 100) / 5.0; var promedio = (from prom in listPromedioFactor where prom.IdMateria == alumno.Materiums.ElementAt(cont).IdMateria && prom.Factor.CompareTo("Promedio") == 0 select prom.Promedio).First(); var porcentajeProm = (double)(((20 - promedio) * 100) / 20); var uc = alumno.Materiums.ElementAt(cont).Creditos; var porcentajeUC = (uc * 100) / mayorCredito; alumnoMateria.Prioridad = (porcentajePref + porcentajeProm + porcentajeUC) / 3; //Se toma en cuenta las notas obtenidas en las evaluaciones foreach (var miEvaluacion in misEvaluaciones) { var miNota = (from cE in listCronograma where cE.IdActividad == miEvaluacion.IdActividad select cE.Nota).First(); if (miNota != 0.0) { const int x1 = 10; const int y1 = 0; const int x2 = 20; var y2 = -alumnoMateria.Prioridad * (miEvaluacion.Ponderacion / 100.00); var pendiente1 = (y2 - y1) / (x2 - x1); var factorM = (miNota * pendiente1) - y2; alumnoMateria.Prioridad += factorM; } } repositorioAlumnoMateria.Update(alumnoMateria); cont++; } else { int hora = contador + 7; var horaIni = new DateTime(2012, 01, 01, hora, 0, 0); var horaFin = new DateTime(2012, 01, 01, hora + 1, 0, 0); var listHorarioPref = repositorioHorarioPreferencia.GetAll(); var horarioPreferencia = (from hp in listHorarioPref where hp.Cedula == alumno.Cedula & hp.HoraInicio.CompareTo(horaIni) == 0 & hp.HoraFin.CompareTo(horaFin) == 0 & hp.Tipo.CompareTo("Personal") == 0 select hp); int valor = Convert.ToInt32(value); if (horarioPreferencia.Count() != 0) { var horarioPref = horarioPreferencia.First(); var diferenciaPref = valor - horarioPref.Preferencia; horarioPref.Preferencia = valor; repositorioHorarioPreferencia.Update(horarioPref); var horarioPreferenciaDef = (from hp in listHorarioPref where hp.Cedula == alumno.Cedula & hp.HoraInicio.CompareTo(horaIni) == 0 & hp.HoraFin.CompareTo(horaFin) == 0 & hp.Tipo.CompareTo("Definitivo") == 0 select hp).First(); horarioPreferenciaDef.Preferencia += diferenciaPref; repositorioHorarioPreferencia.Update(horarioPreferenciaDef); } else { var horarioPref = new HorarioPreferencia { Cedula = alumno.Cedula, HoraFin = horaFin, HoraInicio = horaIni, Preferencia = valor, Tipo = "Personal" }; repositorioHorarioPreferencia.Save(horarioPref); /*OJO: Definir los parametros que influyan en este valor*/ int valorDefinitivo = valor; horarioPref.Tipo = "Definitivo"; horarioPref.Preferencia = valorDefinitivo; repositorioHorarioPreferencia.Save(horarioPref); } } contador++; } FormsService.SignIn(alumno.Username, false /* createPersistentCookie */); } else { ModelState.AddModelError("preferencias", "Todos las preferencias son requeridas."); return View(alumno); } //Elimino todas las actividades inteligentes luego de hoy y resto las horas acumuladas var misActividadesIEliminar = repositorioActividad.GetAll().Where(a => a.Cedula == alumno.Cedula && a.Tipo.CompareTo("Inteligente") == 0 && a.HoraInicio >= DateTime.Now).ToList(); foreach (var materia in misMaterias) { double cantHoras = 0; foreach (var actividad in misActividadesIEliminar) { if (actividad.IdMateria == materia) { cantHoras += (actividad.HoraFin.Hour + actividad.HoraFin.Minute / 60.00 + actividad.HoraFin.Second / 3600.00) - (actividad.HoraInicio.Hour + actividad.HoraInicio.Minute / 60.00 + actividad.HoraFin.Second / 3600.00); repositorioActividad.Delete(actividad); } } var mat = repositorioAlumnoMateria.GetAll().Where(aM => aM.IdMateria == materia && aM.Cedula == alumno.Cedula).First(); mat.HorasAcumuladas -= cantHoras; repositorioAlumnoMateria.Update(mat); } ActividadesInteligentes(alumno.Cedula); } else { ModelState.AddModelError("preferencias", "Todos las preferencias son requeridas."); return View(alumno); } return RedirectToAction("Index", "Home"); }
private void HorasPersonales(IEnumerable<int?> misMaterias, Alumno alumno) { var miEdad = (int)((_fechaActual - alumno.FechaNac).Days / 365.25); IRepositorio<DatosSociales> repositorioDatosSociales = new DatosSocialesRepositorio(); var misDatosSociales = repositorioDatosSociales.GetByUniqueAtribute(alumno.Cedula.ToString()); IRepositorio<PromedioFactor> repositorioPromedioFactor = new PromedioFactorRepositorio(); var promedioFactor = repositorioPromedioFactor.GetAll(); IRepositorio<Materium> repositorioMaterium = new MateriumRepositorio(); // Se obtienen las horas base y se customiza segun los parametros del estudiante. foreach (int idMateria in misMaterias) { double horasBase = repositorioMaterium.GetById(idMateria).HorasBase; double promHistorico = 0; decimal nota = 0; int cantPersonalizacion = 0; // Personaliza segun la edad var fEdad = (from factor in promedioFactor where factor.Factor.CompareTo("Edad") == 0 && factor.Clasificacion.CompareTo(miEdad.ToString()) == 0 && factor.IdMateria == idMateria select factor); if (fEdad.Count() > 0) { cantPersonalizacion++; nota = fEdad.First().Promedio; promHistorico = promHistorico + (double)nota; } //Personaliza segun Trabajo cantPersonalizacion++; if (misDatosSociales.Trabaja.CompareTo("Si") == 0) { nota = (from factor in promedioFactor where factor.Factor.CompareTo("Trabajo") == 0 && factor.Clasificacion.CompareTo(misDatosSociales.RelacionTrabCarr) == 0 && factor.IdMateria == idMateria select factor.Promedio).First(); } else { nota = (from factor in promedioFactor where factor.Factor.CompareTo("Trabajo") == 0 && factor.Clasificacion.CompareTo("No Trabaja") == 0 && factor.IdMateria == idMateria select factor.Promedio).First(); } promHistorico = promHistorico + Convert.ToDouble(nota); //Personaliza segun la materia cantPersonalizacion++; nota = (from factor in promedioFactor where factor.Factor.CompareTo("Promedio") == 0 && factor.IdMateria == idMateria select factor.Promedio).First(); promHistorico = promHistorico + Convert.ToDouble(nota); //Personaliza segun el record de las materias que prelan esta materia IRepositorio<Requisito> repositorioRequisito = new RequisitoRepositorio(); var misRequisitos = (from r in repositorioRequisito.GetAll() where r.IdMateriaHijo == idMateria select r.IdMateriaPadre).ToList(); var prom = 0.0; if (misRequisitos.Count > 0) { IRepositorio<SlRecordAcademico> repositorioSlRecord = new SlRecordAcademicoRepositorio(); IRepositorio<SlSeccion> repositorioSlSeccion = new SlSeccionRepositorio(); IRepositorio<SlMaterium> repositorioSlMateria = new SlMateriumRepositorio(); var anioPerdiodo = Convert.ToInt32(_periodoActual.Substring(0, 4)); var periodo = Convert.ToInt32(_periodoActual.Substring(4)); if (periodo > 21) { periodo--; } else { anioPerdiodo--; } var periodoAnterior = Convert.ToInt32(anioPerdiodo.ToString() + periodo.ToString()); var sum = 0; foreach (var requisito in misRequisitos) { var materia = repositorioMaterium.GetById(requisito); var slMateria = repositorioSlMateria.GetAll().Where(m => m.Nombre.CompareTo(materia.Nombre) == 0).First(); var slSeccion = repositorioSlSeccion.GetAll().Where(s => s.IdMateria == slMateria.IdMateria && s.Periodo.CompareTo(periodoAnterior) == 0).ToList(); var n = (from record in repositorioSlRecord.GetAll() from seccion in slSeccion where record.Cedula == alumno.Cedula && record.IdSeccion == seccion.IdSeccion select record.Nota); if (n.Count() > 0) { sum++; prom += Convert.ToDouble(n.First()); } } if (prom > 0.0) { cantPersonalizacion++; promHistorico += (prom / sum); } } promHistorico = promHistorico / cantPersonalizacion; /* * Segun el promedio obtenido segun las caracteristicas * personales del alumno se le aumentan o disminuyen las * horas de estudio segun una regla. */ const double pendiente = -0.075; var factorM = (promHistorico * pendiente) + 1.75; var horasPersonalizadas = horasBase * factorM; var misHorasPersonales = new AlumnoMaterium() { IdMateria = idMateria, Cedula = alumno.Cedula, HorasPersonales = horasPersonalizadas }; //Segun las notas obtenidas en las evaluaciones anteriores se afecta las horas personales IRepositorio<ClaseEvaluacion> repositorioHorarioClase = new HorarioClaseRepositorio(); var listCronograma = repositorioHorarioClase.GetAll().Where(alum => alum.Cedula == alumno.Cedula).ToList(); IRepositorio<Actividad> repositorioActividad = new ActividadRepositorio(); var listActividades = repositorioActividad.GetAll().Where(a => a.Periodo.CompareTo(_periodoActual) == 0).ToList(); var misEvaluaciones = (from d in listCronograma from c in listActividades where c.Tipo.CompareTo("Evaluacion") == 0 && d.IdActividad == c.IdActividad select c).ToList(); foreach (var miEvaluacion in misEvaluaciones) { var miNota = (from cE in listCronograma where cE.IdActividad == miEvaluacion.IdActividad select cE.Nota).First(); if (miNota != 0.0) { const int x1 = 10; const int y1 = 0; const int x2 = 20; var y2 = (misHorasPersonales.HorasPersonales * (miEvaluacion.Ponderacion / 100.00)) * -1; var pendiente1 = (y2 - y1) / (x2 - x1); var factorMat = (miNota * pendiente1) - y2; misHorasPersonales.HorasPersonales += factorMat; } } if (prom > 0.00) { if (prom < 4) { misHorasPersonales.Preferencia = 5; } else if (prom < 8) { misHorasPersonales.Preferencia = 4; } else if (prom < 12) { misHorasPersonales.Preferencia = 3; } else if (prom < 16) { misHorasPersonales.Preferencia = 2; } else if (prom <= 20) { misHorasPersonales.Preferencia = 1; } } IRepositorio<AlumnoMaterium> repositorioAlumnoMateria = new AlumnoMateriumRepositorio(); repositorioAlumnoMateria.Update(misHorasPersonales); } }
public ActionResult Configuration(Alumno alumno) { IRepositorio<Materium> repositorioMaterium = new MateriumRepositorio(); alumno.Materiums = new List<Materium>(); IRepositorio<HorarioPreferencia> repositorioHorarioPreferencia = new HorarioPreferenciaRepositorio(); var listHorariosPreferencia = repositorioHorarioPreferencia.GetAll().Where(horario => horario.Cedula == alumno.Cedula).ToList(); if (listHorariosPreferencia.Count > 0) { alumno.HorarioPreferencia = listHorariosPreferencia; } else { alumno.HorarioPreferencia = null; } IRepositorio<ClaseEvaluacion> repositorioHorarioClase = new HorarioClaseRepositorio(); var listCronograma = repositorioHorarioClase.GetAll().Where(a => a.Cedula == alumno.Cedula).ToList(); IRepositorio<Actividad> repositorioActividad = new ActividadRepositorio(); var listActividades = repositorioActividad.GetAll().Where(a => a.Periodo.CompareTo(_periodoActual) == 0).ToList(); var misMaterias = (from d in listCronograma from c in listActividades where c.Tipo.CompareTo("Clase") == 0 && d.IdActividad == c.IdActividad select c.IdMateria).Distinct().ToList(); IRepositorio<AlumnoMaterium> repositorioAlumnoMat = new AlumnoMateriumRepositorio(); foreach (var materia in misMaterias) { var mat = repositorioMaterium.GetById(materia); mat.Preferencia = repositorioAlumnoMat.GetAll().Where(aM => aM.Cedula == alumno.Cedula && aM.IdMateria == mat.IdMateria).First().Preferencia; alumno.Materiums.Add(mat); } return View(alumno); }
public ActionResult Edit(Alumno Alumno, int id, FormCollection collection) { if(ModelState.IsValid) { IRepositorio<Alumno> myRepoAlumno = new AlumnoRepositorio(); Alumno.Expediente = id; String resultado = myRepoAlumno.Update(Alumno); if (resultado.Equals("true")) return RedirectToAction("Index"); } return View(Alumno); }
public ActionResult Delete(int id, Alumno Alumno) { return RedirectToAction("Index"); }
public virtual bool Equals(Alumno obj) { if (obj == null) return false; if (Equals(Apellido, obj.Apellido) == false) return false; if (Equals(Cedula, obj.Cedula) == false) return false; if (Equals(CorreoAlternativo, obj.CorreoAlternativo) == false) return false; if (Equals(CorreoUcab, obj.CorreoUcab) == false) return false; if (Equals(CreationDate, obj.CreationDate) == false) return false; if (Equals(Direccion, obj.Direccion) == false) return false; if (Equals(FechaNac, obj.FechaNac) == false) return false; if (Equals(Nombre, obj.Nombre) == false) return false; if (Equals(Sexo, obj.Sexo) == false) return false; if (Equals(TiempoTraslado, obj.TiempoTraslado) == false) return false; if (Equals(Username, obj.Username) == false) return false; return true; }
public virtual bool Equals(Alumno obj) { if (obj == null) return false; if (Equals(Apellido, obj.Apellido) == false) return false; if (Equals(Cedula, obj.Cedula) == false) return false; if (Equals(CorreoAlternativo, obj.CorreoAlternativo) == false) return false; if (Equals(CorreoUcab, obj.CorreoUcab) == false) return false; if (Equals(Expediente, obj.Expediente) == false) return false; if (Equals(Nombre, obj.Nombre) == false) return false; return true; }