예제 #1
0
        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");
        }
예제 #2
0
        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"));
        }
예제 #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);
            }
        }