public List <VooListagemResponse> Listagem(VooListagemRequest request) { var cache = _cache.Get($"{request.De}{request.Para}{request.Data}"); if (cache == null) { _cache.Set($"{request.De}{request.Para}{request.Data}", ListaCache(request)); } return((List <VooListagemResponse>)_cache.Get($"{request.De}{request.Para}{request.Data}")); }
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); }
public IActionResult Post([FromBody] VooListagemRequest request) => Ok(_vooApplication.Listagem(request));