Beispiel #1
0
        //[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)*/));
        }
Beispiel #2
0
        /// <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));
        }
Beispiel #3
0
        /// <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);
        }