public string CrearSubasta(SUBASTA nuevaSubasta) { List <SubastaViewModel> subastasPropiedad = this.ObtenerSubastasDePropiedad(nuevaSubasta.IdPropiedad); ReservaService servicioReserva = new ReservaService(); var reservasPropiedad = servicioReserva.ObtenerReservasPropiedad(nuevaSubasta.IdPropiedad); if (nuevaSubasta.ValorMinimo <= 0) { return(string.Format("No se pudo crear la subasta, el valor inicial para pujar debe ser mayor que 0.")); } if (nuevaSubasta.FechaReserva.CompareTo(nuevaSubasta.FechaComienzo.AddDays(3)) < 0) { return(string.Format("No se pudo crear la subasta, la semana que se desea subastar transcurre durante o antes que la subasta.")); } if (subastasPropiedad.Any(t => nuevaSubasta.FechaComienzo.CompareTo(Convert.ToDateTime(t.FechaReserva)) >= 0 && nuevaSubasta.FechaComienzo.CompareTo(Convert.ToDateTime(t.FechaReserva).AddDays(7)) <= 0)) { return(string.Format("No se pudo crear la subasta para la propiedad seleccionada, ya posee una subasta definida durante los días elegidos.")); } if (reservasPropiedad.Any(t => nuevaSubasta.FechaReserva.CompareTo(Convert.ToDateTime(t.FechaReserva)) >= 0 && nuevaSubasta.FechaReserva.CompareTo(Convert.ToDateTime(t.FechaReserva).AddDays(7)) <= 0)) { return(string.Format("No se pudo crear la subasta para la propiedad seleccionada, posee reservas confirmadas durante los días elegidos a subastar.")); } this.HomeSwitchDB.SUBASTA.Add(nuevaSubasta); this.HomeSwitchDB.SaveChanges(); CacheHomeSwitchHome.RemoveOnCache("Subastas"); return("OK"); }
public string PujarSubasta(SUBASTA subastaPujada, int idSubasta, int idCliente) { var subastaActualizar = this.HomeSwitchDB.SUBASTA.SingleOrDefault(t => t.IdSubasta == idSubasta); var pujaService = new PujaService(); var reservas = new ReservaService(); if (subastaActualizar == null) { return(string.Format("Se ha producido un error en el servidor.")); } if (subastaActualizar.ValorActual >= subastaPujada.ValorActual || subastaActualizar.ValorMinimo >= subastaPujada.ValorActual) { return(string.Format("El valor ingresado es menor al valor actual.")); } if (reservas.ObtenerReservasClientePorAnio(idCliente, DateTime.Now.Year).Count == 2) { return(string.Format("Ya posee dos reservas efectuadas, no puede participar de la puja.")); } if (reservas.ObtenerReservasCliente(idCliente).Any(t => (Convert.ToDateTime(t.FechaReserva).CompareTo(Convert.ToDateTime(subastaActualizar.FechaReserva)) <= 0 && Convert.ToDateTime(t.FechaReserva).AddDays(7).CompareTo(Convert.ToDateTime(subastaActualizar.FechaReserva)) >= 0) || (Convert.ToDateTime(subastaActualizar.FechaReserva).CompareTo(Convert.ToDateTime(t.FechaReserva)) <= 0 && Convert.ToDateTime(subastaActualizar.FechaReserva).AddDays(7).CompareTo(Convert.ToDateTime(t.FechaReserva)) >= 0) )) { return(string.Format("Ya posee una reserva durante la semana que se está subastando.")); } subastaActualizar.ValorActual = subastaPujada.ValorActual; subastaActualizar.IdCliente = idCliente; this.HomeSwitchDB.SaveChanges(); CacheHomeSwitchHome.RemoveOnCache("Subastas"); return(string.Format("OK")); }
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); } }