public ActionResult RegisterProfesor(Profesor profesor)
        {
            if (ModelState.IsValid)
            {
                if (profesor.Password == profesor.ConfirmPassword)
                {
                    IRepositorio<Profesor> repositorioProfesor = new ProfesorRepositorio();
                    var miProfesor = repositorioProfesor.GetByUniqueAtribute(profesor.Username);

                    IRepositorio<Alumno> repositorioAlumno = new AlumnoRepositorio();
                    var miAlumno = repositorioAlumno.GetByUniqueAtribute(profesor.Username);

                    if (miProfesor == null && miAlumno == null)
                    {
                        MembershipCreateStatus createStatus = MembershipService.CreateUser(profesor.Username,
                                                                                           profesor.Password,
                                                                                           profesor.Nombre.Substring(0, 1) + profesor.Apellido + "@ucab.edu.ve");
                        if (createStatus == MembershipCreateStatus.Success)
                        {
                            if (Roles.RoleExists("Profesor"))
                            {
                                Roles.AddUserToRole(profesor.Username, "Profesor");
                            }
                            else
                            {
                                Roles.CreateRole("Profesor");
                                Roles.AddUserToRole(profesor.Username, "Profesor");
                            }
                            profesor.CreationDate = DateTime.Today;
                            var prof = repositorioProfesor.GetById(profesor.Cedula);
                            var flag = prof == null ? repositorioProfesor.Save(profesor) : repositorioProfesor.Update(profesor);

                            if (flag.CompareTo("true") == 0)
                            {
                                Session["cedula"] = profesor.Cedula;
                                IRepositorio<Actividad> repositorioActividad = new ActividadRepositorio();
                                var listActividades =
                                    repositorioActividad.GetAll().Where(a => a.Profesor == profesor.Cedula &&
                                                                             a.Periodo.CompareTo(_periodoActual) == 0 &&
                                                                             a.Tipo.CompareTo("Clase") == 0).ToList();
                                var misMaterias = new List<Materium>();
                                IRepositorio<Materium> repositorioMateria = new MateriumRepositorio();
                                foreach (var actividad in listActividades)
                                {
                                    var materia = repositorioMateria.GetById(actividad.IdMateria);
                                    materia.Seccion = actividad.Seccion;
                                    if (!misMaterias.Contains(materia))
                                    {
                                        misMaterias.Add(materia);
                                    }
                                }
                                profesor.Materiums = misMaterias;
                                FormsService.SignIn(profesor.Username, false /* createPersistentCookie */);
                                return View("ConfigurationProfesor", profesor);
                            }
                            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(profesor);
        }
        public ActionResult ConfigurationProfesor()
        {
            IRepositorio<Profesor> repositorioProfesor = new ProfesorRepositorio();
            var miCedula = (int)Session["cedula"];
            var profesor = repositorioProfesor.GetById(miCedula);
            IRepositorio<Actividad> repositorioActividad = new ActividadRepositorio();
            var listActividades =
                repositorioActividad.GetAll().Where(a => a.Profesor == profesor.Cedula &&
                                                         a.Periodo.CompareTo(_periodoActual) == 0 &&
                                                         a.Tipo.CompareTo("Clase") == 0);

            var misMaterias = new List<Materium>();
            IRepositorio<Materium> repositorioMateria = new MateriumRepositorio();
            foreach (var actividad in listActividades)
            {
                var materia = repositorioMateria.GetById(actividad.IdMateria);
                materia.Seccion = actividad.Seccion;
                if (!misMaterias.Contains(materia))
                {
                    var listActividadEval = repositorioActividad.GetAll().Where(a => a.Tipo.CompareTo("Evaluacion") == 0 &&
                                                                             a.Periodo.CompareTo(_periodoActual) == 0 &&
                                                                             a.Profesor == miCedula &&
                                                                             a.Seccion == materia.Seccion &&
                                                                             a.IdMateria == materia.IdMateria).ToList();
                    if (listActividadEval.Count == 0)
                    {
                        misMaterias.Add(materia);
                    }
                }
            }
            profesor.Materiums = misMaterias;

            return View(profesor);
        }
 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 IndexProfesor()
 {
     var miCedula = (Int32)Session["cedula"];
     IRepositorio<Materium> repositorioMaterium = new MateriumRepositorio();
     IRepositorio<Actividad> repositorioActividad = new ActividadRepositorio();
     var actividades = (from actividad in repositorioActividad.GetAll()
                        where actividad.Profesor == miCedula &&
                        actividad.Periodo == Helper.CalcularPeriodoActual() &&
                        actividad.Tipo.CompareTo("Clase") == 0
                        select actividad).ToList();
     var misAlumnos = new List<Alumno>();
     var misMaterias = new List<Materium>();
     IRepositorio<ClaseEvaluacion> repositorioClaseEvaluacion = new HorarioClaseRepositorio();
     var clase = repositorioClaseEvaluacion.GetAll();
     IRepositorio<Alumno> repositorioAlumno = new AlumnoRepositorio();
     foreach (var actividad in actividades)
     {
         foreach (var claseEvaluacion in clase)
         {
             if (claseEvaluacion.IdActividad == actividad.IdActividad)
             {
                 var alumno = repositorioAlumno.GetById(actividad.Cedula);
                 if (!misAlumnos.Contains(alumno))
                 {
                     misAlumnos.Add(alumno);
                 }
             }
         }
         var materia = repositorioMaterium.GetById(actividad.IdMateria);
         if (!misMaterias.Contains(materia))
         {
             misMaterias.Add(materia);
         }
     }
     IRepositorio<Profesor> repositorioProfesor = new ProfesorRepositorio();
     var miProfesor = repositorioProfesor.GetById(miCedula);
     miProfesor.Materiums = misMaterias;
     miProfesor.Alumnos = misAlumnos;
     return View(miProfesor);
 }