Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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);
            }
        }