//[Route("insta_flights_search/search")] public IActionResult InstaFlightsSearch(SearchFightDto model) { var client = new RestClient(sabreConfig.TestBaseUrl); var url = $"v1/shop/flights?origin={model.Origin}&destination={model.Destination}&departuredate={model.DepartureDate}&returndate={model.ReturnDate}&onlineitinerariesonly=N&limit=10&offset=1&eticketsonly=N&sortby=totalfare&order=asc&sortby2=departuretime&order2=asc&pointofsalecountry=ZA"; var request = new RestRequest(url, Method.GET); request.AddHeader("Authorization", $"Bearer {sabreConfig.TestToken}"); var response = client.Execute(request); var returnObject = JsonConvert.DeserializeObject <SabreSearchResponse>(response.Content); return(Ok(returnObject.PricedItineraries.Select(pi => pi.AirItinerary) /*.Select(ai => ai.OriginDestinationOptions)*/)); }
/// <summary> /// GetWinner /// </summary> /// <param name="searchFightDto"></param> /// <returns></returns> private async Task <string> GetWinner(SearchFightDto searchFightDto) { _ = searchFightDto.BingWinnerDto.KeyWord; string keyWord; if (searchFightDto.BingWinnerDto.Total > searchFightDto.GoogleWinnerDto.Total) { keyWord = searchFightDto.BingWinnerDto.KeyWord; } else { keyWord = searchFightDto.GoogleWinnerDto.KeyWord; } var result = $"{"Total Winner: "} {keyWord}"; return(await Task.FromResult(result)); }
/// <summary> /// SearchFight /// </summary> /// <param name="keyWords"></param> /// <returns></returns> public async Task <SearchFightDto> SearchFight(string[] keyWords) { var result = new SearchFightDto(); var searchEngineDtoList = new List <SearchEngineDto>(); foreach (var keyWord in keyWords) { var engineDto = new SearchEngineDto(); #region GOOGLE //for every search in google I put dto in result object engineDto.GoogleDto = await _googleService.GetResultGoogle(keyWord); #endregion #region BING //for every search in bing I put dto in result object engineDto.BingDto = await _bingService.GetResultBing(keyWord); #endregion //set keyword in result object engineDto.KeyWord = keyWord; //add object to list searchEngineDtoList.Add(engineDto); } result.EngineDtoList = searchEngineDtoList; #region WINNER //I find a winner for every search engine result.GoogleWinnerDto = await _googleService.GetGoogleWinner(searchEngineDtoList); result.BingWinnerDto = await _bingService.GetBingWinner(searchEngineDtoList); //winner at all result.Winner = await GetWinner(result); #endregion return(result); }