/// <summary> /// Escolhe o destino /// </summary> /// <param name="andar"></param> /// <returns></returns> public void EscolherDestino(int andar) { // verifica se porta esta aberta if (StatusAtualPorta != StatusPorta.Aberta) { throw new InvalidOperationException("Não é possivel selecionar um andar com a porta fechada"); } // verifica se o andar é valido if (andar < 0) { // informa que o andar é inválido throw new ArgumentException("O andar informado deve ser superior ou igual a zero."); } else if (andar != AndarAtual) { if (Rota == null) { Rota = new List <Destino>(); } if (AndarAtual == 0 || andar > AndarAtual) { // adiciona destino na lista de subida Rota.Add(new Destino { Sentido = Sentido.Subir, Andar = andar }); } else { // adiciona na lista de descida Rota.Add(new Destino { Sentido = Sentido.Descer, Andar = andar }); } } Console.WriteLine(string.Format("Novo destino adicionado, {0}º andar.", andar)); // fecha porta FecharPorta(); }