Exemplo n.º 1
0
        public IActionResult Create(Pelicula pelicula, List <int> generoIds)
        {
            ValidarNombreExistente(pelicula);
            ValidarGeneros(generoIds);

            if (ModelState.IsValid)
            {
                pelicula.Generos = new List <PeliculaGenero>();

                foreach (var generoId in generoIds)
                {
                    pelicula.Generos.Add(new PeliculaGenero {
                        Pelicula = pelicula, GeneroId = generoId
                    });
                }

                _context.Add(pelicula);
                _context.SaveChanges();
                return(RedirectToAction(nameof(Index)));
            }

            ViewBag.SelectGeneros         = new MultiSelectList(_context.Generos, nameof(Genero.Id), nameof(Genero.Descripcion), generoIds);
            ViewBag.SelectClasificaciones = new SelectList(_context.Clasificaciones, "Id", "Descripcion", pelicula.ClasificacionId);
            return(View(pelicula));
        }
Exemplo n.º 2
0
 public IActionResult Modificar(Actores actor)
 {
     _context.Actores.Update(actor);
     //_context.Actores.Remove(actor);
     //_context.Actores.Add(actor);
     //_context.Entry(actor).State=EntityState.Modified;
     _context.SaveChanges();
     return(RedirectToAction("Index"));
 }
Exemplo n.º 3
0
 public IActionResult Editar(Producto prod)
 {
     if (ModelState.IsValid)
     {
         Db.Productos.Update(prod);
         Db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(prod));
 }
        public IActionResult Create([Bind("Id,Descripcion")] Genero genero)
        {
            ValidarDescripcionExistente(genero.Descripcion, genero.Id);

            if (ModelState.IsValid)
            {
                _context.Add(genero);
                _context.SaveChanges();
                return(RedirectToAction(nameof(Index)));
            }
            return(View(genero));
        }
Exemplo n.º 5
0
        public IActionResult Create([Bind("Id,Descripcion,EdadMinima")] Clasificacion clasificacion)
        {
            ValidarDescripcionExistente(clasificacion);

            if (ModelState.IsValid)
            {
                _context.Add(clasificacion);
                _context.SaveChanges();
                return(RedirectToAction(nameof(Index)));
            }
            return(View(clasificacion));
        }
        public IActionResult Create([Bind("Id,Nombre,PrecioEntrada")] TipoSala tipoSala)
        {
            ValidarNombreExistente(tipoSala);

            if (ModelState.IsValid)
            {
                _context.Add(tipoSala);
                _context.SaveChanges();
                return(RedirectToAction(nameof(Index)));
            }

            return(View(tipoSala));
        }
        public IActionResult Create([Bind("Id,Nombre,TipoId,CapacidadTotal")] Sala sala)
        {
            ValidarNombreExistente(sala);

            if (ModelState.IsValid)
            {
                _context.Add(sala);
                _context.SaveChanges();
                return(RedirectToAction(nameof(Index)));
            }

            ViewBag.SelectTiposDeSala = new SelectList(_context.TiposSala, "Id", "Nombre");

            return(View(sala));
        }
Exemplo n.º 8
0
        public IActionResult Registrar([Bind("Nombre, Apellido, FechaDeNacimiento, Email, Username")] Cliente cliente, string password)
        {
            ComprobarFechaDeNacimiento(cliente.FechaDeNacimiento);
            ValidarEmailExistente(cliente.Email, cliente.Id);
            ValidarUserNameExistente(cliente.Username);
            ValidarPassword(password);

            if (ModelState.IsValid)
            {
                cliente.FechaDeAlta = DateTime.Now;
                cliente.Password    = password.Encriptar();
                _context.Add(cliente);
                _context.SaveChanges();

                return(RedirectToAction(nameof(CreateExitoso)));
            }

            return(View(cliente));
        }
        public IActionResult CrearReservaPorFuncion([Bind("FuncionId, CantButacas")] Reserva reserva)
        {
            if (!ValidarEdad(reserva))
            {
                ModelState.AddModelError(string.Empty, "No cuenta con edad suficiente para ver esta película");
            }

            var funcion = _context
                          .Funciones
                          .Include(x => x.Sala).ThenInclude(x => x.Tipo)
                          .FirstOrDefault(x => x.Id == reserva.FuncionId);


            if (funcion == null)
            {
                ModelState.AddModelError(nameof(Reserva.Funcion), "La función no se encuentra disponible");
            }

            ValidarCantButacas(reserva, funcion);

            if (ModelState.IsValid)
            {
                reserva.FechaDeAlta             = DateTime.Now;
                funcion.CantButacasDisponibles -= reserva.CantButacas;
                reserva.CostoTotal              = reserva.CantButacas * funcion.Sala.Tipo.PrecioEntrada;
                reserva.ClienteId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);
                _context.Add(reserva);
                _context.SaveChanges();
                return(RedirectToAction(nameof(MisReservas)));
            }

            ViewData["CostoEntrada"] = funcion.Sala.Tipo.PrecioEntrada;
            ViewData["Peliculas"]    = new SelectList(_context.Peliculas, "Id", "Nombre", funcion.PeliculaId);
            ViewData["FechaHora"]    = new SelectList(_context.Funciones, "Id", "FechaHora", funcion.FechaHora);

            reserva.Funcion = funcion;

            return(View(reserva));
        }
        public async Task <IActionResult> Ingresar(string username, string password, string returnUrl)
        {
            if (!string.IsNullOrWhiteSpace(username) && !string.IsNullOrWhiteSpace(password))    // Se valida que se envie usuario y contraseña y que no lleguen vacios
            {
                Usuario usuario = _context.Clientes.FirstOrDefault(x => x.Username == username); // se le pide a la base de datos que encuentre al usuario con ese UserName

                if (usuario == null)                                                             // aca se confirma que el usuario exista, sino.. da error
                {
                    usuario = _context.Administradores.FirstOrDefault(x => x.Username == username);
                }

                if (usuario != null)
                {
                    var passwordEncriptada = password.Encriptar();          // encripto la password del formulario con el metodo de extension

                    if (usuario.Password.SequenceEqual(passwordEncriptada)) //comparo cada uno de los elementos del array de la pasword del formulario, con la password de la base de datos
                    {
                        //aca se crea la identidad del usuario que esta ingresando:
                        // esto es para tener informacion relativa a la identidad del usuario, en el contexto actual(!)

                        ClaimsIdentity identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme);
                        identity.AddClaim(new Claim(ClaimTypes.Name, username));
                        identity.AddClaim(new Claim(ClaimTypes.Role, usuario.Role.ToString()));//De aca viene el [Authorize..role]
                        identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, usuario.Id.ToString()));
                        ClaimsPrincipal principal = new ClaimsPrincipal(identity);

                        // en este paso se hace el login del usuario al sistema:
                        await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal);

                        usuario.FechaUltimoAcceso = DateTime.Now;
                        _context.SaveChanges();

                        if (!string.IsNullOrWhiteSpace(returnUrl))
                        {
                            return(Redirect(returnUrl));
                        }

                        TempData["primerLogin"] = true;  // el tempData, vive dos request por lo que lo puedo usar entre metodos del controlador y levantarlo directamente

                        return(RedirectToAction(nameof(HomeController.Index), "Home"));
                    }
                }
            }
            ViewBag.Error     = "Usuario y/o contraseña incorrectos";
            ViewBag.UserName  = username;
            ViewBag.ReturnUrl = returnUrl;

            return(View());
        }
Exemplo n.º 11
0
        public async Task <IActionResult> Ingresar(string username, string password)
        {
            string returnUrl = TempData["returnUrl"] as string;

            if (!string.IsNullOrWhiteSpace(username) && !string.IsNullOrWhiteSpace(password))
            {
                Usuario usuario = _context.Clientes.FirstOrDefault(x => x.Username == username);

                if (usuario == null)
                {
                    usuario = _context.Administradores.FirstOrDefault(x => x.Username == username);
                }

                if (usuario != null)
                {
                    var passwordEncriptada = password.Encriptar();

                    if (usuario.Password.SequenceEqual(passwordEncriptada))
                    {
                        ClaimsIdentity identity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationScheme);

                        identity.AddClaim(new Claim(ClaimTypes.Name, username));
                        identity.AddClaim(new Claim(ClaimTypes.Role, usuario.Role.ToString()));
                        identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, usuario.Id.ToString()));

                        ClaimsPrincipal principal = new ClaimsPrincipal(identity);

                        await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, principal);

                        usuario.FechaUltimoAcceso = DateTime.Now;
                        _context.SaveChanges();

                        if (!string.IsNullOrWhiteSpace(returnUrl))
                        {
                            return(Redirect(returnUrl));
                        }

                        TempData["primerLogin"] = true;

                        return(RedirectToAction(nameof(HomeController.Index), "Home"));
                    }
                }
            }
            ViewBag.Error     = "Usuario y/o contraseña incorrectos";
            ViewBag.UserName  = username;
            ViewBag.ReturnUrl = returnUrl;

            return(View());
        }
Exemplo n.º 12
0
        public IActionResult Create(Funcion funcion)
        {
            ValidarFecha(funcion);
            ValidarHorario(funcion);

            if (ModelState.IsValid)
            {
                var sala = _context.Salas
                           .Where(x => x.Id == funcion.SalaId)
                           .FirstOrDefault();

                funcion.CantButacasDisponibles = sala.CapacidadTotal;

                _context.Add(funcion);
                _context.SaveChanges();

                return(RedirectToAction(nameof(Index)));
            }

            ViewBag.SelectSalas     = new SelectList(_context.Salas, "Id", "Nombre");
            ViewBag.SelectPeliculas = new SelectList(_context.Peliculas, "Id", "Nombre");

            return(View(funcion));
        }
Exemplo n.º 13
0
        public IActionResult Create([Bind("Legajo, Nombre, Apellido, Email, Username")] Administrador administrador, string password)
        {
            ValidarPassword(password);


            if (ModelState.IsValid)
            {
                administrador.Password = password.Encriptar();
                _context.Add(administrador);
                _context.SaveChanges();

                return(RedirectToAction("Ingresar", "Cuentas"));
            }

            return(View(administrador));
        }
        private void Seed()
        {
            if (!_context.Funciones.Any())
            {
                var sala1 = new Sala()
                {
                    Nombre = "Sala 1",
                    Tipo   = new TipoSala()
                    {
                        Nombre        = "Premium",
                        PrecioEntrada = 550
                    },
                    CapacidadTotal = 20
                };

                var sala2 = new Sala()
                {
                    Nombre = "Sala 2",
                    Tipo   = new TipoSala()
                    {
                        Nombre        = "2D",
                        PrecioEntrada = 250
                    },
                    CapacidadTotal = 120
                };

                var sala3 = new Sala()
                {
                    Nombre = "Sala 3",
                    Tipo   = new TipoSala()
                    {
                        Nombre        = "3D",
                        PrecioEntrada = 350
                    },
                    CapacidadTotal = 100
                };

                var sala4 = new Sala()
                {
                    Nombre = "Sala 4",
                    Tipo   = new TipoSala()
                    {
                        Nombre        = "4D",
                        PrecioEntrada = 450
                    },
                    CapacidadTotal = 80
                };


                var genero1 = new Genero()
                {
                    Descripcion = "Infantil"
                };

                var genero2 = new Genero()
                {
                    Descripcion = "Fantasía"
                };

                var genero3 = new Genero()
                {
                    Descripcion = "Ciencia Ficción"
                };

                var genero4 = new Genero()
                {
                    Descripcion = "Terror"
                };


                var Cliente1 = new Cliente()
                {
                    Username          = "******",
                    Password          = "******".Encriptar(),
                    Nombre            = "Luciano",
                    Apellido          = "García",
                    Email             = "*****@*****.**",
                    FechaDeNacimiento = new DateTime(1992, 06, 20),
                    Reservas          = new List <Reserva>(),
                    FechaDeAlta       = DateTime.Now
                };

                var Cliente2 = new Cliente()
                {
                    Username          = "******",
                    Password          = "******".Encriptar(),
                    Nombre            = "Carlos",
                    Apellido          = "Pereyra",
                    Email             = "*****@*****.**",
                    FechaDeNacimiento = new DateTime(2000, 11, 04),
                    Reservas          = new List <Reserva>(),
                    FechaDeAlta       = DateTime.Now
                };

                var Cliente3 = new Cliente()
                {
                    Username          = "******",
                    Password          = "******".Encriptar(),
                    Nombre            = "Carla",
                    Apellido          = "Rodriguez",
                    Email             = "*****@*****.**",
                    FechaDeNacimiento = new DateTime(1987, 01, 03),
                    Reservas          = new List <Reserva>(),
                    FechaDeAlta       = DateTime.Now
                };

                var administrador1 = new Administrador()
                {
                    Username = "******",
                    Password = "******".Encriptar(),
                    Nombre   = "Juan Carlos",
                    Apellido = "Gonzalez",
                    Email    = "*****@*****.**",
                    Legajo   = 0001
                };

                var Cliente4 = new Cliente()
                {
                    Username          = "******",
                    Password          = "******".Encriptar(),
                    Nombre            = "Laura",
                    Apellido          = "Gomez",
                    Email             = "*****@*****.**",
                    FechaDeNacimiento = new DateTime(2005, 05, 09),
                    Reservas          = new List <Reserva>(),
                    FechaDeAlta       = DateTime.Now
                };

                var pelicula1 = new Pelicula()
                {
                    Nombre   = "La Bella y La Bestia",
                    Generos  = new List <PeliculaGenero>(),
                    Sinopsis = "Bella es una brillante y guapa joven que utiliza la lectura como válvula de escape de su rutinaria vida. Cuando su padre es apresado en un misterioso castillo, " +
                               "Bella acude en su búsqueda y se presta a ocupar su lugar. El castillo es propiedad de una atormentada Bestia que, como Bella comprobará con el tiempo, resulta ser un joven príncipe " +
                               "bajo los efectos de un hechizo. Sólo cuando conozca el amor, el príncipe podrá volver a su verdadero cuerpo.",
                    Clasificacion = new Clasificacion
                    {
                        Descripcion = "ATP",
                        EdadMinima  = 0
                    },
                };

                var pelicula2 = new Pelicula()
                {
                    Nombre   = "Matrix",
                    Generos  = new List <PeliculaGenero>(),
                    Sinopsis = "Neo es un joven pirata informático que lleva una doble vida: durante el día ejerce en una empresa de servicios informáticos, mientras que por la noche se dedica a piratear " +
                               "bases de datos y saltarse sistemas de alta seguridad. Su vida cambiará cuando una noche conozca a Trinity, una misteriosa joven que parece ser una leyenda en el mundo de los 'hackers' informáticos," +
                               " que lo llevará a Neo ante su líder: Morfeo. Así descubrirá una terrible realidad y el joven deberá decidir si unirse a la resistencia o vivir su vida como hasta ahora.",
                    Clasificacion = new Clasificacion
                    {
                        Descripcion = "+16",
                        EdadMinima  = 16
                    },
                };

                var pelicula3 = new Pelicula()
                {
                    Nombre   = "It",
                    Generos  = new List <PeliculaGenero>(),
                    Sinopsis = "En el pueblo de Derry, Maine, un joven de 14 años llamado Bill Denbrough (Jaeden Martell) ayuda a su hermano pequeño, George Denbrough (Jackson Robert Scott) a hacer un barco de papel." +
                               " Bill le pide que baje al sótano por parafina para impermeabilizarlo, George baja y consigue la parafina para el barco aunque nota allí una presencia que lo asusta. Bill, con su hermano abrazándole," +
                               " unta el barco con la parafina y se lo entrega a Georgie para que vaya a jugar en la lluvia excusándose de no poder acompañarlo ya que está muy enfermo.",

                    Clasificacion = new Clasificacion
                    {
                        Descripcion = "+14",
                        EdadMinima  = 14
                    },
                };

                var pelicula4 = new Pelicula()
                {
                    Nombre   = "Annabelle 3",
                    Generos  = new List <PeliculaGenero>(),
                    Sinopsis = "En 1968, los demonólogos Ed y Lorraine Warren se llevan a su casa a la muñeca poseída Annabelle" +
                               " después de que dos enfermeras (Debbie y Camilla) aseguraran que la muñeca a menudo realizaba actividades " +
                               "violentas en su apartamento. Durante el trayecto, la muñeca convoca a los espíritus de un cementerio" +
                               " situado junto a la carretera para que ataquen a Ed, pero consigue sobrevivir. Una vez en la casa, " +
                               "Annabelle es colocada en vitrina en la sala de artefactos de la pareja y bendecida por el padre Gordon" +
                               "para asegurarse de que su mal está contenido",

                    Clasificacion = new Clasificacion
                    {
                        Descripcion = "+13",
                        EdadMinima  = 13
                    },
                };

                var funcion1 = new Funcion()
                {
                    Sala     = sala1,
                    Pelicula = pelicula1,
                    Fecha    = new DateTime(2020, 08, 15),
                    Horario  = new DateTime().AddHours(14).AddMinutes(00),
                    CantButacasDisponibles = sala1.CapacidadTotal - 4
                };

                var funcion2 = new Funcion()
                {
                    Sala     = sala2,
                    Pelicula = pelicula2,
                    Fecha    = new DateTime(2020, 04, 17),
                    Horario  = new DateTime().AddHours(20).AddMinutes(20),
                    CantButacasDisponibles = sala2.CapacidadTotal - 4
                };

                var funcion3 = new Funcion()
                {
                    Sala     = sala3,
                    Pelicula = pelicula3,
                    Fecha    = new DateTime(2020, 08, 17),
                    Horario  = new DateTime().AddHours(20).AddMinutes(20),
                    CantButacasDisponibles = sala3.CapacidadTotal - 8
                };

                var funcion4 = new Funcion()
                {
                    Sala     = sala4,
                    Pelicula = pelicula1,
                    Fecha    = new DateTime(2020, 08, 17),
                    Horario  = new DateTime().AddHours(21).AddMinutes(40),
                    CantButacasDisponibles = sala4.CapacidadTotal - 18
                };

                var funcion5 = new Funcion()
                {
                    Sala     = sala1,
                    Pelicula = pelicula3,
                    Fecha    = new DateTime(2020, 07, 15),
                    Horario  = new DateTime().AddHours(23).AddMinutes(30),
                    CantButacasDisponibles = sala1.CapacidadTotal
                };

                var funcion6 = new Funcion()
                {
                    Sala     = sala2,
                    Pelicula = pelicula2,
                    Fecha    = new DateTime(2020, 07, 15),
                    Horario  = new DateTime().AddHours(18).AddMinutes(30),
                    CantButacasDisponibles = sala2.CapacidadTotal
                };

                var reserva1 = new Reserva()
                {
                    Cliente     = Cliente1,
                    Funcion     = funcion1,
                    CantButacas = 2,
                    CostoTotal  = 1100,
                    FechaDeAlta = DateTime.Now
                };

                var reserva2 = new Reserva()
                {
                    Cliente     = Cliente1,
                    Funcion     = funcion2,
                    CantButacas = 4,
                    CostoTotal  = 1800,
                    FechaDeAlta = DateTime.Now
                };

                var reserva3 = new Reserva()
                {
                    Cliente     = Cliente1,
                    Funcion     = funcion3,
                    CantButacas = 4,
                    CostoTotal  = 1800,
                    FechaDeAlta = DateTime.Now
                };

                var reserva4 = new Reserva()
                {
                    Cliente     = Cliente2,
                    Funcion     = funcion3,
                    CantButacas = 4,
                    CostoTotal  = 1800,
                    FechaDeAlta = DateTime.Now
                };

                var reserva5 = new Reserva()
                {
                    Cliente     = Cliente3,
                    Funcion     = funcion1,
                    CantButacas = 2,
                    CostoTotal  = 1100,
                    FechaDeAlta = DateTime.Now
                };

                var reserva6 = new Reserva()
                {
                    Cliente     = Cliente2,
                    Funcion     = funcion4,
                    CantButacas = 10,
                    CostoTotal  = 4500,
                    FechaDeAlta = DateTime.Now
                };

                var reserva7 = new Reserva()
                {
                    Cliente     = Cliente3,
                    Funcion     = funcion4,
                    CantButacas = 8,
                    CostoTotal  = 3600,
                    FechaDeAlta = DateTime.Now
                };

                pelicula1.Generos.Add(new PeliculaGenero {
                    Pelicula = pelicula1, Genero = genero1
                });
                pelicula1.Generos.Add(new PeliculaGenero {
                    Pelicula = pelicula1, Genero = genero2
                });
                pelicula2.Generos.Add(new PeliculaGenero {
                    Pelicula = pelicula2, Genero = genero3
                });
                pelicula3.Generos.Add(new PeliculaGenero {
                    Pelicula = pelicula3, Genero = genero4
                });
                pelicula4.Generos.Add(new PeliculaGenero {
                    Pelicula = pelicula4, Genero = genero4
                });


                _context.AddRange(new[] { genero1, genero2, genero3, genero4 });
                _context.AddRange(new[] { pelicula1, pelicula2, pelicula3, pelicula4 });
                _context.AddRange(new[] { funcion1, funcion2, funcion3, funcion4, funcion5, funcion6 });
                _context.AddRange(new[] { Cliente1, Cliente2, Cliente3, Cliente4 });
                _context.Add(administrador1);
                _context.AddRange(new[] { sala1, sala2, sala3, sala4 });
                _context.AddRange(new[] { reserva1, reserva2, reserva3, reserva4, reserva5, reserva6, reserva7 });
                _context.SaveChanges();
            }
        }