示例#1
0
        private int ObtenhaQtdPassageirosNoVoo(IRota rota, IDataDeSaida data)
        {
            const int NENHUM_PASSAGEIRO = 0;

            var passageirosAgrupadosPorVoo = ObtenhaTodosPassageiros().GroupBy(x => new { x.Rota.Origem, x.Rota.Destino, x.DataDeSaida.Data })
                                             .Where(x => x.Key.Origem == rota.Origem &&
                                                    x.Key.Destino == rota.Destino &&
                                                    x.Key.Data == data.Data)
                                             .Select(group => new
            {
                qtdPassageiros = group.Count()
            });

            return(passageirosAgrupadosPorVoo.FirstOrDefault()?.qtdPassageiros ?? NENHUM_PASSAGEIRO);
        }
示例#2
0
        private static decimal ObtenhaPicData(IDataDeSaida data)
        {
            var servicoDeData = Fabricas.FabricaDeServicos.FabricaDeServicoDeDataDeSaida.Crie();

            return(servicoDeData.Obtenha(data)?.ProbabilidadeDeComparecimento ?? 100);
        }
示例#3
0
 public PassageiroVoo(string nome, IIdadeDoPassageiro idade, IRota rota, IDataDeSaida dataDeSaida) : base(nome, idade)
 {
     Rota        = rota;
     DataDeSaida = dataDeSaida;
 }
示例#4
0
 public static IVoo Crie(IRota rota, IDataDeSaida data)
 {
     return(new Voo(rota, data));
 }
示例#5
0
 public Voo(IRota rota, IDataDeSaida data)
 {
     Rota        = rota;
     DataDeSaida = data;
 }
示例#6
0
 public static IPassageiroVoo Crie(string nome, IIdadeDoPassageiro idadePassageiro, IRota rota, IDataDeSaida dataDeSaida)
 {
     return(new PassageiroVoo(nome, idadePassageiro, rota, dataDeSaida));
 }