Esempio n. 1
0
        public async Task <ActionResult <Entrada> > Create(Entrada entrada)
        {
            logger.LogInformation($"Nueva entrada de cine");
            var entradaSesion = await context.Sesiones.Where(x => x.Id == entrada.SesionId).FirstOrDefaultAsync();

            if (entradaSesion == null)
            {
                throw new EntradaException("La entrada no existe", 1);
            }
            if (entradaSesion.Activa == false)
            {
                throw new EntradaException("La sesion no esta disponible para comprar entradas", 2);
            }
            if (entradaSesion.EntradasRestantes < entrada.EntradasTotales)
            {
                throw new EntradaException("No quedan entradas disponibles", 3);
            }

            entrada.GananciaTotal += PrecioTotalCompra(entrada);
            context.Entradas.Add(entrada);
            entradaSesion.EntradasRestantes -= entrada.EntradasTotales;

            await context.SaveChangesAsync();

            return(entrada);
        }
Esempio n. 2
0
 public async Task Create(Pelicula pelicula)
 {
     logger.LogInformation($"Nueva pelicula en cartelera");
     context.Peliculas.Add(pelicula);
     pelicula.Activa = true;
     await context.SaveChangesAsync();
 }
Esempio n. 3
0
        public async Task Create(Sesion sesion)
        {
            Sesion nuevaSesion = context.Sesiones.Where(x => x.Hora == sesion.Hora && x.SalaId == sesion.Id && x.Activa).FirstOrDefault();

            if (nuevaSesion == sesion)
            {
                logger.LogInformation($"Ya existe una sesión para esta sala a esa hora");
            }
            DateTime hora = sesion.Hora;

            if (hora < DateTime.Now)
            {
                logger.LogInformation($"Ya ha pasado la hora");
            }
            logger.LogInformation($"Nueva sesion");
            context.Sesiones.Add(sesion);
            sesion.Activa = true;
            //sesion.EntradasRestantes = context.Salas.FindAsync(sesion.SalaId).Result.CapacidadMax;
            await context.SaveChangesAsync();
        }
Esempio n. 4
0
        public async Task <Sala> Desactivar(int id)
        {
            logger.LogInformation($"Sala fuera de servicio");
            Sala desactivada = await context.Salas.FindAsync(id);

            desactivada.Activa = false;

            context.Salas.Update(desactivada);
            await context.SaveChangesAsync();

            return(desactivada);
        }