private static bool isMayor(String nameAtributo, Alojamiento al1, Alojamiento al2)
        {
            bool resultado = false;

            if (al2 == null)
            {
                return(false);
            }
            switch (nameAtributo)
            {
            case "estrella":
                if (al1.getEstrellas() > al2.getEstrellas())
                {
                    resultado = true;
                }
                break;

            case "codigo":
                if (al1.getCodigo() > al2.getCodigo())
                {
                    resultado = true;
                }
                break;

            case "cantidadDePersonas":
                if (al1.getCantidadDePersonas() > al2.getCantidadDePersonas())
                {
                    resultado = true;
                }
                break;
            }
            return(resultado);
        }
 private bool estaAlojamiento(Alojamiento alojamiento)
 {
     foreach (Alojamiento al in this.alojamientos)
     {
         if (al != null)
         {
             if (al.IgualCodigo(alojamiento))
             {
                 return(true);
             }
         }
     }
     return(false);
 }
 // Este metodo es el que realmente se encarga de orgenar todo
 private static Alojamiento[] orderByAtributo(String nameAtributo, Alojamiento[] alojamientos)
 {
     for (int i = 0; i < alojamientos.Length; i++)
     {
         for (int j = 0; j < alojamientos.Length - 1; j++)
         {
             if (Alojamiento.isMayor(nameAtributo, alojamientos[j], alojamientos[j + 1]))
             {
                 Alojamiento aux = alojamientos[j];
                 alojamientos[j]     = alojamientos[j + 1];
                 alojamientos[j + 1] = aux;
             }
         }
     }
     return(alojamientos);
 }
        public void AgregarAlojamiento(Alojamiento alojamiento)
        {
            String message;

            // Verifico que la agencia no este llena
            if (this.estaLlena())
            {
                message = "La agencia esta llena. No se pueden agregar mas alojamientos";
            }
            // Verifico si la agencia no tiene alojamientos. Agrego en caso que no tenga
            else if (!this.hayAlojamiento())
            {
                // Agrego al array
                this.alojamientos[this.cantidadDeAlojamientos] = alojamiento;

                // Incremento en 1 el atributo de cantidad de alojamientos
                this.cantidadDeAlojamientos++;

                message = "Se agrego el alojamiento correctamente";
            }
            // Verifico que el alojamiento no este en la agencia
            else if (this.estaAlojamiento(alojamiento))
            {
                message = "La agencia ya posee ese alojamiento";
            }
            // Agrego el alojamiento
            else
            {
                // Agrego al array
                this.alojamientos[this.cantidadDeAlojamientos] = alojamiento;

                // Incremento en 1 el atributo de cantidad de alojamientos
                this.cantidadDeAlojamientos++;

                message = "Se agrego el alojamiento correctamente";
            }

            // Informo al usuario si se agrego o si no. Con su respectivo mensaje
            Console.WriteLine(message + "\n");
        }
 public static Alojamiento[] OrderByCodigo(Alojamiento[] alojamientos)
 {
     return(Alojamiento.orderByAtributo("codigo", alojamientos));
 }
 public static Alojamiento[] OrderByCantidadDePersonas(Alojamiento[] alojamientos)
 {
     return(Alojamiento.orderByAtributo("cantidadDePersonas", alojamientos));
 }
 public static Alojamiento[] OrderByEstrellas(Alojamiento[] alojamientos)
 {
     return(Alojamiento.orderByAtributo("estrella", alojamientos));
 }
 public bool IgualCodigo(Alojamiento alojamiento)
 {
     return(this.codigo == alojamiento.getCodigo());
 }
 public void OrderByCodigo()
 {
     this.alojamientos = Alojamiento.OrderByCodigo(this.alojamientos);
 }
 public void OrderByCantidadDePersonas()
 {
     this.alojamientos = Alojamiento.OrderByCantidadDePersonas(this.alojamientos);
 }
 // Metodos de ordenamiento
 public void OrderByEstrellas()
 {
     this.alojamientos = Alojamiento.OrderByEstrellas(this.alojamientos);
 }