Exemple #1
0
        public string AgregarReserva(ReservaViewModel reservaModelo)
        {
            var creditoService = new CreditoService();

            var clienteCreditos = creditoService.ObtenerCreditosAnio(DateTime.Parse(reservaModelo.FechaReserva).Year, reservaModelo.IdCliente);
            var reservasCliente = this.ObtenerReservasCliente(reservaModelo.IdCliente);

            var propiedadReservas = this.ObtenerReservasPropiedad(reservaModelo.IdPropiedad);
            var servicioSubasta   = new SubastaService();

            var propiedadSubastas = servicioSubasta.ObtenerSubastasDePropiedad(reservaModelo.IdPropiedad).Where(t => Convert.ToDateTime(reservaModelo.FechaReserva).CompareTo(Convert.ToDateTime(t.FechaComienzo)) >= 0 &&
                                                                                                                Convert.ToDateTime(reservaModelo.FechaReserva).CompareTo(Convert.ToDateTime(t.FechaComienzo).AddDays(10)) <= 0);

            if (clienteCreditos.Credito <= 0)
            {
                return(string.Format("Ya dispone de dos reservas en el año {0}, no posee de más créditos para acceder a una nueva.", clienteCreditos.Anio));
            }

            if (propiedadReservas.Any(t => (Convert.ToDateTime(reservaModelo.FechaReserva).CompareTo(Convert.ToDateTime(t.FechaReserva)) >= 0 &&
                                            Convert.ToDateTime(reservaModelo.FechaReserva).CompareTo(Convert.ToDateTime(t.FechaReserva).AddDays(7)) <= 0) ||
                                      (Convert.ToDateTime(reservaModelo.FechaReserva).AddDays(7).CompareTo(Convert.ToDateTime(t.FechaReserva)) >= 0 &&
                                       Convert.ToDateTime(reservaModelo.FechaReserva).AddDays(7).CompareTo(Convert.ToDateTime(t.FechaReserva).AddDays(7)) <= 0)))
            {
                return(string.Format("La semana elegida no está disponible para la propiedad seleccionada."));
            }

            if (reservasCliente.Any(t => (Convert.ToDateTime(reservaModelo.FechaReserva).CompareTo(Convert.ToDateTime(t.FechaReserva)) >= 0 &&
                                          Convert.ToDateTime(reservaModelo.FechaReserva).CompareTo(Convert.ToDateTime(t.FechaReserva).AddDays(7)) <= 0) ||
                                    (Convert.ToDateTime(reservaModelo.FechaReserva).AddDays(7).CompareTo(Convert.ToDateTime(t.FechaReserva)) >= 0 &&
                                     Convert.ToDateTime(reservaModelo.FechaReserva).AddDays(7).CompareTo(Convert.ToDateTime(t.FechaReserva).AddDays(7)) <= 0)))
            {
                return(string.Format("Ya posee una reserva en la misma semana en otra propiedad."));
            }

            RESERVA nuevaReserva = new RESERVA();

            nuevaReserva.IdCliente   = reservaModelo.IdCliente;
            nuevaReserva.Fecha       = Convert.ToDateTime(reservaModelo.FechaReserva);
            nuevaReserva.IdPropiedad = reservaModelo.IdPropiedad;
            nuevaReserva.Credito     = reservaModelo.Credito;

            this.HomeSwitchDB.RESERVA.Add(nuevaReserva);
            this.HomeSwitchDB.SaveChanges();
            CacheHomeSwitchHome.RemoveOnCache("Reservas");

            return("OK");
        }
Exemple #2
0
        public bool CancelarSubastasDePropiedadReservada(ReservaViewModel reservaModelo)
        {
            var servicioSubasta = new SubastaService();

            var propiedadSubastas = servicioSubasta.ObtenerSubastasDePropiedad(reservaModelo.IdPropiedad).Where(t => Convert.ToDateTime(reservaModelo.FechaReserva).CompareTo(Convert.ToDateTime(t.FechaComienzo)) >= 0 &&
                                                                                                                Convert.ToDateTime(reservaModelo.FechaReserva).CompareTo(Convert.ToDateTime(t.FechaComienzo).AddDays(10)) <= 0);


            if (propiedadSubastas.Any())
            {
                foreach (var subastaBorrar in propiedadSubastas)
                {
                    servicioSubasta.RemoverSubasta(subastaBorrar.IdSubasta);
                }
                return(true);
            }

            return(false);
        }
Exemple #3
0
        public bool BorrarPropiedad(int idPropiedad)
        {
            var propiedadABorrar     = this.HomeSwitchDB.PROPIEDAD.SingleOrDefault(t => t.IdPropiedad == idPropiedad);
            var subastaService       = new SubastaService();
            var propiedadAsViewModel = new PropiedadViewModel().ToViewModel(propiedadABorrar);
            var reservaService       = new ReservaService();

            var subastasPropiedad = subastaService.ObtenerSubastasDePropiedad(idPropiedad);
            var reservaPropiedad  = reservaService.ObtenerReservasPropiedad(idPropiedad);

            if (propiedadABorrar != null && !subastasPropiedad.Any() && !reservaPropiedad.Any())
            {
                this.HomeSwitchDB.PROPIEDAD.Remove(propiedadABorrar);
                this.HomeSwitchDB.SaveChanges();
                CacheHomeSwitchHome.RemoveOnCache("Propiedades");

                return(true);
            }
            else
            {
                return(false);
            }
        }