public void SetPreferencias(Enums.Enums.PromotionLevel nivel)
        {
            if (nivel == Enums.Enums.PromotionLevel.Zero)
            {
                throw new Exception("No deberían necesitarse estas preferencias para un cliente que no desea recibir promociones");
            }
            // Esta función es para llamar a posteriori si necesitamos tener los bool seteados
            int umbral = 0;

            switch (nivel)
            {
            case Enums.Enums.PromotionLevel.Low:
                umbral = 75; break;

            case Enums.Enums.PromotionLevel.Mid:
                umbral = 20; break;

            case Enums.Enums.PromotionLevel.High:
                umbral = 0; break;     // No discriminamos
            }
            // Lo interesante es que si alguien quiere recibir poca promoción
            // la reciba de hoteles de las características que siempre reserva, si las hay
            OnlyAdults = 100 * OnlyAdultsCount / TotalBookings > umbral || umbral == 0;
            AllowGroup = 100 * AllowGroupCount / TotalBookings > umbral || umbral == 0;
            Activities = 100 * ActivitiesCount / TotalBookings > umbral || umbral == 0;
            // Podríamos acotar más la promoción por tipos de hotel con un funcionamiento análogo al anterior
        }
        public bool RatingAccepted(Enums.Enums.PromotionLevel nivel, double rating)
        {
            switch (nivel)
            {
            case Enums.Enums.PromotionLevel.Low:
                return(Math.Abs(RatingMean - rating) < 0.5);

            case Enums.Enums.PromotionLevel.Mid:
                return(Math.Abs(RatingMean - rating) < 1);

            case Enums.Enums.PromotionLevel.High:
                return(true);    // No discriminamos
            }
            return(false);
        }