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); }
private static decimal ObtenhaPicData(IDataDeSaida data) { var servicoDeData = Fabricas.FabricaDeServicos.FabricaDeServicoDeDataDeSaida.Crie(); return(servicoDeData.Obtenha(data)?.ProbabilidadeDeComparecimento ?? 100); }
public PassageiroVoo(string nome, IIdadeDoPassageiro idade, IRota rota, IDataDeSaida dataDeSaida) : base(nome, idade) { Rota = rota; DataDeSaida = dataDeSaida; }
public static IVoo Crie(IRota rota, IDataDeSaida data) { return(new Voo(rota, data)); }
public Voo(IRota rota, IDataDeSaida data) { Rota = rota; DataDeSaida = data; }
public static IPassageiroVoo Crie(string nome, IIdadeDoPassageiro idadePassageiro, IRota rota, IDataDeSaida dataDeSaida) { return(new PassageiroVoo(nome, idadePassageiro, rota, dataDeSaida)); }