Пример #1
0
        public IActionResult AltaMaestro(RegistrarViewModel vm)
        {
            MaestrosRepository reposMaestro = new MaestrosRepository(context);

            try
            {
                if (vm.Maestro.Contrasena.ToString() == vm.ConfirmarContraseña.ToString())
                {
                    var contraHash = HashingHelper.GetHash(vm.Maestro.Contrasena);
                    vm.Maestro.Contrasena = contraHash;
                    reposMaestro.Insert(vm.Maestro);
                    return(RedirectToAction("ListaMaestros"));
                }
                else
                {
                    ModelState.AddModelError("", "Las contraseñas no coinciden");
                    return(View(vm));
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(vm));
            }
        }
Пример #2
0
        public IActionResult ModificarMaestro(Maestro m)
        {
            MaestrosRepository repos = new MaestrosRepository(context);

            try
            {
                var maestro = repos.Get(m.Id);
                if (maestro != null)
                {
                    maestro.Nombre = m.Nombre;
                    maestro.Correo = m.Correo;
                    if (context.Maestro.Any(x => x.Grupo == m.Grupo && x.Id != m.Id))
                    {
                        ModelState.AddModelError("", "Ya hay un maestro registrado con ese grupo");
                        return(View(m));
                    }
                    else
                    {
                        maestro.Grupo = m.Grupo;
                    }
                    repos.Update(maestro);
                    return(RedirectToAction("ListaMaestros"));
                }
                else
                {
                    return(RedirectToAction("ListaMaestros"));
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(m));
            }
        }
Пример #3
0
        public IActionResult ListaMaestros()
        {
            MaestrosRepository reposMaestro = new MaestrosRepository(context);
            var maestros = reposMaestro.GetAll().OrderBy(x => x.Nombre);

            return(View(maestros));
        }
Пример #4
0
 public MaestrosService(ScmContext context, IMapper mapper, MaestrosRepository maestrosRepository, HorariosRepository horarioRepository)
 {
     _context            = context;
     _mapper             = mapper;
     _maestrosRepository = maestrosRepository;
     _horarioRepository  = horarioRepository;
 }
Пример #5
0
 public MaestrosController(MaestrosRepository maestrosRepository, MaestrosService maestrosService, ScmContext scmContext, IMapper mapper)
 {
     _maestrosRepository = maestrosRepository;
     _scmContext         = scmContext;
     _mapper             = mapper;
     _maestrosService    = maestrosService;
 }
Пример #6
0
        public IActionResult CambiarContraseña(int id)
        {
            MaestrosRepository repos = new MaestrosRepository(context);
            RegistrarViewModel vm    = new RegistrarViewModel();

            vm.Maestro = repos.Get(id);
            return(View(vm));
        }
Пример #7
0
        public IActionResult ModificarMaestro(int id)
        {
            MaestrosRepository repos = new MaestrosRepository(context);
            var maestro = repos.Get(id);

            if (maestro != null)
            {
                return(View(maestro));
            }
            else
            {
                return(RedirectToAction("ListaMaestros"));
            }
        }
Пример #8
0
 public IActionResult ListaAlumnos(int?id)
 {
     if (User.IsInRole("Maestro"))
     {
         MaestrosRepository maestroRepos = new MaestrosRepository(context);
         var maestro = maestroRepos.Get(id);
         var alumnos = maestroRepos.GetAlumnosByGrupo(maestro.Grupo).OrderBy(x => x.Nombre);
         return(View(alumnos));
     }
     else
     {
         AlumnosRepository reposAlumno = new AlumnosRepository(context);
         var alumnos = reposAlumno.GetAll().OrderBy(x => x.Grupo);
         return(View(alumnos));
     }
 }
Пример #9
0
        public IActionResult EditarActivo(Maestro m)
        {
            MaestrosRepository repos = new MaestrosRepository(context);
            var original             = repos.Get(m.Id);

            if (original != null)
            {
                if (original.Activo == 1)
                {
                    original.Activo = 0;
                    repos.Update(original);
                }
                else
                {
                    original.Activo = 1;
                    repos.Update(original);
                }
            }
            return(RedirectToAction("ListaMaestros"));
        }
Пример #10
0
        public IActionResult CambiarContraseña(RegistrarViewModel vm)
        {
            MaestrosRepository repos = new MaestrosRepository(context);
            var original             = repos.Get(vm.Maestro.Id);

            if (original != null)
            {
                if (vm.Maestro.Contrasena == vm.ConfirmarContraseña)
                {
                    var nuevaContraHash = HashingHelper.GetHash(vm.Maestro.Contrasena);
                    original.Contrasena = nuevaContraHash;
                    repos.Update(original);
                    return(RedirectToAction("Index"));
                }
                else
                {
                    ModelState.AddModelError("", "Las contraseñas no coiniciden.");
                    return(View(vm));
                }
            }
            return(RedirectToAction("Index"));
        }
Пример #11
0
        public async Task <IActionResult> IniciarSesion(string correo, string contraseña, bool recuerdame)
        {
            if (correo == "*****@*****.**")
            {
                var usuario = context.Director.FirstOrDefault(x => x.Correo.ToUpper() == correo.ToUpper());
                if (usuario != null)
                {
                    var contraHash = HashingHelper.GetHash(contraseña).ToUpper();
                    if (usuario.Correo.ToUpper() == correo.ToUpper() && usuario.Contrasena == contraHash)
                    {
                        List <Claim> Informacion = new List <Claim>();
                        Informacion.Add(new Claim(ClaimTypes.Name, "Director"));
                        Informacion.Add(new Claim(ClaimTypes.Role, "Director"));
                        Informacion.Add(new Claim("NombreUsuario", usuario.Nombre));
                        Informacion.Add(new Claim("IdUsuario", usuario.Id.ToString()));
                        var claimsIdentity  = new ClaimsIdentity(Informacion, CookieAuthenticationDefaults.AuthenticationScheme);
                        var claimsPrincipal = new ClaimsPrincipal(claimsIdentity);
                        await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsPrincipal, new AuthenticationProperties { IsPersistent = recuerdame });

                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        ModelState.AddModelError("", "El usuario o la contraseña no coincide.");
                        return(View());
                    }
                }
                else
                {
                    ModelState.AddModelError("", "No hay ningun usuario registado con ese correo electronico.");
                    return(View());
                }
            }
            else // ES DOCENTE
            {
                MaestrosRepository repos = new MaestrosRepository(context);
                var usuario = repos.GetMaestroByCorreo(correo);
                if (usuario != null)
                {
                    if (usuario.Activo == 1)
                    {
                        if (usuario.Correo.ToUpper() == correo.ToUpper() && usuario.Contrasena == HashingHelper.GetHash(contraseña))
                        {
                            List <Claim> Informacion = new List <Claim>();
                            Informacion.Add(new Claim(ClaimTypes.Name, "Maestro"));
                            Informacion.Add(new Claim(ClaimTypes.Role, "Maestro"));
                            Informacion.Add(new Claim("NombreUsuario", usuario.Nombre));
                            Informacion.Add(new Claim("IdUsuario", usuario.Id.ToString()));
                            var claimsIdentity  = new ClaimsIdentity(Informacion, CookieAuthenticationDefaults.AuthenticationScheme);
                            var claimsPrincipal = new ClaimsPrincipal(claimsIdentity);
                            await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsPrincipal, new AuthenticationProperties { IsPersistent = recuerdame });

                            return(RedirectToAction("Index"));
                        }
                        else
                        {
                            ModelState.AddModelError("", "El usuario o la contraseña no coincide.");
                            return(View());
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("", $"La cuenta del usuario {usuario.Nombre} no está activa.");
                        return(RedirectToAction("Index"));
                    }
                }
                else
                {
                    ModelState.AddModelError("", "No hay ningun usuario registado con ese correo electronico.");
                    return(View());
                }
            }
        }
Пример #12
0
        public IActionResult AgregarAlumno(RegistrarViewModel vm)
        {
            AlumnosRepository repos = new AlumnosRepository(context);

            try
            {
                MaestrosRepository maestroRepos = new MaestrosRepository(context);

                var maestro = maestroRepos.Get(vm.IdMaestro);

                if (maestro == null)
                {
                    if (User.IsInRole("Director"))
                    {
                        var GrupoMaestro = context.Maestro.FirstOrDefault(x => x.Grupo == vm.Alumno.Grupo);
                        if (GrupoMaestro == null)
                        {
                            ModelState.AddModelError("", "Aún no hay ningun maestro asignado a ese grupo.");
                            return(View(vm));
                        }
                        else
                        {
                            vm.Alumno.IdMaestro = GrupoMaestro.Id;
                            repos.Insert(vm.Alumno);
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("", "Aún no hay ningun maestro asignado a ese grupo.");
                        return(View(vm));
                    }
                }
                else
                {
                    if (context.Maestro.Any(x => x.Grupo == vm.Alumno.Grupo))
                    {
                        if (maestro.Grupo != vm.Alumno.Grupo)
                        {
                            ModelState.AddModelError("", "Usted no tiene permitido agregar alumnos a dicho grupo");
                            return(View(vm));
                        }


                        vm.Alumno.IdMaestro = vm.IdMaestro;
                        repos.Insert(vm.Alumno);
                    }
                }

                if (User.IsInRole("Maestro"))
                {
                    return(RedirectToAction("ListaAlumnos", new { id = vm.IdMaestro }));
                }
                else
                {
                    return(RedirectToAction("ListaAlumnos"));
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(vm));
            }
        }