public IHttpActionResult Get(string sid, string hotel, string Pid) { // call bll try { LoggingHelper.WriteToFile("HotelRoomsController/GetRoomsOFHotel/", "INController" + sid, "Rooms:", "Sid: " + sid + " , pid: " + Pid + " , hotelId: " + hotel); //TBO if (Pid == "5") { SearchDBEntities searchDB = new SearchDBEntities(); // call Room availablity api string TBOSession = searchDB.ProviderSessions.FirstOrDefault(ps => ps.SearchId == sid).PSession; //Select(s => s.PSession).ToString(); int ResIndex = int.Parse(searchDB.SearchHotelResults.FirstOrDefault(hotl => hotl.sID == sid && hotl.HotelCode == hotel).ResIndex.ToString()); //Select(indx => indx.ResIndex).ToString(); TBOSearchManager manager = new TBOSearchManager(); var TBORooms = manager.GetAvailableRoom(TBOSession, ResIndex, hotel, sid); if (TBORooms != null) { LoggingHelper.WriteToFile("HotelRoomsController/GetRoomsOFHotel/", "OutController" + sid, "RoomsResult", JsonConvert.SerializeObject(TBORooms)); return(Ok(TBORooms)); } else { return(Ok("No Result Found")); } } else { var Rooms = GetRoom.GetRoomsByHotelIDAndProvide(sid, Pid, hotel); if (Rooms != null) { LoggingHelper.WriteToFile("HotelRoomsController/GetRoomsOFHotel/", "OutController" + sid, "RoomsResult", JsonConvert.SerializeObject(Rooms)); return(Ok(Rooms)); } else { return(Ok("No Result Found")); } } } catch (Exception ex) { LoggingHelper.WriteToFile("HotelRoomsController/Errors/", "INController" + sid, "Exception", ex.InnerException?.Message + ex.Message + ex.StackTrace); return(BadRequest(ex.Message)); } }
public void GetHotelSearchResultForAllProviders() { SearchResultData searchResult = new SearchResultData(); List <GetActiveProviders_Result> providers_Results = searchResult.GetActiveProvidersData(); //use stored in hotelsDb [GetHotelsIDAndProvidersByCityName] hotelbeds //var HotelIdsForActiveProviders = searchResult.GetProviderHotelIdsForActiveProviders(int.Parse(searchData.CityName)); // hotelsDb tbl CitiesID //var ProvidersCities = searchResult.GetProviderCitiessForActiveProviders(int.Parse(searchData.CityName));// var tasks = new List <Task>(); var tokenSource1 = new CancellationTokenSource(); var tokenSource2 = new CancellationTokenSource(); var tokenSource3 = new CancellationTokenSource(); CancellationTokenSource tokenSource5 = new CancellationTokenSource(); for (int i = 0; i < providers_Results.Count; i++) { int providerid = providers_Results[i].Provider_ID.Value; switch (providerid) { case 1: break; //case 2: // var token3 = tokenSource3.Token; // try // { // if (ProvidersCities.Count > 0) // { // tasks.Add(Task.Factory.StartNew(() => // { // // // var tsCity = ProvidersCities.FirstOrDefault(a => a.providerID == 2); // if (tsCity != null) // { // var searchobj = IntegrationTotalStay.Management.SearchManager.prepareSearchObj(searchData, tsCity.providerCity.ToString()); // var res = SearchTs.GetTSHotels(searchobj); // using (TSMapper tsMapper = new TSMapper()) // { // searchResponse.HotelResult.AddRange(tsMapper.MapSearchResult(res, searchData).HotelResult); // } // } // }, token3)); // } // } // catch (Exception ex) // { // LoggingHelper.WriteToFile("/ProviderManager/Errors/", "HotelSearchSMR_" + searchData.sID, ex.InnerException?.Message, ex.Message + " Sourse :" + ex.Source + " Stack Trace :" + ex.StackTrace); // } // break; case 3: /* var token1 = tokenSource1.Token; * SearchManager smrManager = new SearchManager(); * smrManager.searchData = searchData; * try * { * tasks.Add(Task.Factory.StartNew(() => * { * smrManager.HotelIds = HotelIdsForActiveProviders.Where(a => a.ProviderId == "3").Select(a => a.HotelProviderId).ToList(); * smrManager.GetSearchResult(); * SMRResult = smrManager.searchOutputs; * * * using (SMRMapper sMRMapper = new SMRMapper()) * { * HotelSearchResults.AddRange(sMRMapper.MapSearchResult(SMRResult, smrManager.boardCodes, searchData)); * } * * }, token1)); * } * catch (Exception ex) * { * LoggingHelper.WriteToFile("/ProviderManager/Errors/", "HotelSearchSMR_" + searchData.sID, ex.InnerException?.Message, ex.Message + " Sourse :" + ex.Source + " Stack Trace :" + ex.StackTrace); * }*/ break; //case 4: // var token2 = tokenSource2.Token; // HBSearchManager HBManager = new HBSearchManager(); // HBManager.searchData = searchData; // try // { // if (HotelIdsForActiveProviders.Count > 0) // { // tasks.Add(Task.Factory.StartNew(() => // { // if (searchData.Source.ToLower() == "direct" || searchData.Source.ToLower() == "ios" || searchData.Source.ToLower() == "android") // HBManager.HotelIds = HotelIdsForActiveProviders.Where(a => a.ProviderId == "4").Select(a => int.Parse(a.HotelProviderId)).ToList(); // else // { // var hoteslPids = WegoHotels.Where(x => x.providerID == "4").Select(x => x.providerHotelID).ToList(); // HBManager.HotelIds = HotelIdsForActiveProviders.Where(a => a.ProviderId == "4" && hoteslPids.Contains(a.HotelProviderId)).Select(a => int.Parse(a.HotelProviderId)).ToList(); // ///HBManager.HotelIds.Add(103296); HBManager.HotelIds.Add(6810); HBManager.HotelIds.Add(405928); HBManager.HotelIds.Add(7661); HBManager.HotelIds.Add(9487); HBManager.HotelIds.Add(395560); // } // HBManager.GetSearchResult(); // HBResult = HBManager.searchOutputs; // if (searchData.Source.ToLower() == "direct" || searchData.Source.ToLower() == "ios" || searchData.Source.ToLower() == "android") // { // using (HBMapper HBMapper = new HBMapper()) // { // // HotelSearchResults.AddRange(sMRMapper.MapSearchResult(HBResult, searchData)); // // call Service Charge and Cancellation Charge Get SaleRule API // searchResponse.HotelResult.AddRange(HBMapper.MapSearchResult(HBResult, searchData).HotelResult); // } // } // else // { // using (ChannelHBMapper HbMapper = new ChannelHBMapper()) // { // hotelChannelResults.AddRange(HbMapper.MapSearchResult(HBResult, searchData)); // } // } // } // , token2)); // } // } // catch (Exception ex) // { // LoggingHelper.WriteToFile("ProviderManager/Errors/", "HotelSearchHotelBeds_" + searchData.sID, ex.InnerException?.Message, ex.Message + " Sourse :" + ex.Source + " Stack Trace :" + ex.StackTrace); // } // break; case 5: var token5 = tokenSource5.Token; TBOSearchManager TBOManager = new TBOSearchManager(); TBOManager.searchData = searchData; TBORepo tBORepo = new TBORepo(); try { //if (HotelIdsForActiveProviders.Count > 0) //{ //tasks.Add(Task.Factory.StartNew(() => //{ //TBOManager.HotelIds = HotelIdsForActiveProviders.Where(a => a.ProviderId == "5").Select(a => a.HotelProviderId).ToList(); TBOManager.HotelIds = tBORepo.GetHotelIdsByCityCode(searchData.CityName); //call tbo provider TBOManager.GetSearchResult(); var TBOResult = TBOManager.searchOutputs; // map resp to general rsp searchResponse.HotelResult.AddRange(TBOMapper.MapSearchResult(TBOResult, searchData).HotelResult); // } // )); // } } catch (Exception ex) { LoggingHelper.WriteToFile("/ProviderManager/Errors/", "HotelSearchTBO_" + searchData.sID, ex.InnerException?.Message, ex.Message + " Source :" + ex.Source + " Stack Trace :" + ex.StackTrace); } break; } } Task.WaitAll(tasks.ToArray()); }