//for tbo only public List<HotelDetails> GetHotelDetailsForTBO(List<string> HotelProviderIds) { TBORepo tBORepo = new TBORepo(); return tBORepo.GetHotelDetails(HotelProviderIds); }
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()); }
public static HotelBedsIntegration.Models.BookingStatus CallProviders(ConfirmData confirm, string BN) { HotelBedsIntegration.Models.BookingStatus confirmed = new HotelBedsIntegration.Models.BookingStatus(); try { //TBO if (confirm.Pid == "5") { //var bookingObj = TBOConfirmationManager.prepareObject(confirm); TBORepo repo = new TBORepo(); var TBOreq = repo.GetBookReqData(confirm.hotelsBooking.SessionId, confirm.hotelsBooking.Booking_No); //if (TBOreq != null && confirm.Rooms.Count == TBOreq.HotelRooms.Count) //{ //cacluate total of rooms sup curency is different //decimal total = 0; //foreach (var item in TBOreq.HotelRooms) //{ // total += item.RoomRate.TotalFare; // if (item.Supplements!= null) // { // foreach (var sup in item.Supplements) // { // total += sup.Price; // } // } //} //map genral tbo req to provider req var req = TBOIntegration.Mapper.BookMapper.MapBookReq(TBOreq); var confirmedTBO = BookService.Booking(req, confirm.hotelsBooking.SessionId); if (confirmedTBO.BookingStatus.ToString() != "Vouchered" && confirmedTBO.Status.StatusCode != "01") { BookingConfirmationData bookingCon = new BookingConfirmationData(); bookingCon.BookingNum = BN; bookingCon.ClientReference = req.ClientReferenceNumber; bookingCon.Cost = (decimal)TBOreq.TotalNet;//need edits bookingCon.Currency = "USD"; bookingCon.CreationDate = DateTime.UtcNow; bookingCon.HolderFirstName = req.Guests.FirstOrDefault(g => g.LeadGuest == true).FirstName; bookingCon.HolderLastName = req.Guests.FirstOrDefault(g => g.LeadGuest == true).LastName; bookingCon.ProviderId = 5; bookingCon.HotelCode = confirm.hotelsBooking.Hotel_ID; bookingCon.Reference = confirmedTBO.ConfirmationNo; bookingCon.SessionID = confirm.hotelsBooking.SessionId; bookingCon.Status = "done"; bookingCon.supplerReference = confirmedTBO.ConfirmationNo; // map confirmedTBO to confimed confirmed.booking.clientReference = req.ClientReferenceNumber; confirmed.booking.totalNet = TBOreq.TotalNet ?? default(double); confirmed.booking.currency = "USD"; confirmed.booking.creationDate = DateTime.UtcNow.ToShortDateString(); confirmed.booking.holder.name = req.Guests.FirstOrDefault(g => g.LeadGuest == true).FirstName; confirmed.booking.holder.surname = req.Guests.FirstOrDefault(g => g.LeadGuest == true).LastName; confirmed.booking.reference = confirmedTBO.ConfirmationNo; // var saveDB = ConfirmationDate.saveBookingConfirmation(bookingCon); //if (saveDB == null) //{ // confirmed.status = 1; //} //else //{ confirmed.status = 0; //} //} if (confirmed != null) { return(confirmed); } } } // if (confirm.Pid == "4") { var bookingObj = ConfirmationManagerHB.prepareObject(confirm); if (bookingObj != null && confirm.Rooms.Count == bookingObj.rooms.Count) { confirmed = BookingFlow.BookingRooms(bookingObj, confirm.hotelsBooking.SessionId, BN).Result; if (confirmed.booking != null && confirmed.status != 2) { BookingConfirmationData bookingCon = new BookingConfirmationData(); bookingCon.BookingNum = BN; bookingCon.ClientReference = confirmed.booking.clientReference; bookingCon.Cost = (decimal)confirmed.booking.totalNet; bookingCon.Currency = confirmed.booking.currency; bookingCon.CreationDate = DateTime.Parse(confirmed.booking.creationDate); bookingCon.HolderFirstName = confirmed.booking.holder.name; bookingCon.HolderLastName = confirmed.booking.holder.surname; bookingCon.ProviderId = 4; bookingCon.HotelCode = confirm.hotelsBooking.Hotel_ID; bookingCon.Reference = confirmed.booking.reference; bookingCon.SessionID = confirm.hotelsBooking.SessionId; bookingCon.Status = "done"; var saveDB = ConfirmationDate.saveBookingConfirmation(bookingCon); if (saveDB == null) { confirmed.status = 1; } else { // confirmed.status = 0; } } if (confirmed != null) { return(confirmed); } } } if (confirm.Pid == "2") { if (confirm != null) { var reqObj = BookingManager.prepareSearchObj(confirm, ""); if (reqObj == null) { confirmed.status = 2; return(confirmed); } var confirmedTS = ConfirmationTS.GetTSConfirmations(reqObj, confirm.hotelsBooking.SessionId, BN); if (confirmedTS != null) { BookingConfirmationData bookingCon = new BookingConfirmationData(); bookingCon.BookingNum = BN; bookingCon.ClientReference = confirmedTS.TradeReference; bookingCon.Cost = decimal.Parse(confirmedTS.TotalPrice); bookingCon.Currency = "USD"; bookingCon.HolderFirstName = reqObj.BookingDetails.LeadGuestFirstName; bookingCon.HolderLastName = reqObj.BookingDetails.LeadGuestLastName; bookingCon.HotelCode = confirm.hotelsBooking.Hotel_ID; bookingCon.ProviderId = 2; bookingCon.Reference = confirmedTS.BookingReference; bookingCon.SessionID = confirm.hotelsBooking.SessionId; bookingCon.Status = "done"; var saveDB = ConfirmationDate.saveBookingConfirmation(bookingCon); if (saveDB == null) { confirmed.status = 1; } else { confirmed.status = 0; } return(confirmed); } } } //confirmed.status = 2; return(confirmed); }catch (Exception ex) { LoggingHelper.WriteToFile("SaveBookingConfirmationController/Errors/", "ConfirmationManager CallProvider" + "ProviderManager" + confirm.hotelsBooking.SessionId, ex.InnerException?.Message, ex.Message + ex.StackTrace); if (confirmed.status != 2) { confirmed.status = 1; } return(confirmed); } }