public void ValidaMotorista(Tripulante tripulanteMotorista)
 {
     if (!tripulanteMotorista.Motorista)
     {
         throw new Exception("Este tripulante selecionado para motorista não pode dirigir");
     }
 }
        private void Desembarque(Tripulante passageiro, Tripulante motorista, Locais origem, Locais destino, bool ultimaViagem)
        {
            origem.Tripulantes.Remove(passageiro);
            destino.Tripulantes.Add(passageiro);
            Console.WriteLine(passageiro.Nome + "(" + passageiro.TipoTripulante.ToString() + ") desceu em: " + destino.Local);

            if (motorista != null && !ultimaViagem)
            {
                Console.WriteLine(motorista.Nome + "(" + motorista.TipoTripulante.ToString() + ") voltou ao Aeroporto");
            }
        }
 public void ValidaPassageiro(Tripulante tripulanteMotorista, Tripulante triupantePassageiro)
 {
     if ((tripulanteMotorista.TipoTripulante == TipoTripulantes.Piloto && triupantePassageiro.TipoTripulante == TipoTripulantes.Comissaria) ||
         (tripulanteMotorista.TipoTripulante == TipoTripulantes.Comissaria && triupantePassageiro.TipoTripulante == TipoTripulantes.Piloto))
     {
         throw new Exception("O Piloto e a Comissaria não podem ficar a sós");
     }
     if ((tripulanteMotorista.TipoTripulante == TipoTripulantes.ChefeDeServico && triupantePassageiro.TipoTripulante == TipoTripulantes.Oficial) ||
         (tripulanteMotorista.TipoTripulante == TipoTripulantes.Oficial && triupantePassageiro.TipoTripulante == TipoTripulantes.ChefeDeServico))
     {
         throw new Exception("O Chefe de Serviço e o Oficial não podem ficar a sós");
     }
 }
 private void RealizarEmbarque(Locais origem, Locais destino, Tripulante passageiro, Tripulante motorista, bool ultimaViagem)
 {
     _tripulantesRepository.ValidaMotorista(motorista);
     _tripulantesRepository.ValidaPassageiro(motorista, passageiro);
     Console.WriteLine("Saindo de Aeroporto até Avião");
     if (ultimaViagem)
     {
         Desembarque(motorista, null, origem, destino, ultimaViagem);
     }
     Desembarque(passageiro, motorista, origem, destino, ultimaViagem);
     Console.WriteLine("---------------------------------------------------------------------------------------------");
     Thread.Sleep(2000);
 }
        public void Transportar(Locais origem, Locais destino)
        {
            Tripulante motorista    = null;
            Tripulante passageiro   = null;
            bool       ultimaviagem = false;

            if (_locaisRepository.ContemTipo(origem, TipoTripulantes.Oficial))
            {
                passageiro = origem.Tripulantes.FirstOrDefault(t => t.TipoTripulante == TipoTripulantes.Oficial);
                motorista  = origem.Tripulantes.FirstOrDefault(t => t.TipoTripulante == TipoTripulantes.Piloto);
                ForTwo(motorista, passageiro);
            }
            else if (_locaisRepository.ContemTipo(origem, TipoTripulantes.Piloto))
            {
                passageiro = origem.Tripulantes.FirstOrDefault(t => t.TipoTripulante == TipoTripulantes.Piloto);
                motorista  = origem.Tripulantes.FirstOrDefault(t => t.TipoTripulante == TipoTripulantes.ChefeDeServico);
                ForTwo(motorista, passageiro);
            }
            else if (_locaisRepository.ContemTipo(origem, TipoTripulantes.Comissaria))
            {
                passageiro = origem.Tripulantes.FirstOrDefault(t => t.TipoTripulante == TipoTripulantes.Comissaria);
                motorista  = origem.Tripulantes.FirstOrDefault(t => t.TipoTripulante == TipoTripulantes.ChefeDeServico);
                ForTwo(motorista, passageiro);
            }
            else if (_locaisRepository.ContemTipo(origem, TipoTripulantes.ChefeDeServico))
            {
                passageiro = origem.Tripulantes.FirstOrDefault(t => t.TipoTripulante == TipoTripulantes.ChefeDeServico);
                motorista  = origem.Tripulantes.FirstOrDefault(t => t.TipoTripulante == TipoTripulantes.Policial);
                ForTwo(motorista, passageiro);
            }
            else
            {
                passageiro = origem.Tripulantes.FirstOrDefault(t => t.TipoTripulante == TipoTripulantes.Presidiario);
                motorista  = origem.Tripulantes.FirstOrDefault(t => t.TipoTripulante == TipoTripulantes.Policial);
                ForTwo(motorista, passageiro);
                ultimaviagem = true;
            }

            RealizarEmbarque(origem, destino, passageiro, motorista, ultimaviagem);
        }
Example #6
0
        private List <Tripulante> geraTripulantoAeronave2()
        {
            List <Tripulante> lista = new List <Tripulante>();

            Tripulante trip = new Tripulante();

            trip.CodANAC       = "9879879";
            trip.Nacionalidade = "BRA";
            trip.Nome          = "Thiago";
            trip.Cargo         = "Trip";

            Tripulante trip2 = new Tripulante();

            trip2.CodANAC       = "9879879";
            trip2.Nacionalidade = "BRA";
            trip2.Nome          = "Pedro";
            trip2.Cargo         = "Trip";

            lista.Add(trip);
            lista.Add(trip2);
            return(lista);
        }
 private void ForTwo(Tripulante motorista, Tripulante passageiro)
 {
     Console.WriteLine("Dirigindo o ForTwo " + motorista.Nome + "(" + motorista.TipoTripulante.ToString() + ")" +
                       " e com o passageiro " + passageiro.Nome + "(" + passageiro.TipoTripulante.ToString() + ")");
 }