public JsonResult CrearHotSale(decimal valor, int idPropiedad, string fecha) { var reservasPropiedad = this.servicioReserva.ObtenerReservasPropiedad(idPropiedad); var propiedad = this.servicioPropiedad.ObtenerPropiedades().Where(t => t.IdPropiedad == idPropiedad).SingleOrDefault(); string mensaje; if (valor <= 0) { Response.StatusCode = (int)HttpStatusCode.BadRequest; mensaje = "El valor ingresado no es válido. No se ha podido generar la semana HOT SALE."; return(Json(mensaje, JsonRequestBehavior.AllowGet)); } var subastasPropiedad = this.servicioSubasta.ObtenerSubastasDePropiedad(idPropiedad); if (subastasPropiedad.Any(t => DateTime.Parse(fecha).CompareTo(Convert.ToDateTime(t.FechaReserva)) >= 0 && DateTime.Parse(fecha).CompareTo(Convert.ToDateTime(t.FechaReserva).AddDays(7)) <= 0)) { Response.StatusCode = (int)HttpStatusCode.BadRequest; mensaje = string.Format("La residencia {0} no está disponible durante la fecha seleccionada como HOT SALE, tiene definida una SUBASTA en el rango.", propiedad.Nombre); } if (reservasPropiedad.Any(t => DateTime.Parse(fecha).CompareTo(Convert.ToDateTime(t.FechaReserva)) >= 0 && DateTime.Parse(fecha).CompareTo(Convert.ToDateTime(t.FechaReserva).AddDays(7)) <= 0)) { Response.StatusCode = (int)HttpStatusCode.BadRequest; mensaje = string.Format("La residencia {0} no está disponible durante la fecha seleccionada como HOT SALE.", propiedad.Nombre); } HotSaleViewModel nuevoHotSale = new HotSaleViewModel(); nuevoHotSale.FechaDisponible = fecha; nuevoHotSale.Precio = valor; nuevoHotSale.IdPropiedad = idPropiedad; nuevoHotSale.Estado = true; if (!this.servicioHotSale.CrearSemanaHotSale(nuevoHotSale)) { Response.StatusCode = (int)HttpStatusCode.BadRequest; mensaje = string.Format("Ya hay definida una semana HOT SALE para la propiedad {0} dentro de la fecha elegida.", propiedad.Nombre); } else { mensaje = string.Format("Se ha creado la semana HOT SALE para la propiedad {0}.", propiedad.Nombre); } return(Json(mensaje, JsonRequestBehavior.AllowGet)); }
public bool CrearSemanaHotSale(HotSaleViewModel hotSaleModel) { var hotsales = this.ObtenerHotSalesPropiedad(hotSaleModel.IdPropiedad); if (hotsales.Any(t => DateTime.Parse(hotSaleModel.FechaDisponible).CompareTo(Convert.ToDateTime(t.FechaDisponible)) >= 0 && DateTime.Parse(hotSaleModel.FechaDisponible).CompareTo(Convert.ToDateTime(t.FechaDisponible).AddDays(7)) <= 0)) { return(false); } else { var hotSaleNueva = new HOTSALE(); hotSaleNueva.IdPropiedad = hotSaleModel.IdPropiedad; hotSaleNueva.FechaDisponible = DateTime.Parse(hotSaleModel.FechaDisponible); hotSaleNueva.Precio = hotSaleModel.Precio; hotSaleNueva.Estado = true; this.HomeSwitchDB.HOTSALE.Add(hotSaleNueva); this.HomeSwitchDB.SaveChanges(); CacheHomeSwitchHome.RemoveOnCache("HotSales"); return(true); } }