Exemple #1
0
        public VooListagemResponse Busca(List <Voo> dados, VooListagemResponse item, string destinoFinal)
        {
            var _last  = item.Trechos.Last();
            var _busca = dados.Where(x => x.Origem == _last.Destino).FirstOrDefault();

            if (_busca != null)
            {
                item.Trechos.Add(new Trechos
                {
                    Chegada = _busca.Chegada,
                    Destino = _busca.Destino,
                    Origem  = _busca.Origem,
                    Preco   = _busca.Preco,
                    Saida   = _busca.Saida
                });

                if (_busca.Destino == destinoFinal)
                {
                    return(item);
                }
                else
                {
                    Busca(dados, item, destinoFinal);
                }
            }

            return(item);
        }
Exemple #2
0
        private List <VooListagemResponse> ListaCache(VooListagemRequest request)
        {
            var ret            = new List <VooListagemResponse>();
            var dados          = ListaCache().Where(x => x.DataSaida.ToString("yyy-MM-dd") == request.Data).ToList();
            var dadosCompletos = dados.Where(x => x.Origem == request.De && x.Destino == request.Para).ToList();

            dadosCompletos.ForEach(item =>
            {
                ret.Add(new VooListagemResponse
                {
                    Destino = request.Para,
                    Origem  = request.De,
                    Data    = DateTime.Parse(request.Data),
                    Trechos = new List <Trechos> {
                        new Trechos
                        {
                            Chegada = item.Chegada,
                            Destino = item.Destino,
                            Origem  = item.Origem,
                            Preco   = item.Preco,
                            Saida   = item.Saida
                        }
                    }
                });
            });

            var iniciais = dados.Where(x => x.Origem == request.De && x.Destino != request.Para).ToList();

            foreach (var item in iniciais)
            {
                var _item = new VooListagemResponse();
                _item.Destino = request.Para;
                _item.Origem  = request.De;
                _item.Data    = DateTime.Parse(request.Data);

                _item.Trechos.Add(new Trechos
                {
                    Chegada = item.Chegada,
                    Destino = item.Destino,
                    Origem  = item.Origem,
                    Preco   = item.Preco,
                    Saida   = item.Saida
                });
                _item = Busca(dados, _item, request.Para);
                ret.Add(_item);
            }

            return(ret);
        }