Beispiel #1
0
        public string AgregarReservaDesdeHotSale(ReservaViewModel reservaModelo)
        {
            var reservasCliente = this.ObtenerReservasCliente(reservaModelo.IdCliente);

            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");
        }
Beispiel #2
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");
        }
Beispiel #3
0
        public bool ConfirmarSubasta(int idSubasta)
        {
            var subastaModelo = this.HomeSwitchDB.SUBASTA.SingleOrDefault(t => t.IdSubasta == idSubasta);

            subastaModelo.Estado = string.Format("CONFIRMADO");
            this.HomeSwitchDB.SaveChanges();
            CacheHomeSwitchHome.RemoveOnCache("Subastas");

            return(true);
        }
Beispiel #4
0
        public bool ActualizarConMaximaPuja(PujaViewModel nuevaPuja)
        {
            var subastaModelo = this.HomeSwitchDB.SUBASTA.SingleOrDefault(t => t.IdSubasta == nuevaPuja.IdSubasta);

            subastaModelo.ValorMinimo = nuevaPuja.Monto;
            subastaModelo.IdCliente   = nuevaPuja.IdCliente;

            this.HomeSwitchDB.SaveChanges();
            CacheHomeSwitchHome.RemoveOnCache("Subastas");

            return(true);
        }
Beispiel #5
0
        public bool CambiarEstatusPropiedad(int idPropiedad)
        {
            var propiedadABorrar = this.HomeSwitchDB.PROPIEDAD.SingleOrDefault(t => t.IdPropiedad == idPropiedad);

            if (propiedadABorrar != null)
            {
                propiedadABorrar.Activa = !propiedadABorrar.Activa;
                this.HomeSwitchDB.SaveChanges();
                CacheHomeSwitchHome.RemoveOnCache("Propiedades");
                return(true);
            }

            return(false);
        }
Beispiel #6
0
        public bool CancelarReserva(int idReserva)
        {
            var reservaBorrar = this.HomeSwitchDB.RESERVA.SingleOrDefault(t => t.IdReserva == idReserva);

            if (reservaBorrar != null)
            {
                this.HomeSwitchDB.RESERVA.Remove(reservaBorrar);
                this.HomeSwitchDB.SaveChanges();
                CacheHomeSwitchHome.RemoveOnCache("Reservas");
                return(true);
            }

            return(false);
        }
Beispiel #7
0
        public bool BorrarSemanaHotSale(int idHotSale)
        {
            var hotsale = this.HomeSwitchDB.HOTSALE.Where(t => t.IdHotSale == idHotSale).SingleOrDefault();

            if (hotsale != null)
            {
                this.HomeSwitchDB.HOTSALE.Remove(hotsale);
                this.HomeSwitchDB.SaveChanges();
                CacheHomeSwitchHome.RemoveOnCache("HotSales");

                return(true);
            }

            return(false);
        }
Beispiel #8
0
        public bool ModificarSemanaHotSale(int idHotSale, decimal nuevoValor)
        {
            var hotsale = this.HomeSwitchDB.HOTSALE.Where(t => t.IdHotSale == idHotSale).SingleOrDefault();

            if (hotsale != null)
            {
                hotsale.Precio = nuevoValor;

                this.HomeSwitchDB.SaveChanges();
                CacheHomeSwitchHome.RemoveOnCache("HotSales");

                return(true);
            }

            return(false);
        }
Beispiel #9
0
        public bool LiberarHotSale(DateTime fecha, int idPropiedad)
        {
            var hotsale = this.HomeSwitchDB.HOTSALE.Where(t => t.IdPropiedad == idPropiedad && t.FechaDisponible == fecha).SingleOrDefault();

            if (hotsale != null)
            {
                hotsale.Estado = true;

                this.HomeSwitchDB.SaveChanges();
                CacheHomeSwitchHome.RemoveOnCache("HotSales");

                return(true);
            }

            return(false);
        }
Beispiel #10
0
        public bool EliminarImagen(int idImagen)
        {
            var imagenAEliminar = this.HomeSwitchDB.IMAGEN.Where(t => t.IdImagen == idImagen).SingleOrDefault();

            if (imagenAEliminar == null)
            {
                return(false);
            }

            this.HomeSwitchDB.IMAGEN.Remove(imagenAEliminar);
            this.HomeSwitchDB.SaveChanges();

            CacheHomeSwitchHome.RemoveOnCache("Propiedades");
            CacheHomeSwitchHome.RemoveOnCache("Subastas");
            return(true);
        }
Beispiel #11
0
        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");
        }
Beispiel #12
0
        public bool ActualizarSubasta(SUBASTA subastaActualizada, int idSubasta)
        {
            if (subastaActualizada.ValorMinimo > 0)
            {
                var subastaModelo = this.HomeSwitchDB.SUBASTA.SingleOrDefault(t => t.IdSubasta == idSubasta);
                subastaModelo.ValorMinimo = subastaActualizada.ValorMinimo;

                this.HomeSwitchDB.SaveChanges();
                CacheHomeSwitchHome.RemoveOnCache("Subastas");

                return(true);
            }
            else
            {
                return(false);
            }
        }
Beispiel #13
0
        public bool ActualizarPropiedad(PROPIEDAD datosPrioridad, int idPropiedad)
        {
            if (datosPrioridad.Descripcion != null && datosPrioridad.Pais != null && datosPrioridad.Descripcion.Length >= 20)
            {
                var propiedadModelo = this.HomeSwitchDB.PROPIEDAD.SingleOrDefault(t => t.IdPropiedad == idPropiedad);
                propiedadModelo.Descripcion = datosPrioridad.Descripcion;
                propiedadModelo.Pais        = datosPrioridad.Pais;
                this.HomeSwitchDB.SaveChanges();
                CacheHomeSwitchHome.RemoveOnCache("Propiedades");

                return(true);
            }
            else
            {
                return(false);
            }
        }
Beispiel #14
0
        public string ConfirmarPremium(int IdCliente)
        {
            var premiumAceptado = this.HomeSwitchDB.PREMIUM.Where(t => t.IdCliente == IdCliente).FirstOrDefault();

            if (premiumAceptado != null)
            {
                premiumAceptado.Aceptado = "SI";
                this.HomeSwitchDB.SaveChanges();
                CacheHomeSwitchHome.RemoveOnCache("Clientes");

                return(string.Format("OK"));
            }
            else
            {
                return(string.Format("No se pudo obtener la información del usuario seleccionado. Ha ocurrido un error en el servidor."));
            }
        }
Beispiel #15
0
        public bool RemoverSubasta(int idSubasta)
        {
            var subastaABorrar = this.HomeSwitchDB.SUBASTA.SingleOrDefault(t => t.IdSubasta == idSubasta);

            if (subastaABorrar != null)
            {
                this.HomeSwitchDB.SUBASTA.Remove(subastaABorrar);
                this.HomeSwitchDB.SaveChanges();
                CacheHomeSwitchHome.RemoveOnCache("Subastas");

                return(true);
            }
            else
            {
                return(false);
            }
        }
Beispiel #16
0
        public bool ActualizarContrasenia(int idCliente, string nuevaPass)
        {
            var cliente = this.HomeSwitchDB.CLIENTE.Where(t => t.IdCliente == idCliente).SingleOrDefault();

            if (cliente != null)
            {
                var usuario = this.HomeSwitchDB.USUARIO.Where(t => t.IdUsuario == cliente.IdUsuario).SingleOrDefault();

                usuario.Password = nuevaPass;

                this.HomeSwitchDB.SaveChanges();
                CacheHomeSwitchHome.RemoveOnCache("Clientes");

                return(true);
            }

            return(false);
        }
Beispiel #17
0
        public string RechazarSolicitudPremium(int rechazado)
        {
            var premiumRechazado = this.HomeSwitchDB.PREMIUM.Where(t => t.IdCliente == rechazado).FirstOrDefault();

            if (premiumRechazado != null)
            {
                this.HomeSwitchDB.PREMIUM.Remove(premiumRechazado);

                this.HomeSwitchDB.SaveChanges();
                CacheHomeSwitchHome.RemoveOnCache("Clientes");

                return(string.Format("OK"));
            }
            else
            {
                return(string.Format("No se pudo obtener la información del usuario seleccionado. Ha ocurrido un error en el servidor."));
            }
        }
Beispiel #18
0
        public bool CrearPropiedad(PROPIEDAD nuevaPropiedad)
        {
            List <PropiedadViewModel> propiedadesActuales = this.ObtenerTodasLasPropiedades();

            if (nuevaPropiedad.Pais != null && !propiedadesActuales.Any(t => t.Nombre.Trim().ToLower() == nuevaPropiedad.Nombre.Trim().ToLower()))
            {
                this.HomeSwitchDB.PROPIEDAD.Add(nuevaPropiedad);
                this.HomeSwitchDB.SaveChanges();
                CacheHomeSwitchHome.RemoveOnCache("Propiedades");

                return(true);
            }

            else
            {
                return(false);
            }
        }
Beispiel #19
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"));
        }
Beispiel #20
0
        public string RegistrarComoPremium(int IdCliente)
        {
            var tieneSolicitudPremium = this.HomeSwitchDB.PREMIUM.Where(t => t.IdCliente == IdCliente).Any();

            if (!tieneSolicitudPremium)
            {
                var nuevoPremium = new PREMIUM();
                nuevoPremium.IdCliente = IdCliente;
                nuevoPremium.Aceptado  = "NO";

                this.HomeSwitchDB.PREMIUM.Add(nuevoPremium);
                this.HomeSwitchDB.SaveChanges();

                CacheHomeSwitchHome.RemoveOnCache("Clientes");

                return(string.Format("OK"));
            }

            return(string.Format("No se pudo obtener la información del usuario seleccionado. Ha ocurrido un error en el servidor."));
        }
Beispiel #21
0
        public string ConfirmarNuevoCliente(int idCliente)
        {
            var nuevoCliente = this.HomeSwitchDB.CLIENTE.SingleOrDefault(t => t.IdCliente == idCliente);

            if (nuevoCliente != null)
            {
                var nuevoUsuario = this.HomeSwitchDB.USUARIO.SingleOrDefault(t => t.IdUsuario == nuevoCliente.USUARIO.IdUsuario);
                nuevoUsuario.Login = true;

                this.HomeSwitchDB.SaveChanges();

                CacheHomeSwitchHome.RemoveOnCache("Clientes");
                return(string.Format("OK"));
            }

            else
            {
                return(string.Format("No se pudo obtener la información del usuario seleccionado. Ha ocurrido un error en el servidor."));
            }
        }
Beispiel #22
0
        public string RechazarSolicitudNuevoCliente(int rechazado)
        {
            var solicitudNuevoCliente = this.HomeSwitchDB.CLIENTE.Where(t => t.IdCliente == rechazado).FirstOrDefault();

            if (solicitudNuevoCliente != null)
            {
                var solicitudNuevoUsuario = this.HomeSwitchDB.USUARIO.Where(t => t.Usuario == solicitudNuevoCliente.USUARIO.Usuario).FirstOrDefault();;

                this.HomeSwitchDB.CLIENTE.Remove(solicitudNuevoCliente);
                this.HomeSwitchDB.USUARIO.Remove(solicitudNuevoUsuario);

                this.HomeSwitchDB.SaveChanges();
                CacheHomeSwitchHome.RemoveOnCache("Clientes");

                return(string.Format("OK"));
            }
            else
            {
                return(string.Format("No se pudo obtener la información del usuario seleccionado. Ha ocurrido un error en el servidor."));
            }
        }
Beispiel #23
0
        public bool AgregarImagen(int idPropiedad, string nombreImagen)
        {
            var yaExiste = this.HomeSwitchDB.IMAGEN.Where(t => t.Nombre == nombreImagen).Any();

            if (yaExiste)
            {
                return(false);
            }

            IMAGEN nuevaImagen = new IMAGEN();

            nuevaImagen.Nombre      = nombreImagen;
            nuevaImagen.IdPropiedad = idPropiedad;
            nuevaImagen.Path        = string.Format("/app-content/{0}", nombreImagen);

            this.HomeSwitchDB.IMAGEN.Add(nuevaImagen);
            this.HomeSwitchDB.SaveChanges();

            CacheHomeSwitchHome.RemoveOnCache("Propiedades");
            CacheHomeSwitchHome.RemoveOnCache("Subastas");
            return(true);
        }
Beispiel #24
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);
            }
        }
Beispiel #25
0
        public string RegistrarNuevoCliente(ClienteViewModel nuevoCliente)
        {
            if (this.ExisteCliente(nuevoCliente))
            {
                return(string.Format("Ya existe un usuario registrado con la cuenta de correo '{0}'.", nuevoCliente.Email));
            }


            if (this.CrearUsuario(nuevoCliente.Usuario, nuevoCliente.Password))
            {
                var clienteACrear = new CLIENTE();

                clienteACrear.Nombre   = nuevoCliente.Nombre;
                clienteACrear.Apellido = nuevoCliente.Apellido;

                clienteACrear.IdUsuario = this.HomeSwitchDB.USUARIO.Where(t => t.Usuario == nuevoCliente.Usuario).Select(t => t.IdUsuario).FirstOrDefault();

                var esCBUNumerico = int.TryParse(nuevoCliente.CBU, out int cbuEntero);

                clienteACrear.Banco             = nuevoCliente.Banco;
                clienteACrear.CBU               = esCBUNumerico ? cbuEntero : 0;
                clienteACrear.DomicioFiscal     = nuevoCliente.DomicioFiscal;
                clienteACrear.FechaDeNacimiento = Convert.ToDateTime(nuevoCliente.FechaDeNacimiento);
                clienteACrear.MedioDePago       = nuevoCliente.MedioDePago;
                clienteACrear.DNI               = nuevoCliente.DNI;
                clienteACrear.Email             = nuevoCliente.Email;

                this.HomeSwitchDB.CLIENTE.Add(clienteACrear);
                this.HomeSwitchDB.SaveChanges();

                CacheHomeSwitchHome.RemoveOnCache("Clientes");

                return(string.Format("OK"));
            }

            return(string.Format("El nombre de usuario ingresado: '{0}' no está disponible.", nuevoCliente.Usuario));
        }
Beispiel #26
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);
            }
        }