public IActionResult ActivarCuenta(int codigo)
        {
            bdvoleibolContext Context = new bdvoleibolContext();
            UsuarioRepository repos   = new UsuarioRepository(Context);
            var user = Context.Usuario.FirstOrDefault(x => x.Codigo == codigo);

            if (user != null && user.Activo == 0)
            {
                var cod = user.Codigo;

                if (codigo == cod)
                {
                    user.Activo = 1;
                    repos.Update(user);

                    return(RedirectToAction("IniciarSesion"));
                }
                else
                {
                    ModelState.AddModelError("", "El codigo no coincide");
                    return(View((object)codigo));
                }
            }
            else
            {
                ModelState.AddModelError("", "No se encontro el usuario");
                return(View((object)codigo));
            }
        }
        public IActionResult ListaDeIntegrantes(int id)
        {
            bdvoleibolContext         context    = new bdvoleibolContext();
            DirectorTecnicoRepository repository = new DirectorTecnicoRepository(context);
            var directortecnico = repository.ObtenerIntegrantesPorDt(id);

            if (directortecnico != null)
            {
                if (User.IsInRole("DirectorTecnico"))
                {
                    if (User.Claims.FirstOrDefault(x => x.Type == "Id").Value == directortecnico.Id.ToString())
                    {
                        return(View(directortecnico));
                    }
                    else
                    {
                        return(RedirectToAction("Denegado"));
                    }
                }
                else
                {
                    return(View(directortecnico));
                }
            }
            else
            {
                return(RedirectToAction("ListaDeIntegrantes"));
            }
        }
        public IActionResult EditarDt(Directortecnico dt)
        {
            bdvoleibolContext         context    = new bdvoleibolContext();
            DirectorTecnicoRepository repository = new DirectorTecnicoRepository(context);
            var directortecnico = repository.ObtenerPorId(dt.Id);

            try
            {
                if (directortecnico != null)
                {
                    directortecnico.Nombre                  = dt.Nombre;
                    directortecnico.Equipo                  = dt.Equipo;
                    directortecnico.NacionalesGanados       = dt.NacionalesGanados;
                    directortecnico.NacionalesPerdidos      = dt.NacionalesPerdidos;
                    directortecnico.InternacionalesGanados  = dt.InternacionalesGanados;
                    directortecnico.InternacionalesPerdidos = dt.InternacionalesPerdidos;
                    directortecnico.Seleccion               = dt.Seleccion;
                    directortecnico.Tipo = dt.Tipo;
                    repository.EditarI(directortecnico);
                }
                return(RedirectToAction("ListaDeDt"));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(directortecnico));
            }
        }
        public IActionResult AgregarIntegrante(IntegrantesVM vm)
        {
            bdvoleibolContext         context      = new bdvoleibolContext();
            DirectorTecnicoRepository DTrepository = new DirectorTecnicoRepository(context);
            IntegrantesRepository     Prepository  = new IntegrantesRepository(context);

            if (vm.Archivo.ContentType != "image/jpeg" || vm.Archivo.Length > 1024 * 1024 * 2)
            {
                ModelState.AddModelError("", "Debe selecionar un archivo jpg de menos de 2mb");
                return(View(vm));
            }
            try
            {
                var IdDt = DTrepository.ObtenerDtPorClave(vm.Directortecnico.Clave).Id;

                vm.Integrantes.IdDt = IdDt;
                Prepository.Insertar(vm.Integrantes);
                System.IO.FileStream fs = new FileStream(Environment.WebRootPath + "/images/" + vm.Integrantes.Id + "_0.jpg", FileMode.Create);
                vm.Archivo.CopyTo(fs);
                fs.Close();
                return(RedirectToAction("ListaDeIntegrantes"));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(vm));
            }
        }
        public IActionResult EditarIntegrante(int id)
        {
            bdvoleibolContext context = new bdvoleibolContext();
            IntegrantesVM     vm      = new IntegrantesVM();

            IntegrantesRepository pr = new IntegrantesRepository(context);

            vm.Integrantes = pr.ObtenerPorId(id);
            if (vm.Integrantes == null)
            {
                return(RedirectToAction("ListaDeIntegrantes"));
            }
            DirectorTecnicoRepository dtrepository = new DirectorTecnicoRepository(context);

            vm.directortecnicos = dtrepository.ObtenerTodo();
            if (System.IO.File.Exists(Environment.WebRootPath + $"/images/{vm.Integrantes.Id}_0.jpg"))
            {
                vm.Imagen = vm.Integrantes.Id + "_0.jpg";
            }
            else
            {
                vm.Imagen = "no-disponible.png";
            }

            return(View(vm));
        }
        public async Task <IActionResult> AdminIS(Administrador d)
        {
            bdvoleibolContext context = new bdvoleibolContext();
            RolesRepository <Administrador> repository = new RolesRepository <Administrador>(context);
            var administrador = context.Administrador.FirstOrDefault(x => x.Clave == d.Clave);

            try
            {
                if (administrador != null && administrador.Contrasena == HashHelper.GetHash(d.Contrasena))
                {
                    List <Claim> info = new List <Claim>();
                    info.Add(new Claim(ClaimTypes.Name, "Usuario" + administrador.Nombre));
                    info.Add(new Claim(ClaimTypes.Role, "Administrador"));
                    info.Add(new Claim("clave", administrador.Nombre.ToString()));
                    info.Add(new Claim("Nombre", administrador.Nombre));

                    var claimsidentity  = new ClaimsIdentity(info, CookieAuthenticationDefaults.AuthenticationScheme);
                    var claimsprincipal = new ClaimsPrincipal(claimsidentity);
                    await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsprincipal,
                                                  new AuthenticationProperties { IsPersistent = true });

                    return(RedirectToAction("IndexAdminDt"));
                }
                else
                {
                    ModelState.AddModelError("", "El número de control o la contraseña del director son incorrectas.");
                    return(View(d));
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(d));
            }
        }
        public IActionResult AltaDirTecnicos(Directortecnico dt)
        {
            bdvoleibolContext         context    = new bdvoleibolContext();
            DirectorTecnicoRepository repository = new DirectorTecnicoRepository(context);

            try
            {
                var directortecnico = repository.ObtenerDtPorClave(dt.Clave);
                if (directortecnico == null)
                {
                    dt.Activo     = 1;
                    dt.Contrasena = HashHelper.GetHash(dt.Contrasena);
                    repository.Insertar(dt);
                    return(RedirectToAction("ListaDeDt"));
                }
                else
                {
                    ModelState.AddModelError("", "La clave que ingresó no es valida.");
                    return(View(dt));
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(dt));
            }
        }
 public MenuServices()
 {
     using (bdvoleibolContext ctx = new bdvoleibolContext())
     {
         DirectorTecnicoRepository repository = new DirectorTecnicoRepository(ctx);
         DirTec = repository.ObtenerTodo().OrderBy(x => x.Equipo).ToList();
     }
 }
        public IActionResult ListaDeDt()
        {
            bdvoleibolContext         context    = new bdvoleibolContext();
            DirectorTecnicoRepository repository = new DirectorTecnicoRepository(context);
            var DirectoresTecnicos = repository.ObtenerTodo();

            return(View(DirectoresTecnicos));
        }
        public IActionResult Registrar(Usuario u, string contraseña1, string contraseña2)
        {
            bdvoleibolContext Context = new bdvoleibolContext();

            try
            {
                if (Context.Usuario.Any(x => x.Correo == u.Correo))
                {
                    ModelState.AddModelError("", "Ya existe una cuenta registrada con este correo");
                    return(View(u));
                }
                else
                {
                    if (contraseña1 == contraseña2)
                    {
                        Repository <Usuario> repos = new Repository <Usuario>(Context);
                        u.Contraseña = HashHelper.GetHash(contraseña1);
                        u.Codigo     = CodeHelper.GetCodigo();
                        u.Activo     = 0;
                        repos.Insert(u);


                        MailMessage message = new MailMessage();
                        message.From = new MailAddress("[email protected] ", "Voley4All");
                        message.To.Add(u.Correo);
                        message.Subject = "Confirma tu correo";


                        string mensaje = System.IO.File.ReadAllText(Environment.WebRootPath + "/Correo.html");
                        message.IsBodyHtml = true;
                        message.Body       = mensaje.Replace("{##Codigo##}", u.Codigo.ToString());

                        SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
                        client.EnableSsl             = true;
                        client.UseDefaultCredentials = false;
                        client.Credentials           = new NetworkCredential("*****@*****.**", "sistemas7g");
                        client.Send(message);


                        List <Claim> informacion = new List <Claim>();
                        informacion.Clear();
                        informacion.Add(new Claim("CorreoActivar", u.Correo));

                        return(RedirectToAction("ActivarCuenta"));
                    }
                    else
                    {
                        ModelState.AddModelError("", "Las contraseñas no coinciden");
                        return(View(u));
                    }
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(u));
            }
        }
        public IActionResult AgregarIntegrante(int id)
        {
            bdvoleibolContext         context    = new bdvoleibolContext();
            DirectorTecnicoRepository repository = new DirectorTecnicoRepository(context);
            IntegrantesVM             intevm     = new IntegrantesVM();

            intevm.Directortecnico = repository.ObtenerPorId(id);
            return(View(intevm));
        }
        public IActionResult CambiarClaveDt(int id)
        {
            bdvoleibolContext         context    = new bdvoleibolContext();
            DirectorTecnicoRepository repository = new DirectorTecnicoRepository(context);
            var directortecnico = repository.ObtenerPorId(id);

            if (directortecnico == null)
            {
                return(RedirectToAction("ListaDeDt"));
            }
            return(View(directortecnico));
        }
        public IActionResult EditarIntegrante(IntegrantesVM vm)
        {
            bdvoleibolContext context = new bdvoleibolContext();

            if (vm.Archivo != null)
            {
                if (vm.Archivo.ContentType != "image/jpeg" || vm.Archivo.Length > 1024 * 1024 * 2)
                {
                    ModelState.AddModelError("", "Debe selecionar un archivo jpg de menos de 2mb");
                    DirectorTecnicoRepository marcarepository = new DirectorTecnicoRepository(context);
                    vm.directortecnicos = marcarepository.ObtenerTodo();

                    return(View(vm));
                }
            }

            try
            {
                IntegrantesRepository repos = new IntegrantesRepository(context);

                var integrantes = repos.ObtenerPorId(vm.Integrantes.Id);
                if (integrantes != null)
                {
                    integrantes.Edad        = vm.Integrantes.Edad;
                    integrantes.Estado      = vm.Integrantes.Estado;
                    integrantes.Posicion    = vm.Integrantes.Posicion;
                    integrantes.NumCamiseta = vm.Integrantes.NumCamiseta;
                    integrantes.Fuerza      = vm.Integrantes.Fuerza;
                    integrantes.Bloqueo     = vm.Integrantes.Bloqueo;
                    integrantes.Recepcion   = vm.Integrantes.Recepcion;
                    integrantes.Remate      = vm.Integrantes.Remate;
                    integrantes.Salto       = vm.Integrantes.Salto;
                    integrantes.Saque       = vm.Integrantes.Saque;
                    if (vm.Archivo != null)
                    {
                        FileStream fs = new FileStream(Environment.WebRootPath + "/images/" + vm.Integrantes.Id + "_0.jpg", FileMode.Create);
                        vm.Archivo.CopyTo(fs);
                        fs.Close();
                    }
                }


                return(RedirectToAction("ListaDeIntegrantes"));
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                DirectorTecnicoRepository dtarcarepository = new DirectorTecnicoRepository(context);
                vm.directortecnicos = dtarcarepository.ObtenerTodo();

                return(View(vm));
            }
        }
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

        public IActionResult VentanaP()
        {
            bdvoleibolContext context = new bdvoleibolContext();
            var directortecnico       = context.Directortecnico.Include(x => x.Integrantes).OrderBy(x => x.Nombre).Select(x => new DtVM
            {
                DirT        = x.Nombre,
                Integrantes = x.Integrantes
            }
                                                                                                                          );

            return(View(directortecnico));
        }
        public IActionResult integrantesXequipo(string Id)
        {
            using (bdvoleibolContext context = new bdvoleibolContext())

            {
                IntegrantesRepository repos = new IntegrantesRepository(context);
                DtVM vM = new DtVM();

                vM.DirT        = Id;
                vM.Integrantes = repos.ObtenerIntegrantesxDt(Id).ToList();

                return(View(vM));
            }
        }
        public async Task <IActionResult> IniciarSesion(Usuario u, bool persistant)
        {
            bdvoleibolContext Context = new bdvoleibolContext();

            UsuarioRepository repos = new UsuarioRepository(Context);

            var usuario = repos.GetUsuarioByCorreo(u.Correo);

            if (usuario != null && HashHelper.GetHash(u.Contraseña) == usuario.Contraseña)
            {
                if (usuario.Activo == 1)
                {
                    List <Claim> informacion = new List <Claim>();

                    informacion.Add(new Claim(ClaimTypes.Name, "Usuario" + usuario.NomUser));
                    informacion.Add(new Claim("Correo electronico", usuario.Correo));
                    informacion.Add(new Claim("Nombre Completo", usuario.NomUser));
                    informacion.Add(new Claim("Fecha Ingreso", DateTime.Now.ToString()));


                    var claimsIdentity  = new ClaimsIdentity(informacion, CookieAuthenticationDefaults.AuthenticationScheme);
                    var claimsPrincipal = new ClaimsPrincipal(claimsIdentity);

                    if (persistant == true)
                    {
                        await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsPrincipal,
                                                      new AuthenticationProperties { IsPersistent = true });
                    }
                    else
                    {
                        await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsPrincipal,
                                                      new AuthenticationProperties { IsPersistent = false });
                    }

                    return(RedirectToAction("Entrada"));
                }
                else
                {
                    ModelState.AddModelError("", "La cuenta registrada con este correo electronico no esta activa");
                    return(View(u));
                }
            }
            else
            {
                ModelState.AddModelError("", "El usuario o la contraseña son incorrectas");
                return(View(u));
            }
        }
        public IActionResult EliminarIntegrante(Integrantes integrantes)
        {
            bdvoleibolContext     context    = new bdvoleibolContext();
            IntegrantesRepository repository = new IntegrantesRepository(context);
            var integrante = repository.ObtenerPorId(integrantes.Id);

            if (integrante != null)
            {
                repository.Eliminar(integrante);
            }
            else
            {
                ModelState.AddModelError("", "El equipo a eliminar no existe.");
            }
            return(RedirectToAction("ListaDeIntegrantes", new { id = integrante.IdDt }));
        }
        public IActionResult InfoEquipo(string Id)
        {
            bdvoleibolContext context = new bdvoleibolContext();

            IntegrantesRepository repos = new IntegrantesRepository(context);
            IntegrantesVM         vm    = new IntegrantesVM();

            vm.Integrantes = repos.GetIntegrantesPorNombre(Id);
            if (vm.Integrantes == null)
            {
                return(RedirectToAction("Index"));
            }
            else
            {
                return(View(vm));
            }
        }
        public IActionResult Eliminar(string correo)
        {
            bdvoleibolContext Context = new bdvoleibolContext();

            UsuarioRepository repos = new UsuarioRepository(Context);
            var user = repos.GetUsuarioByCorreo(correo);

            if (user != null)
            {
                repos.Delete(user);
            }
            else
            {
                ModelState.AddModelError("", "Ha ocurrido un error");
                return(View("Entrada"));
            }
            return(RedirectToAction("Index"));
        }
        public IActionResult EstadoDirTecnico(Directortecnico dt)
        {
            bdvoleibolContext         context    = new bdvoleibolContext();
            DirectorTecnicoRepository repository = new DirectorTecnicoRepository(context);
            var directortecnico = repository.ObtenerPorId(dt.Id);

            if (directortecnico != null && directortecnico.Activo == 0)
            {
                directortecnico.Activo = 1;
                repository.EditarI(directortecnico);
            }
            else
            {
                directortecnico.Activo = 0;
                repository.EditarI(directortecnico);
            }
            return(RedirectToAction("ListaDeDt"));
        }
        public async Task <IActionResult> DtInicioSesion(Directortecnico dt)
        {
            bdvoleibolContext         context    = new bdvoleibolContext();
            DirectorTecnicoRepository repository = new DirectorTecnicoRepository(context);
            var DirT = repository.ObtenerDtPorClave(dt.Clave);

            try
            {
                if (DirT != null && DirT.Contrasena == HashHelper.GetHash(dt.Contrasena))
                {
                    if (DirT.Activo == 1)
                    {
                        List <Claim> info = new List <Claim>();
                        info.Add(new Claim(ClaimTypes.Name, "Usuario" + DirT.Nombre));
                        info.Add(new Claim(ClaimTypes.Role, "DirectorTecnico"));
                        info.Add(new Claim("Nombre", DirT.Nombre));
                        info.Add(new Claim("Id", DirT.Id.ToString()));

                        var claimsidentity  = new ClaimsIdentity(info, CookieAuthenticationDefaults.AuthenticationScheme);
                        var claimsprincipal = new ClaimsPrincipal(claimsidentity);
                        await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, claimsprincipal,
                                                      new AuthenticationProperties { IsPersistent = true });

                        return(RedirectToAction("IndexAdminDt", DirT.Clave));
                    }
                    else
                    {
                        ModelState.AddModelError("", "Su cuenta no esta activa.");
                        return(View(dt));
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Clave de director tecnico o contraseña estan incorrectas.");
                    return(View(dt));
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(dt));
            }
        }
        public IActionResult RecuperarContraseña(string correo)
        {
            try
            {
                bdvoleibolContext Context = new bdvoleibolContext();
                UsuarioRepository repos   = new UsuarioRepository(Context);


                var user = repos.GetUsuarioByCorreo(correo);

                if (user != null)
                {
                    var contraseñaTemporal = CodeHelper.GetCodigo();

                    MailMessage message = new MailMessage();
                    message.From = new MailAddress("*****@*****.**", "Voley4All");
                    message.To.Add(correo);
                    message.Subject = "Recupera tu contraseña";

                    message.Body = $"Utiliza esta contraseña temporal para ingresar a tu cuenta, recuerda que una vez que ingreses deberas cambiarla: {contraseñaTemporal} ";

                    SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
                    client.EnableSsl             = true;
                    client.UseDefaultCredentials = false;
                    client.Credentials           = new NetworkCredential("*****@*****.**", "sistemas7g");
                    client.Send(message);

                    user.Contraseña = HashHelper.GetHash(contraseñaTemporal.ToString());
                    repos.Update(user);
                    return(RedirectToAction("IniciarSesion"));
                }
                else
                {
                    ModelState.AddModelError("", "El correo no esta registrado");
                    return(View());
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View((object)correo));
            }
        }
        public IActionResult CambiarClaveDt(Directortecnico m, string nuevaContra, string nuevaContraConfirm)
        {
            bdvoleibolContext         context    = new bdvoleibolContext();
            DirectorTecnicoRepository repository = new DirectorTecnicoRepository(context);
            var directortecnico = repository.ObtenerPorId(m.Id);

            try
            {
                if (directortecnico != null)
                {
                    if (nuevaContra != nuevaContraConfirm)
                    {
                        ModelState.AddModelError("", "Las contraseñas no coinciden.");
                        return(View(directortecnico));
                    }
                    else if (directortecnico.Contrasena == HashHelper.GetHash(nuevaContra))
                    {
                        ModelState.AddModelError("", "La nueva contraseña no puede ser igual a la que desea cambiar.");
                        return(View(directortecnico));
                    }
                    else
                    {
                        directortecnico.Contrasena = HashHelper.GetHash(nuevaContra);
                        repository.EditarI(directortecnico);
                        return(RedirectToAction("ListaDeDt"));
                    }
                }
                else
                {
                    ModelState.AddModelError("", "El director tecnico a editar no existe.");
                    return(View(directortecnico));
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(directortecnico));
            }
        }
        public IActionResult CambiarContraseña(string contraseñaNueva1, string correo, string contraseñaNueva2)
        {
            bdvoleibolContext Context = new bdvoleibolContext();
            UsuarioRepository repos   = new UsuarioRepository(Context);


            var user = repos.GetUsuarioByCorreo(correo);

            try
            {
                if (contraseñaNueva1 == contraseñaNueva2)
                {
                    user.Contraseña = HashHelper.GetHash(contraseñaNueva1);
                    if (user.Contraseña == contraseñaNueva1)
                    {
                        ModelState.AddModelError("", "La nueva contraseña no puede ser igual a la ya registrada");
                        return(View(contraseñaNueva1));
                    }
                    else
                    {
                        repos.Update(user);

                        return(RedirectToAction("Entrada"));
                    }
                }
                else
                {
                    ModelState.AddModelError("", "Las contraseñas no coinciden");
                    return(View());
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(contraseñaNueva1, contraseñaNueva2));
            }
        }
 public RolesRepository(bdvoleibolContext context)
 {
     Context = context;
 }
 public DirectorTecnicoRepository(bdvoleibolContext context) : base(context)
 {
 }
Exemplo n.º 27
0
 public EquiposRepository(bdvoleibolContext context) : base(context)
 {
 }
 public IntegrantesRepository(bdvoleibolContext context) : base(context)
 {
 }
Exemplo n.º 29
0
 public Repository(bdvoleibolContext ctx)
 {
     Context = ctx;
 }
 public UsuarioRepository(bdvoleibolContext context) : base(context)
 {
 }