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"); }
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); }
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); } }