private ITripulante TransportarTripulantes(ILocalidade localOrigem, ILocalidade localDestino, IEnumerable <ITripulante> listaTripulacao) { var listaOrdenada = listaTripulacao.OrderBy(o => o.Tipo); var passageiro = listaOrdenada.FirstOrDefault(); ITripulante motorista = null; switch (passageiro.Tipo) { case TipoTripulante.Comissaria: motorista = listaOrdenada .FirstOrDefault(t => t.IsMotorista && t.Identificador != passageiro.Identificador && t.Tipo != TipoTripulante.Piloto && t.Tipo != TipoTripulante.Policial && t.Tipo != TipoTripulante.Presidiario); break; case TipoTripulante.Oficial: motorista = listaOrdenada .FirstOrDefault(t => t.IsMotorista && t.Identificador != passageiro.Identificador && t.Tipo != TipoTripulante.ChefeServico && t.Tipo != TipoTripulante.Policial && t.Tipo != TipoTripulante.Presidiario); break; default: motorista = listaOrdenada .FirstOrDefault(t => t.IsMotorista && t.Identificador != passageiro.Identificador); break; } var ultimaViagem = passageiro.Tipo.Equals(TipoTripulante.Presidiario); _smartForTwoBusiness.EmbarcarTripulantes(localOrigem, motorista, passageiro); _smartForTwoBusiness.DesembarcarTripulantes(localDestino, ultimaViagem); return(ultimaViagem ? null : motorista); }
public IVeiculoTransporte EmbarcarOcupantes(ITripulante motorista, ITripulante passageiro) { ListaOcupantes.Add(motorista); ListaOcupantes.Add(passageiro); Motorista = motorista; Passageiro = passageiro; return(this); }
public void EmbarcarTripulantes(ILocalidade localOrigem, ITripulante motorista, ITripulante passageiro) { _veiculoTransporte.EmbarcarOcupantes(motorista, passageiro); _validacaoTransporte .ValidarQuantidadeOcupantes(_veiculoTransporte) .ValidarMotorista(_veiculoTransporte) .ValidarOcupantes(_veiculoTransporte); Console.WriteLine(_veiculoTransporte.ToString()); localOrigem.RemoverTripulante(motorista); localOrigem.RemoverTripulante(passageiro); }
public void RemoverTripulante(ITripulante tripulante) { tripulante.IsTransportado = true; }
public ILocalidade AdicionarTripulante(ITripulante tripulante) { ListaTripulacao.Add(tripulante); ListaTripulacao = ListaTripulacao.ToList().Shuffle(); return(this); }