Пример #1
0
        /// <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();
        }