Exemplo n.º 1
0
        private bool VerificarHoraDisponible(Reserva reserva)
        {
            var listado = _context.Reservas.Where(r => r.IdSala == reserva.IdSala && r.Fecha.Value.Year == reserva.Fecha.Value.Year && r.Fecha.Value.Month == reserva.Fecha.Value.Month
                && r.Fecha.Value.Day == reserva.Fecha.Value.Day).ToList();

            var consulta = listado.Select(r => new
                {
                    Desde = new DateTime(r.Fecha.Value.Year, r.Fecha.Value.Month, r.Fecha.Value.Day,
                                         Convert.ToInt32(r.Desde.Substring(0, 2).Replace(":", "")),
                                         Convert.ToInt32(r.Desde.Substring(r.Desde.Length - 2, 2).Replace(":", "")), 0),
                    Hasta = new DateTime(r.Fecha.Value.Year, r.Fecha.Value.Month, r.Fecha.Value.Day,
                                         Convert.ToInt32(r.Hasta.Substring(0, 2).Replace(":", "")),
                                         Convert.ToInt32(r.Hasta.Substring(r.Hasta.Length - 2, 2).Replace(":", "")), 0)
                });

            var reservaConsulta = new
                {
                    Desde = new DateTime(reserva.Fecha.Value.Year, reserva.Fecha.Value.Month, reserva.Fecha.Value.Day,
                        Convert.ToInt32(reserva.Desde.Substring(0, 2).Replace(":", "")),
                        Convert.ToInt32(reserva.Desde.Substring(reserva.Desde.Length - 2, 2).Replace(":", "")), 0),
                    Hasta = new DateTime(reserva.Fecha.Value.Year, reserva.Fecha.Value.Month, reserva.Fecha.Value.Day,
                        Convert.ToInt32(reserva.Hasta.Substring(0, 2).Replace(":", "")),
                        Convert.ToInt32(reserva.Hasta.Substring(reserva.Hasta.Length - 2, 2).Replace(":", "")), 0)
                };

            return consulta.Any(r => (r.Desde > reservaConsulta.Desde && r.Desde < reservaConsulta.Hasta) ||
                (r.Hasta > reservaConsulta.Desde && r.Hasta < reservaConsulta.Hasta));
        }
Exemplo n.º 2
0
        public bool Guardar(Reserva reserva)
        {
            if (VerificarHoraDisponible(reserva))
                return false;

            _context.Reservas.Add(reserva);
            _context.SaveChanges();

            return true;
        }