public void RestricoesLocal(ILocal local) { if (local.QuantidadeOcupantes >= 2 && local.ContemTipo(TipoPessoa.Presidiario) && !local.ContemTipo(TipoPessoa.Presidiario)) { throw new Exception("O Presidiário não pode ficar sem a presença do Policial."); } if (local.QuantidadeOcupantes == 2) { ValidarTiposCompanhia(local.Ocupantes[0].Tipo, local.Ocupantes[1].Tipo); } }
private void Transferir(ILocal origem, ILocal destino) { IPessoa motorista = null; IPessoa passageiro = null; bool ultimaViagem = false; if (origem.ContemTipo(TipoPessoa.Oficial)) { passageiro = origem.GetPessoaPorTipo(TipoPessoa.Oficial); motorista = origem.GetPessoaPorTipo(TipoPessoa.Piloto); } else if (origem.ContemTipo(TipoPessoa.Piloto)) { passageiro = origem.GetPessoaPorTipo(TipoPessoa.Piloto); motorista = origem.GetPessoaPorTipo(TipoPessoa.ChefeDeServico); } else if (origem.ContemTipo(TipoPessoa.Comissaria)) { passageiro = origem.GetPessoaPorTipo(TipoPessoa.Comissaria); motorista = origem.GetPessoaPorTipo(TipoPessoa.ChefeDeServico); } else if (origem.ContemTipo(TipoPessoa.ChefeDeServico)) { passageiro = origem.GetPessoaPorTipo(TipoPessoa.ChefeDeServico); motorista = origem.GetPessoaPorTipo(TipoPessoa.Policial); } else { passageiro = origem.GetPessoaPorTipo(TipoPessoa.Presidiario); motorista = origem.GetPessoaPorTipo(TipoPessoa.Policial); ultimaViagem = true; } RealizarViagem(origem, destino, motorista, passageiro, ultimaViagem); }