// 5. Liberar viagem de uma determinada origem para um determinado destino // Uma viagem só pode ser liberada quando a jornada diária foi iniciada. // // Sempre que a lotação de um carro está completa, este sai em direção ao destino e, lá chegando, é // estacionado na garagem. // //Quando um estacionamento fica vazio, uma nova viagem só pode ser iniciada desta origem quando um //veículo retornar à garagem. static void liberarViagem() { int idOrigem, idDestino; Veiculo veiculo; Garagem garOrigem = null, garDestino = null; if (garagens.JornadaAtiva) { mostreGaragens(); // recolhe do teclado o id e armazena idOrigem = recebeInt("Digite o ID origem: "); // faz a mesma coisa com o destino idDestino = recebeInt("Digite o ID destino: "); // quantos passageiros: foreach (Garagem garagem in garagens.ListaDeGaragens) { if (garagem.Id == idOrigem) { garOrigem = garagem; } if (garagem.Id == idDestino) { garDestino = garagem; } } if (garOrigem == null && garDestino == null) { println("Origem ou Destino não existem"); } else if (garOrigem.Id == garDestino.Id) { println("Origem igual destino"); } else if (garOrigem.PilhaVeiculos.Count() != 0) { veiculo = garOrigem.PilhaVeiculos.Pop(); garDestino.PilhaVeiculos.Push(veiculo); Viagem viagem = new Viagem(veiculo, garOrigem, garDestino); Transporte tranporte = new Transporte(veiculo, veiculo.Lotacao); println("\nViagem iniciada com sucesso!"); //incluir viagem na lista viagens.incluirViagem(viagem); } else { println("\nGaragem vazia"); } } else { println(""); println("Jornada ainda não foi iniciada"); print(""); } Console.ReadKey(); }
public override bool Equals(object obj) { Viagem v = (Viagem)obj; return(this.id.Equals(v.Id)); }
public bool incluirViagem(Viagem viagem) { ListaDeViagens.Add(viagem); return(true); }
public void incluir(Viagem viagem) { _Viagens.Enqueue(viagem); }