public static List <CancellationRule> GetCancelFromDB(string sid, string HotelCode, string roomcode, string pid) { try { List <CancelPolicy> cancelPolicies = new List <CancelPolicy>(); List <CancellationRule> cancellationRules = new List <CancellationRule>(); SearchDBEntities searchDB = new SearchDBEntities(); using (HotelBookingDBEntities db = new HotelBookingDBEntities()) { cancelPolicies = db.CancelPolicies.Where(a => a.Sid == sid && a.HotelCode == HotelCode && a.RoomCode.ToString() == roomcode && a.ProviderID == pid).ToList(); } if (cancelPolicies.Count > 0) { var searchData = searchDB.SearchCriterias.FirstOrDefault(x => x.sID == sid); foreach (var item in cancelPolicies) { CancellationRule cancellation = new CancellationRule(); cancellation.FromDate = item.FromDate.ToString(); cancellation.Price = (double)item.SellPrice.Value; cancellation.CanellationRuleText = searchData.language.ToLower() == "en" ? item.SellPrice.Value + " " + searchData.currency + " of the booking amount " + item.FromDate.Value.ToString("MMMM dd, yyyy") : item.FromDate.Value.ToString("MMMM dd, yyyy") + " إلى " + "" + searchData.currency + item.SellPrice; cancellationRules.Add(cancellation); } return(cancellationRules); } return(new List <CancellationRule>()); } catch (Exception ex) { LoggingHelper.WriteToFile("AvailabilityController/Errors/", "getcancelpolicy" + "INDAL" + sid, ex.InnerException?.Message, ex.Message + ex.StackTrace); return(new List <CancellationRule>()); } }
public BookingConfirmationData GetBookingReference(string BN) { HotelBookingDBEntities hotelBookingDB = new HotelBookingDBEntities(); var Booking = hotelBookingDB.BookingConfirmationDatas.FirstOrDefault(x => x.BookingNum == BN); return(Booking); }
public static void SaveRequestToDB(AvailabilityReq req) { try { using (HotelBookingDBEntities db = new HotelBookingDBEntities()) { CheckAvailabiltyReq availabiltyReq = new CheckAvailabiltyReq(); availabiltyReq.BookinNum = req.BookingNum; availabiltyReq.HotelCode = req.HotelCode; availabiltyReq.Pid = req.PID; availabiltyReq.SID = req.Sid; availabiltyReq.TotalCost = req.TotalCost; availabiltyReq.CreateAt = DateTime.Now; var data = db.CheckAvailabiltyReqs; db.CheckAvailabiltyReqs.Add(availabiltyReq); foreach (var item in req.Rooms) { AvailabilityRoom room = new AvailabilityRoom(); room.BookingNum = req.BookingNum; room.RoomCode = item.RoomId.ToString(); room.RoomRef = item.RoomRef; room.Sid = req.Sid; db.AvailabilityRooms.Add(room); } db.SaveChanges(); } } catch (Exception ex) { LoggingHelper.WriteToFile("AvailabilityController/Errors/", "CheckAvailabilityRepo" + "SaveRequestToDB" + req.Sid, ex.InnerException?.Message, ex.Message + ex.StackTrace); } }
public static AvailabilityReq GetAvailabilityForCancelFromDB(string sid, string HotelCode, string roomcode, string pid) { AvailabilityReq availabilityReq = new AvailabilityReq(); try { SearchDBEntities searchDB = new SearchDBEntities(); using (HotelBookingDBEntities db = new HotelBookingDBEntities()) { availabilityReq.HotelCode = HotelCode; availabilityReq.PID = pid; availabilityReq.Sid = sid; var roomsData = searchDB.SearchRoomResults.Where(x => x.sID == sid && x.HotelCode == HotelCode && x.RoomCode == roomcode && x.ProviderId.ToString() == pid).ToList(); for (int i = 0; i < roomsData.Count; i++) { RoomAvailability room = new RoomAvailability(); room.RoomId = int.Parse(roomsData[i].RoomCode); room.RoomRef = roomsData[i].RoomReference; availabilityReq.Rooms.Add(room); availabilityReq.TotalCost += roomsData[i].costPrice.Value; } } return(availabilityReq); } catch (Exception ex) { throw ex; } }
public List <AdminRequiredData> QueueTransaction(DateTime fromDate, DateTime toDate) { try { HotelBookingDBEntities BookingDB = new HotelBookingDBEntities(); // SearchDBEntities searchDB = new SearchDBEntities(); List <AdminRequiredData> requiredData = new List <AdminRequiredData>(); toDate = toDate.AddDays(1); var ListSearchData = BookingDB.HotelsBookings.Where(a => a.Booking_Time.Value <= toDate && a.Booking_Time.Value >= fromDate).ToList(); foreach (var item in ListSearchData) { AdminRequiredData adminData = new AdminRequiredData(); adminData.bookingNumber = item.Booking_No; adminData.creationDate = item.Booking_Time.Value; adminData.customerEmail = item.Booking_Email; adminData.proveider = item.Provider_ID; adminData.status = item.Booking_Status; requiredData.Add(adminData); } return(requiredData); } catch (Exception ex) { LoggingHelper.WriteToFile("AdminPannelController/ERROR/", "QueueTransactionController" + "INDAL", "Data", "from is " + fromDate + " and to is" + toDate + ex.InnerException?.Message + ex.Message + ex.StackTrace); return(new List <AdminRequiredData>()); } }
public RestCriteraiData GetDataForGatewayDA(string BN) { try { SearchDBEntities searchDB = new SearchDBEntities(); HotelBookingDBEntities hotelBookingDB = new HotelBookingDBEntities(); hotelsDBEntities hotelsDB = new hotelsDBEntities(); SearchData searchData = new SearchData(); RestCriteraiData restCriterai = new RestCriteraiData(); var booking = hotelBookingDB.HotelsBookings.FirstOrDefault(x => x.Booking_No == BN); var search = searchDB.SearchCriterias.FirstOrDefault(a => a.sID == booking.SessionId); restCriterai.searchData = new SearchData(); restCriterai.searchData.CityName = search.cityName; restCriterai.searchData.Currency = search.currency; restCriterai.searchData.DateFrom = search.dateFrom.Value; restCriterai.searchData.DateTo = search.dateTo.Value; restCriterai.searchData.Lang = search.language; restCriterai.searchData.Nat = search.passengerNationality; restCriterai.searchData.POS = search.pos; restCriterai.pos = search.pos; restCriterai.searchData.sID = search.sID; restCriterai.searchData.Source = search.source; var Rooms = searchDB.SearchRoomDatas.Where(a => a.sID == booking.SessionId).ToList(); foreach (var item in Rooms) { SearchRoom searchRoom = new SearchRoom(); searchRoom.Adult = item.adultNo.Value; for (int i = 0; i < item.childernNo.Value; i++) { searchRoom.Child.Add(2); } restCriterai.searchData.SearchRooms.Add(searchRoom); } // var booking = hotelBookingDB.HotelsBookings.FirstOrDefault(x => x.SessionId == Sid && x.Booking_No == BN); restCriterai.cost = booking.Sell_Price.Value; restCriterai.Curr = booking.Sell_Currency; restCriterai.Pid = booking.Provider_ID; if (restCriterai.Pid == "5") { TBOContext bOContext = new TBOContext(); var Hotel = bOContext.HotelDetails.FirstOrDefault(a => a.HotelCode == booking.Hotel_ID); restCriterai.HotelName = Hotel.HotelName; //restCriterai.HotelStars = int.Parse(Hotel.rating); } else if (restCriterai.Pid == "4") { var Hotel = hotelsDB.hotels.FirstOrDefault(a => a.hotelID == booking.Hotel_ID); restCriterai.HotelName = Hotel.hotelName; restCriterai.HotelStars = int.Parse(Hotel.rating); } return(restCriterai); } catch (Exception ex) { return(null); } }
public static bool CheckBookingConfirmation(string BN, string sid) { HotelBookingDBEntities db = new HotelBookingDBEntities(); var data = db.BookingConfirmationDatas.FirstOrDefault(a => a.SessionID == sid && a.BookingNum == BN); if (data != null) { return(true); } return(false); }
public HotelsBooking ChangeBookingstatusAndGetNotificationData(BookingStatus bookingStatus, string BN, string Sid, MailObj mail) { HotelBookingDBEntities db = new HotelBookingDBEntities(); var BookingData = db.HotelsBookings.FirstOrDefault(x => x.Booking_No == bookingStatus.BookingNum && x.SessionId == bookingStatus.Sid); BookingData.Booking_Status = bookingStatus.Status; BookingData.voucherPdf = mail.confirmationPDF; BookingData.InvoicePdf = mail.salesInvoicePDF; db.SaveChanges(); return(BookingData); }
public bool CheckBooking(string BN) { HotelBookingDBEntities BookingDB = new HotelBookingDBEntities(); var booking = BookingDB.HotelsBookings.FirstOrDefault(a => a.Booking_No == BN); if (booking != null) { return(true); } return(false); }
public void SaveCancellationBookingData(CancellationBookingData cancellation, string BN, string reference) { HotelBookingDBEntities hotelBookingDB = new HotelBookingDBEntities(); CancellationBooking cancel = new CancellationBooking(); cancel.BookingCurrency = cancellation.booking.currency; cancel.BookingNum = BN; cancel.BookingReference = reference; cancel.BookingTotalNet = cancellation.booking.totalNet.ToString(); cancel.CancellationAmount = cancellation.booking.hotel.cancellationAmount.ToString(); cancel.cancellationFlag = cancellation.booking.modificationPolicies.cancellation.ToString(); cancel.CancellationReference = cancellation.booking.cancellationReference; cancel.Cancelstatus = cancellation.booking.status; cancel.checkIn = cancellation.booking.hotel.checkIn; cancel.checkOut = cancellation.booking.hotel.checkOut; cancel.ClientReference = cancellation.booking.clientReference; cancel.CompanyregistrationNum = cancellation.booking.invoiceCompany.registrationNumber; cancel.creationDate = cancellation.booking.creationDate; cancel.creationUser = cancellation.booking.creationUser; cancel.Currency = cancellation.booking.hotel.currency; cancel.HolderFirstName = cancellation.booking.holder.name; cancel.HolderLastName = cancellation.booking.holder.surname; cancel.HotelCode = cancellation.booking.hotel.code.ToString(); cancel.InvoiceCompany = cancellation.booking.invoiceCompany.company; cancel.InvoiceCompanyCode = cancellation.booking.invoiceCompany.code; cancel.Reference = cancellation.booking.reference; cancel.SupplierName = cancellation.booking.hotel.supplier.name; cancel.totalNet = cancellation.booking.hotel.totalNet; cancel.VatNumber = cancellation.booking.hotel.supplier.vatNumber; hotelBookingDB.CancellationBookings.Add(cancel); foreach (var item in cancellation.booking.hotel.rooms) { foreach (var r in item.rates) { CancellationRoom room = new CancellationRoom(); room.adults = r.adults.ToString(); room.boardName = r.boardName; room.BookingNum = BN; room.children = r.children.ToString(); room.code = item.id.ToString(); room.net = r.net.ToString(); room.rateClass = r.rateClass; room.reference = reference; room.RoomName = item.name; room.RoomStatus = item.status; room.supplierReference = item.supplierReference; hotelBookingDB.CancellationRooms.Add(room); } } hotelBookingDB.SaveChanges(); }
public string addBookingStatus(string status, string BN) { HotelBookingDBEntities db = new HotelBookingDBEntities(); HotelBookingStatu bookingStatus = new HotelBookingStatu(); bookingStatus.Booking_No = BN; bookingStatus.Booking_Status = status; bookingStatus.Status_Time = DateTime.Now; db.HotelBookingStatus.Add(bookingStatus); db.SaveChanges(); return("done"); }
public void EditBookingPaxes(BookingPassenger passenger) { HotelBookingDBEntities BookingDB = new HotelBookingDBEntities(); var pax = BookingDB.HotelBookingPaxs.FirstOrDefault(p => p.Booking_No == passenger.bookingNo && p.Room_No == passenger.roomNo); if (pax != null) { pax.Salutations = passenger.salutation; pax.Last_Name = passenger.lastName; pax.First_name = passenger.firstName; BookingDB.SaveChanges(); } }
public static ConfirmData GetAllConfirmationData(string Sid, string BN) { try { // get holder from (hotelBooking) and roomsandpaxes from (hotelBookingpax) HotelBookingDBEntities db = new HotelBookingDBEntities(); SearchDBEntities SDB = new SearchDBEntities(); ConfirmData confirmData = new ConfirmData(); List <SearchRoomResult> Roomrates = new List <SearchRoomResult>(); var BookingData = db.HotelsBookings.FirstOrDefault(s => s.SessionId == Sid && s.Booking_No == BN); var Paxes = db.HotelBookingPaxs.Where(a => a.SID == Sid && a.Booking_No == BN).ToList(); var rooms = Paxes.Where(x => x.PaxNo == 1).Select(a => a.Room_No.Value.ToString()).ToList(); // rate from searchroom result foreach (var item in rooms) { Roomrates.Add(SDB.SearchRoomResults.Where(a => /* rooms.Contains(a.RoomCode)*/ a.RoomCode == item && a.sID == Sid && a.HotelCode == BookingData.Hotel_ID).FirstOrDefault()); } confirmData.hotelsBooking = BookingData; var searchReq = SDB.SearchCriterias.FirstOrDefault(a => a.sID == Sid); var toDated = searchReq.dateTo.Value; var fromDated = searchReq.dateFrom.Value; confirmData.fromDate = Convert.ToDateTime(searchReq.dateFrom.Value).ToString("yyyy-MM-dd"); confirmData.ToDate = Convert.ToDateTime(searchReq.dateTo.Value).ToString("yyyy-MM-dd"); confirmData.Dur = Convert.ToInt32((toDated - fromDated).TotalDays).ToString(); confirmData.PropertyTS = SDB.SearchHotelResults.FirstOrDefault(x => x.sID == Sid && x.HotelCode == BookingData.Hotel_ID).ProviderHotelCode; confirmData.Pid = BookingData.Provider_ID; int indx = 1; foreach (var item in Roomrates) { RoomDTP roomDTP = new RoomDTP(); roomDTP.Rate = item.RoomReference; roomDTP.RoomN = int.Parse(item.RoomCode); roomDTP.roomResult = item; roomDTP.bookingPaxes = Paxes.Where(a => a.Room_No.ToString() == item.RoomCode && a.RoomRef == indx).ToList(); confirmData.Rooms.Add(roomDTP); indx = indx + 1; } return(confirmData); }catch (Exception ex) { LoggingHelper.WriteToFile("SaveBookingConfirmationController/Errors/", "ConfirmationDate GetConfirmationDate" + "DAL" + Sid, ex.InnerException?.Message, ex.Message + ex.StackTrace); return(null); } }
public static string checkbookingnumberavailability(string sessionId) { try { HotelBookingDBEntities dBEntitiy = new HotelBookingDBEntities(); var booking = dBEntitiy.HotelsBookings.FirstOrDefault(a => a.SessionId == sessionId); if (booking == null) { return(null); } return(booking.Booking_No); } catch (Exception ex) { throw ex; } }
public List <SearchStatistic> SearchStatisticTransaction(DateTime fromDate, DateTime toDate) { try { HotelBookingDBEntities BookingDB = new HotelBookingDBEntities(); SearchDBEntities searchDB = new SearchDBEntities(); hotelsDBEntities db = new hotelsDBEntities(); List <SearchStatistic> searchStatistics = new List <SearchStatistic>(); var SearchesData = searchDB.SearchCriterias.Where(x => x.sessionCreatedAt >= fromDate && x.sessionCreatedAt <= toDate).ToList(); foreach (var item in SearchesData) { SearchStatistic searchStatistic = new SearchStatistic(); searchStatistic.ChekIn = item.dateFrom.Value; searchStatistic.CheckOut = item.dateTo.Value; searchStatistic.Date = item.sessionCreatedAt.Value; searchStatistic.POS = item.pos; searchStatistic.sID = item.sID; searchStatistic.Source = item.source; var cityD = db.Cities.FirstOrDefault(x => x.ID.ToString() == item.cityName); if (cityD != null) { searchStatistic.CityName = cityD.City1; } var BookingData = BookingDB.HotelsBookings.FirstOrDefault(a => a.SessionId == item.sID); if (BookingData != null) { searchStatistic.BookingNo = BookingData.Booking_No; searchStatistic.BookingStatus = BookingData.Booking_Status; searchStatistic.HotelID = BookingData.Hotel_ID; searchStatistic.ProvideID = BookingData.Provider_ID; var hotel = db.hotels.FirstOrDefault(h => h.hotelID == BookingData.Hotel_ID); if (hotel != null) { searchStatistic.HotelName = hotel.hotelName; } } searchStatistics.Add(searchStatistic); } return(searchStatistics); }catch (Exception ex) { LoggingHelper.WriteToFile("StatisticController/Errors/", "INDAL", "FromData" + fromDate + "to" + toDate, ex.InnerException?.Message + "//" + ex.Message + ex.StackTrace); return(new List <SearchStatistic>()); } }
public string ChangeBookingStatus(BookingStatus bookingStatus) { try { HotelBookingDBEntities db = new HotelBookingDBEntities(); var BookingData = db.HotelsBookings.FirstOrDefault(x => x.Booking_No == bookingStatus.BookingNum && x.SessionId == bookingStatus.Sid); BookingData.Booking_Status = bookingStatus.Status; db.SaveChanges(); return("done"); } catch (Exception ex) { LoggingHelper.WriteToFile("SaveBookingConfirmationController/Errors/", "ConfirmedController" + "INController" + bookingStatus.Sid, ex.InnerException?.Message, ex.Message + ex.StackTrace); return(null); } }
public List <AdminRequiredData> GetHotelAdimSearchData(string Key) { try { HotelBookingDBEntities BookingDB = new HotelBookingDBEntities(); SearchDBEntities searchDB = new SearchDBEntities(); List <AdminRequiredData> requiredData = new List <AdminRequiredData>(); var ListSearchData = BookingDB.HotelsBookings.Where(a => a.Booking_No.ToLower().Contains(Key.ToLower()) || a.Booking_Email.ToLower().Contains(Key.ToLower()) || a.Booking_Status.ToLower().Contains(Key.ToLower())).ToList(); foreach (var item in ListSearchData) { AdminRequiredData adminData = new AdminRequiredData(); adminData.bookingNumber = item.Booking_No; adminData.creationDate = item.Booking_Time.Value; adminData.customerEmail = item.Booking_Email; adminData.proveider = item.Provider_ID; adminData.status = item.Booking_Status; var Criteria = searchDB.SearchCriterias.FirstOrDefault(x => x.sID == item.SessionId); adminData.checkin = Criteria.dateFrom.Value; adminData.checkout = Criteria.dateTo.Value; var Names = item.Pax_Name.Split(' '); adminData.LeadFirstName = Names[0]; adminData.LeadLastName = Names[1]; adminData.Price = item.Sell_Price.Value; adminData.Currency = item.Sell_Currency; if (item.Provider_ID == "4") { adminData.proveiderName = "HotelBeds"; } else if (item.Provider_ID == "2") { adminData.proveiderName = "Total Stay"; } requiredData.Add(adminData); } return(requiredData); } catch (Exception ex) { LoggingHelper.WriteToFile("AdminPannelController/ERROR/", "HotelAdminSearchController" + "INDAL" + Key, "Data", "key is " + Key + " and key is" + Key + ex.InnerException?.Message + ex.Message + ex.StackTrace); return(new List <AdminRequiredData>()); } }
public List <CustomerData> GetAllCustomer() { HotelBookingDBEntities BookingDB = new HotelBookingDBEntities(); List <CustomerData> customers = new List <CustomerData>(); var AllCustomer = BookingDB.Customers.ToList(); foreach (var item in AllCustomer) { CustomerData customerData = new CustomerData(); customerData.Email = item.Email; customerData.First_Name = item.First_Name; customerData.Last_Name = item.Last_Name; customerData.Phone = item.Phone; customerData.Phone_Code = item.Phone_Code; customerData.Salutations = item.Salutations; customers.Add(customerData); } return(customers); }
public static AvailabilityValidModel GetAvailabilityFromDB(string sid, string BN) { AvailabilityValidModel availabilityValid = new AvailabilityValidModel(); AvailabilityReq availabilityReq = new AvailabilityReq(); try { SearchDBEntities searchDB = new SearchDBEntities(); using (HotelBookingDBEntities db = new HotelBookingDBEntities()) { var HotelBookin = db.HotelsBookings.FirstOrDefault(x => x.SessionId == sid && x.Booking_No == BN); availabilityReq.HotelCode = HotelBookin.Hotel_ID; availabilityReq.BookingNum = BN; availabilityReq.PID = HotelBookin.Provider_ID; availabilityReq.Sid = sid; availabilityValid.Curr = HotelBookin.Sell_Currency; var BookedRooms = db.HotelBookingRooms.Where(x => x.SID == sid && x.Booking_No == BN).ToList(); var lstRooms = BookedRooms.Select(s => s.Room_No.ToString()).ToList(); var roomsData = searchDB.SearchRoomResults.Where(x => x.sID == sid && x.HotelCode == HotelBookin.Hotel_ID && lstRooms.Contains(x.RoomCode) && x.ProviderId.ToString() == HotelBookin.Provider_ID).ToList(); if (roomsData != null && roomsData.Count > 0) { for (int i = 0; i < BookedRooms.Count; i++) { RoomAvailability room = new RoomAvailability(); var roomData = roomsData.FirstOrDefault(a => a.RoomCode == BookedRooms[i].Room_No.ToString()); room.RoomId = int.Parse(roomData.RoomCode); room.RoomRef = roomData.RoomReference; room.Cost = roomData.costPrice.Value; availabilityReq.Rooms.Add(room); availabilityReq.TotalCost += roomData.costPrice.Value; } } } availabilityValid.availabilityReq = availabilityReq; return(availabilityValid); } catch (Exception ex) { throw ex; } }
public static string saveBookingConfirmation(BookingConfirmationData data) { try { HotelBookingDBEntities db = new HotelBookingDBEntities(); var BookingData = db.BookingConfirmationDatas.Add(data); var j = db.SaveChanges(); if (j > 0) { return("Done"); } return(null); }catch (Exception ex) { LoggingHelper.WriteToFile("SaveBookingConfirmationController/Errors/", "ConfirmationDate SaveConfirmedData" + "DAL" + data.SessionID, ex.InnerException?.Message, ex.Message + ex.StackTrace); return(null); } }
public bool UpdateBookingStatus(string BN, string Status) { try { HotelBookingDBEntities db = new HotelBookingDBEntities(); var BookingData = db.HotelsBookings.FirstOrDefault(x => x.Booking_No == BN); BookingData.Booking_Status = Status; HotelBookingStatu bookingStatus = new HotelBookingStatu(); bookingStatus.Booking_No = BN; bookingStatus.Booking_Status = Status; bookingStatus.Status_Time = DateTime.Now; db.HotelBookingStatus.Add(bookingStatus); db.SaveChanges(); return(true); } catch (Exception ex) { LoggingHelper.WriteToFile("AdminPannelController/ERROR/", "ChangeBookingStatus" + "INDAL" + BN, "Data", "bookin is " + BN + " and booking is" + BN + ex.InnerException?.Message + ex.Message + ex.StackTrace); return(false); } }
public static string ChangeBookingStatus(string Sid, string BN, string status) { try { HotelBookingDBEntities db = new HotelBookingDBEntities(); var BookingData = db.HotelsBookings.FirstOrDefault(s => s.SessionId == Sid && s.Booking_No == BN); BookingData.Booking_Status = status; var j = db.SaveChanges(); if (j > 0) { return("Done"); } return(null); } catch (Exception ex) { LoggingHelper.WriteToFile("SaveBookingConfirmationController/Errors/", "ConfirmationDate ChangeBookingStatus" + "DAL" + Sid, ex.InnerException?.Message, ex.Message + ex.StackTrace); return(null); } }
public PayLinkRequest GetPayLinkRequestDA(string BN, string Sid, string ip, string pos, string NotTok) { try { PayLinkRequest payLinkData = new PayLinkRequest(); SearchDBEntities searchDB = new SearchDBEntities(); CurrencyRepo currencyManager = new CurrencyRepo(); double totalPrice = 0; HotelBookingDBEntities hotelBookingDB = new HotelBookingDBEntities(); var paxes = hotelBookingDB.HotelBookingPaxs.Where(x => x.Booking_No == BN && x.SID == Sid && x.PaxNo == 1); var Customer = paxes.FirstOrDefault(a => a.Booking_No == BN && a.SID == Sid && a.RoomRef == 1 && a.PaxNo == 1); var BookingData = hotelBookingDB.HotelsBookings.FirstOrDefault(x => x.Booking_No == BN && x.SessionId == Sid); var SearchData = searchDB.SearchCriterias.FirstOrDefault(x => x.sID == Sid); var PaxsRooms = paxes.Select(x => x.Room_No.ToString()).ToList(); var Bookingrooms = searchDB.SearchRoomResults.Where(a => a.sID == Sid && a.HotelCode == BookingData.Hotel_ID && PaxsRooms.Contains(a.RoomCode)).ToList(); if (Customer == null || Bookingrooms.Count == 0 || SearchData == null || BookingData == null) { return(null); } payLinkData.Customer.CustomerEmail = BookingData.Booking_Email; payLinkData.Customer.CustomerPhone = Customer.Phone; payLinkData.Customer.FirstName = Customer.First_name; payLinkData.Customer.LastName = Customer.Last_Name; payLinkData.Customer.IP = ip; payLinkData.Customer.Nationality = SearchData.passengerNationality; payLinkData.Customer.PaymentLocation = pos; payLinkData.Customer.PhoneCodeCountry = Customer.Phone_Code; payLinkData.Customer.PhoneCountryCode = null; payLinkData.BookingInfo.BookingDate = Convert.ToDateTime(string.Format("{0:s}", DateTime.Now)); payLinkData.BookingInfo.CheckInDate = SearchData.dateFrom.Value; payLinkData.BookingInfo.Description = ""; payLinkData.BookingInfo.HGNumber = BN; payLinkData.BookingInfo.Product = "Hotel"; payLinkData.BookingInfo.SearchID = Sid; var url = ConfigurationSettings.AppSettings["SuccessUrl"]; payLinkData.PaymentAuthData.FailUrl = url + "?HG=" + BN + "&sid=" + Sid; payLinkData.PaymentAuthData.SuccessUrl = url + "?HG=" + BN + "&sid=" + Sid; payLinkData.PaymentAuthData.HGToken = null; payLinkData.PaymentAuthData.HGTokenStatus = 0; payLinkData.PaymentAuthData.HGTrackId = null; payLinkData.PaymentAuthData.PaymentMethod = null; payLinkData.PaymentAuthData.PaymentToken = null; var ActionUrlData = ConfigurationSettings.AppSettings["ActionUrl"]; var BaseCur = ConfigurationSettings.AppSettings["BaseCur"]; // stop call cHotelCheckAvailability for tbo payLinkData.ActionsUrl.ValidationUrl = ActionUrlData + "/api/HotelCheckAvailability?sid=" + Sid + "&bookingnum=" + BN; payLinkData.ActionsUrl.PostPaymentUrl = ActionUrlData + "/Api/ConfirmHotelStatus?sid=" + Sid + "&bookingNum=" + BN; payLinkData.ActionsUrl.PrePaymentUrl = ""; foreach (var item in Bookingrooms) { totalPrice += item.SellPrice.Value; } double BaseExcahngeRate = currencyManager.GetEveryDayCurrenciesConversion(Bookingrooms[0].SellCurrency, BaseCur, Sid, DateTime.Now).Result.Customer_Sell_Rate; double ExcahngeRate = currencyManager.GetEveryDayCurrenciesConversion(BaseCur, BookingData.Sell_Currency, Sid, DateTime.Now).Result.Customer_Sell_Rate; totalPrice = totalPrice * BaseExcahngeRate; payLinkData.PaymentFareDetails.CustomerPaymentCurrency = BookingData.Sell_Currency; payLinkData.PaymentFareDetails.FareAmount = totalPrice; payLinkData.PaymentFareDetails.TaxAmount = 0; payLinkData.PaymentFareDetails.TotalAmount = totalPrice; payLinkData.PaymentFareDetails.TotalChargeAmount = 0; payLinkData.PaymentFareDetails.ExchangeRate = ExcahngeRate; payLinkData.FormData = null; BookingData.NotificationKey = NotTok; hotelBookingDB.SaveChanges(); return(payLinkData); }catch (Exception ex) { LoggingHelper.WriteToFile("PaymentViewController/ERRor/", "PaymentView" + "INDAL" + Sid, "InComingData", ex.InnerException?.Message + ex.Message + ex.StackTrace); return(null); } }
public static void SaveResponseToDB(CheckAvailabilityResult res, double newCost, AvailabilityReq req, string currency, string src) { try { using (HotelBookingDBEntities db = new HotelBookingDBEntities()) { AvailabilityRe availabilityRes = new AvailabilityRe(); availabilityRes.TotalsellPrice = res.TotalCost; availabilityRes.NewTotalcost = newCost; availabilityRes.OldTotalcost = req.TotalCost; availabilityRes.BookingNum = req.BookingNum; availabilityRes.PID = req.PID; availabilityRes.SellCurrency = currency; availabilityRes.Sid = req.Sid; availabilityRes.Status = res.Status; availabilityRes.hotelCode = req.HotelCode; db.AvailabilityRes.Add(availabilityRes); foreach (var item in res.Result) { availabilityRoomRe roomRes = new availabilityRoomRe(); roomRes.BookingNum = req.BookingNum; roomRes.Pid = req.PID; roomRes.Sid = req.Sid; roomRes.RoomRef = item.RoomCode; roomRes.Cost = item.CostPrice; roomRes.Courrency = currency; roomRes.roomId = item.RoomIndex; roomRes.SellPrice = item.TotalSellPrice; if (src == "policy") { foreach (var cancel in item.cancellationRules) { CancelPolicy policy = new CancelPolicy(); policy.Cost = (decimal)cancel.Cost; //if (req.PID == "4") //{ //policy.Currency = "EUR"; policy.Currency = currency; // } //else if (req.PID == "2") //{ //policy.Currency = "USD"; // } policy.FromDate = DateTime.Parse(cancel.FromDate); policy.HotelCode = req.HotelCode; policy.ProviderCurrency = currency; policy.ProviderID = req.PID; policy.RoomCode = item.RoomIndex; policy.SellPrice = (decimal)cancel.Price; policy.Sid = req.Sid; if (cancel.ToDate != null) { policy.ToDate = DateTime.Parse(cancel.ToDate); } db.CancelPolicies.Add(policy); } } db.availabilityRoomRes.Add(roomRes); } if (res.Status != 0) { var bookingData = db.HotelsBookings.FirstOrDefault(a => a.SessionId == req.Sid && a.Booking_No == req.BookingNum); if (bookingData != null) { bookingData.Sell_Price = res.TotalCost; } } db.SaveChanges(); } } catch (Exception ex) { LoggingHelper.WriteToFile("AvailabilityController/Errors/", "CheckAvailabilityRepo" + "SaveResponseToDB" + req.Sid, ex.InnerException?.Message, ex.Message + ex.StackTrace); } }
public TBOBookReq GetBookReqData(string SID, string BN) { HotelBookingDBEntities db = new HotelBookingDBEntities(); SearchDBEntities SDB = new SearchDBEntities(); var psid = SDB.ProviderSessions.FirstOrDefault(ss => ss.SearchId == SID).PSession; var searchcriteria = SDB.SearchCriterias.FirstOrDefault(sc => sc.sID == SID); var paxes = db.HotelBookingPaxs.Where(px => px.SID == SID).ToList(); var bookdata = db.HotelsBookings.FirstOrDefault(px => px.SessionId == SID && px.Booking_No == BN); //var searchRooms = SDB.SearchRoomResults.Where(r => r.sID == SID && r.HotelCode == bookdata.Hotel_ID).ToList() ; var searchHotelRes = SDB.SearchHotelResults.FirstOrDefault(h => h.sID == SID && h.HotelCode == bookdata.Hotel_ID); var mainTraveller = db.Customers.FirstOrDefault(cus => cus.ID.ToString() == bookdata.Customer_ID); var Bookingrooms = db.HotelBookingRooms.Where(rom => rom.SID == SID).ToList(); // get rooms indexes List <SearchRoomResult> Roomrates = new List <SearchRoomResult>(); var Paxes = db.HotelBookingPaxs.Where(a => a.SID == SID && a.Booking_No == BN).ToList(); //list of room indx var rooms = Paxes.Where(x => x.PaxNo == 1).Select(a => a.Room_No.Value.ToString()).ToList(); foreach (var item in rooms) { Roomrates.Add(SDB.SearchRoomResults.Where(a => a.RoomCode == item && a.sID == SID && a.HotelCode == bookdata.Hotel_ID).FirstOrDefault()); } // List <Guest> guests = new List <Guest>(); //foreach (var room in Bookingrooms) //{ int c = 0; foreach (var pax in paxes) { int age = 0; if (pax.Pax_Type.ToLower() == "adult") { c = 0; //case next was not chd to reset chd ages age = 30; guests.Add(new Guest { Age = age, //TBORepo.CalculateAge(Convert.ToDateTime(pax.DateOfBirth)), FirstName = pax.First_name, LeadGuest = pax.Lead, GuestInRoom = pax.RoomRef ?? default(int), GuestType = pax.Pax_Type, LastName = pax.Last_Name, Title = pax.Salutations }); } else { var PCHDAges = SDB.ProviderSessions.FirstOrDefault(pp => pp.SearchId == SID && pp.RoomRef == pax.RoomRef); string[] values = PCHDAges.ChildAges.Split(','); if (c > 1) { c = 0; } age = int.Parse(values[c]); guests.Add(new Guest { Age = age, //TBORepo.CalculateAge(Convert.ToDateTime(pax.DateOfBirth)), FirstName = pax.First_name, LeadGuest = pax.Lead, GuestInRoom = pax.RoomRef ?? default(int), GuestType = pax.Pax_Type, LastName = pax.Last_Name, Title = pax.Salutations }); if (values.Length > 1) { c++; } } } //} //calc total in usd curr double?total = 0; List <Hotels.Common.Models.HotelRoom> Rooms = new List <Hotels.Common.Models.HotelRoom>(); foreach (var room in Roomrates) { var roomcod = int.Parse(room.RoomCode); //suplement List <Hotels.Common.Models.Supplement> supplements = new List <Hotels.Common.Models.Supplement>(); var supps = SDB.Supplements.Where(sup => sup.SID == SID && sup.HotelCode == bookdata.Hotel_ID && sup.RoomIndex == roomcod); if (supps != null) { foreach (var sp in supps) { supplements.Add(new Common.Models.Supplement { Price = (decimal)sp.Price, SuppChargeType = sp.ChargeType, //SuppID =sp. SuppIsSelected = sp.IsSelected ?? default(bool) }); total += sp.Price; } } Rooms.Add(new Common.Models.HotelRoom { RoomIndex = int.Parse(room.RoomCode), Supplements = supplements, RoomTypeName = room.RoomName, RatePlanCode = room.RoomReference, RoomTypeCode = room.roomType, RoomRate = new RoomRate { RoomTax = decimal.Parse(room.rateType), // tax RoomFare = decimal.Parse(room.rateClass), //base fare TotalFare = (decimal)room.costPrice, } }); total += room.costPrice; } //map to geral tbo req TBOBookReq req = new TBOBookReq { SessionId = psid, Guests = guests, //AddressInfo = new AddressInfo //{ //}, GuestNationality = searchcriteria.passengerNationality, HotelRooms = Rooms, HotelCode = bookdata.Hotel_ID, //HotelName =bookdata.na NoOfRooms = Rooms.Count, ResultIndex = searchHotelRes.ResIndex ?? default(int), TotalNet = total }; return(req); }
public static int EditBookingPaxes(CheckOutData checkOutData, string BN) { try { int EffectedRows = 0; int indx = 1; HotelBookingDBEntities dBEntitiy = new HotelBookingDBEntities(); for (int i = 0; i < checkOutData.Travellers.Count; i++) { checkOutData.Travellers[i].roomRef = i + 1; } var booking = dBEntitiy.HotelBookingPaxs.Where(a => a.SID == checkOutData.Sid && a.Booking_No == BN && a.PaxNo == 1); if (booking != null) { foreach (var item in booking) { var pax = checkOutData.Travellers.FirstOrDefault(x => x.roomNo == item.Room_No && x.roomRef == indx && x.TravellerId == item.PaxNo); if (pax != null) { item.DateOfBirth = pax.DateOfBirth.ToString(); item.First_name = pax.firstName; item.Last_Name = pax.lastName; item.Nationality = pax.nationality; item.Pax_Type = pax.paxType; item.Phone = pax.phone; item.Phone_Code = pax.phoneCode; item.Salutations = pax.salutation; } indx = indx + 1; } var BookingData = dBEntitiy.HotelsBookings.FirstOrDefault(a => a.Booking_No == BN && a.SessionId == checkOutData.Sid); var traveller = checkOutData.Travellers.FirstOrDefault(a => a.Main == true); var customer = dBEntitiy.Customers.FirstOrDefault(a => a.Email == checkOutData.Mail); if (customer != null) { BookingData.Customer_ID = customer.ID.ToString(); } else { Customer cus = new Customer(); cus.Country = traveller.nationality; cus.Date_Of_Birth = traveller.DateOfBirth; cus.Email = checkOutData.Mail; cus.First_Name = traveller.firstName; cus.Last_Name = traveller.lastName; cus.Phone = traveller.phone; cus.Phone_Code = traveller.phoneCode; cus.Salutations = traveller.salutation; dBEntitiy.Customers.Add(cus ); dBEntitiy.SaveChanges(); BookingData.Customer_ID = cus.ID.ToString(); } BookingData.Pax_Name = traveller.firstName + " " + traveller.lastName; BookingData.Booking_Email = checkOutData.Mail; BookingData.Booking_phone = traveller.phone; BookingData.Booking_Phone_Code = traveller.phoneCode; EffectedRows = dBEntitiy.SaveChanges(); return(EffectedRows); } return(0); } catch (Exception ex) { throw ex; } }
public void SaveSearchResult(List <HotelSearchResult> hotelSearchResults, string sID) { try { HotelBookingDBEntities dBEntities = new HotelBookingDBEntities(); List <CancelPolicy> cancelPolicies = new List <CancelPolicy>(); using (DBConnection db = new DBConnection()) { db.DB_OpenConnection("SDB"); // hotel rates DataTable dt = new DataTable(); DataColumn SID = new DataColumn("sID"); DataColumn HotelCode = new DataColumn("HotelCode"); DataColumn ProviderID = new DataColumn("ProviderID"); DataColumn ProviderHotelCode = new DataColumn("ProviderHotelCode"); DataColumn ProviderHotelId = new DataColumn("ProviderHotelId"); DataColumn CostPrice = new DataColumn("CostPrice"); DataColumn SellPrice = new DataColumn("SellPrice"); DataColumn SellCurrency = new DataColumn("SellCurrency"); DataColumn MarkUpID = new DataColumn("MarkUpID"); DataColumn MarkUpVal = new DataColumn("MarkUpVal"); DataColumn DiscountID = new DataColumn("DiscountID"); DataColumn DiscountVal = new DataColumn("DiscountVal"); DataColumn ResIndex = new DataColumn("ResIndex"); CostPrice.DataType = typeof(double); SellPrice.DataType = typeof(double); MarkUpVal.DataType = typeof(double); DiscountVal.DataType = typeof(double); ProviderID.DataType = typeof(int); MarkUpID.DataType = typeof(int); DiscountID.DataType = typeof(int); ResIndex.DataType = typeof(int); dt.Columns.Add(SID); dt.Columns.Add(HotelCode); dt.Columns.Add(ProviderID); dt.Columns.Add(ProviderHotelCode); dt.Columns.Add(ProviderHotelId); dt.Columns.Add(CostPrice); dt.Columns.Add(SellPrice); dt.Columns.Add(SellCurrency); dt.Columns.Add(MarkUpID); dt.Columns.Add(MarkUpVal); dt.Columns.Add(DiscountID); dt.Columns.Add(DiscountVal); dt.Columns.Add(ResIndex); //// room result DataTable dr = new DataTable(); DataColumn rsID = new DataColumn("sID"); DataColumn rProviderID = new DataColumn("ProviderId"); DataColumn rHotelCode = new DataColumn("HotelCode"); DataColumn rRoomRef = new DataColumn("RoomRef"); DataColumn rRoomCode = new DataColumn("RoomCode"); DataColumn rCostPrice = new DataColumn("CostPrice"); DataColumn rSellPrice = new DataColumn("SellPrice"); DataColumn rSellCurrency = new DataColumn("SellCurrency"); DataColumn rMarkUpID = new DataColumn("MarkUpID"); DataColumn rMarkUpVal = new DataColumn("MarkUpVal"); DataColumn rDiscountID = new DataColumn("DiscountID"); DataColumn rDiscountVal = new DataColumn("DiscountVal"); DataColumn rmeal = new DataColumn("meal"); DataColumn rtype = new DataColumn("type"); DataColumn rname = new DataColumn("name"); DataColumn rpaxes = new DataColumn("paxes"); DataColumn rChild = new DataColumn("Child"); DataColumn rAdult = new DataColumn("Adult"); DataColumn rMealID = new DataColumn("MealID"); DataColumn rRefund = new DataColumn("Refund"); DataColumn rTokenP = new DataColumn("TokenData"); DataColumn rratetype = new DataColumn("ratetype"); DataColumn rrateClass = new DataColumn("rateClass"); DataColumn rboardcode = new DataColumn("boardcode"); DataColumn rpaytype = new DataColumn("paytype"); DataColumn rChildage = new DataColumn("Childage"); rCostPrice.DataType = typeof(double); rSellPrice.DataType = typeof(double); rMarkUpVal.DataType = typeof(double); rDiscountVal.DataType = typeof(double); rProviderID.DataType = typeof(int); rMarkUpID.DataType = typeof(int); rDiscountID.DataType = typeof(int); rpaxes.DataType = typeof(int); rChild.DataType = typeof(int); rAdult.DataType = typeof(int); rRefund.DataType = typeof(bool); dr.Columns.Add(rsID); dr.Columns.Add(rProviderID); dr.Columns.Add(rHotelCode); dr.Columns.Add(rRoomRef); dr.Columns.Add(rRoomCode); dr.Columns.Add(rCostPrice); dr.Columns.Add(rSellPrice); dr.Columns.Add(rSellCurrency); dr.Columns.Add(rMarkUpID); dr.Columns.Add(rMarkUpVal); dr.Columns.Add(rDiscountID); dr.Columns.Add(rDiscountVal); dr.Columns.Add(rmeal); dr.Columns.Add(rtype); dr.Columns.Add(rname); dr.Columns.Add(rpaxes); dr.Columns.Add(rChild); dr.Columns.Add(rAdult); dr.Columns.Add(rMealID); dr.Columns.Add(rRefund); dr.Columns.Add(rTokenP); dr.Columns.Add(rratetype); dr.Columns.Add(rrateClass); dr.Columns.Add(rboardcode); dr.Columns.Add(rpaytype); dr.Columns.Add(rChildage); DataTable dP = new DataTable(); DataColumn psID = new DataColumn("sID"); DataColumn pProviderID = new DataColumn("ProviderId"); DataColumn pHotelCode = new DataColumn("HotelCode"); DataColumn pRoomCode = new DataColumn("RoomCode"); DataColumn pCostPrice = new DataColumn("CostPrice"); DataColumn pSellPrice = new DataColumn("SellPrice"); DataColumn pSellCurrency = new DataColumn("SellCurrency"); DataColumn pFromdata = new DataColumn("FromDate"); DataColumn ptodate = new DataColumn("ToDate"); pCostPrice.DataType = typeof(double); pSellPrice.DataType = typeof(double); pProviderID.DataType = typeof(int); pFromdata.DataType = typeof(DateTime); ptodate.DataType = typeof(DateTime); dP.Columns.Add(psID); dP.Columns.Add(pProviderID); dP.Columns.Add(pHotelCode); dP.Columns.Add(pRoomCode); dP.Columns.Add(pCostPrice); dP.Columns.Add(pSellPrice); dP.Columns.Add(pSellCurrency); dP.Columns.Add(pFromdata); dP.Columns.Add(ptodate); for (int i = 0; i < hotelSearchResults.Count; i++) { DataRow DtHr = dt.NewRow(); DtHr["sID"] = sID; DtHr["ProviderID"] = int.Parse(hotelSearchResults[i].providerID); DtHr["HotelCode"] = hotelSearchResults[i].hotelCode; DtHr["ProviderHotelId"] = hotelSearchResults[i].providerHotelID; DtHr["ProviderHotelCode"] = hotelSearchResults[i].providerHotelCode; DtHr["CostPrice"] = hotelSearchResults[i].costPrice.ToString(); DtHr["SellPrice"] = hotelSearchResults[i].TotalSellPrice; DtHr["SellCurrency"] = hotelSearchResults[i].sellCurrency; DtHr["MarkUpID"] = hotelSearchResults[i].MarkupId; DtHr["MarkUpVal"] = hotelSearchResults[i].MarkupValue; DtHr["DiscountID"] = hotelSearchResults[i].DiscountId; DtHr["DiscountVal"] = hotelSearchResults[i].DiscountValue; DtHr["ResIndex"] = hotelSearchResults[i].ResIndex; dt.Rows.Add(DtHr); for (int j = 0; j < hotelSearchResults[i].rooms.Count; j++) { DataRow DrHr = dr.NewRow(); DrHr["costPrice"] = hotelSearchResults[i].rooms[j].CostPrice; DrHr["DiscountId"] = hotelSearchResults[i].rooms[j].DiscountId; DrHr["DiscountVal"] = hotelSearchResults[i].rooms[j].DiscountValue; DrHr["HotelCode"] = hotelSearchResults[i].hotelCode; DrHr["MarkupId"] = hotelSearchResults[i].rooms[j].MarkupId; DrHr["MarkupVal"] = hotelSearchResults[i].rooms[j].MarkupValue; DrHr["ProviderId"] = int.Parse(hotelSearchResults[i].providerID); DrHr["RoomRef"] = hotelSearchResults[i].rooms[j].RoomReference; DrHr["RoomCode"] = j + 1; DrHr["SellCurrency"] = hotelSearchResults[i].sellCurrency; DrHr["SellPrice"] = hotelSearchResults[i].rooms[j].TotalSellPrice; DrHr["sID"] = sID; DrHr["meal"] = hotelSearchResults[i].rooms[j].RoomMeal; DrHr["type"] = hotelSearchResults[i].rooms[j].RoomCode; DrHr["name"] = hotelSearchResults[i].rooms[j].RoomType; DrHr["paxes"] = hotelSearchResults[i].rooms[j].Paxs; DrHr["Child"] = hotelSearchResults[i].rooms[j].Child; DrHr["Adult"] = hotelSearchResults[i].rooms[j].Adult; DrHr["MealID"] = hotelSearchResults[i].rooms[j].MealID; DrHr["Refund"] = hotelSearchResults[i].rooms[j].IsRefundable; DrHr["TokenData"] = hotelSearchResults[i].rooms[j].BookingKeyTS; DrHr["ratetype"] = hotelSearchResults[i].rooms[j].rateType; DrHr["rateClass"] = hotelSearchResults[i].rooms[j].rateClass; DrHr["boardcode"] = hotelSearchResults[i].rooms[j].boardCode; DrHr["paytype"] = hotelSearchResults[i].rooms[j].paymentType; DrHr["Childage"] = hotelSearchResults[i].rooms[j].childrenAges; dr.Rows.Add(DrHr); if (hotelSearchResults[i].rooms[j].cancellationRules != null) { foreach (var cancel in hotelSearchResults[i].rooms[j].cancellationRules) { if (cancel.FromDate != null) { DataRow DpHp = dP.NewRow(); // CancelPolicy policy = new CancelPolicy(); DpHp["costPrice"] = (decimal)cancel.Cost; DpHp["FromDate"] = Convert.ToDateTime(cancel.FromDate); DpHp["HotelCode"] = hotelSearchResults[i].hotelCode; DpHp["ProviderId"] = hotelSearchResults[i].providerID; DpHp["RoomCode"] = j + 1; DpHp["SellPrice"] = (decimal)cancel.Price; DpHp["sID"] = sID; DpHp["SellCurrency"] = hotelSearchResults[i].sellCurrency; if (cancel.ToDate != null) { DpHp["ToDate"] = Convert.ToDateTime(cancel.ToDate); } /* else * { * DpHp["ToDate"] = ; * }*/ dP.Rows.Add(DpHp); } } } } } // dBEntities.CancelPolicies.AddRange(cancelPolicies); // dBEntities.SaveChanges(); Dictionary <string, object> keyValues = new Dictionary <string, object>(); keyValues.Add("HotelList", dt); keyValues.Add("RoomList", dr); keyValues.Add("Policy", dP); db.SaveSP_Async("SaveSearchResult", keyValues); } } catch (Exception ex) { LoggingHelper.WriteToFile("SearchController/SearchRepo/Errors/", "SaveSearchResult_" + sID, "ex.Message", ex.Message + " Sourse :" + ex.Source + " Stack Trace :" + ex.StackTrace); throw ex; } }
public static void SaveBookingResult(CheckOutData BookingResults, string BNNum) { List <int> rooms = new List <int>(); try { var BaseCur = ConfigurationSettings.AppSettings["BaseCur"]; foreach (var item in BookingResults.Travellers) { if (!rooms.Contains(item.roomNo)) { rooms.Add(item.roomNo); } } using (DBConnection db = new DBConnection()) { db.DB_OpenConnection("HB"); SearchDBEntities searchDB = new SearchDBEntities(); #region old code save use SP // hotel rates //DataTable dt = new DataTable(); //DataColumn SessionId = new DataColumn("SessionId"); //DataColumn Booking_No = new DataColumn("Booking_No"); //DataColumn City = new DataColumn("City"); //DataColumn HotelId = new DataColumn("HotelId"); //DataColumn HotelPId = new DataColumn("HotelPId"); //DataColumn Rooms_Qty = new DataColumn("Rooms_Qty"); //DataColumn Pax_Qty = new DataColumn("Pax_Qty"); //DataColumn Booking_Status = new DataColumn("Booking_Status"); //DataColumn Customer_ID = new DataColumn("Customer_ID"); //DataColumn Provider_ID = new DataColumn("Provider_ID"); //DataColumn Sell_Price = new DataColumn("Sell_Price"); //DataColumn Sell_Currency = new DataColumn("Sell_Currency"); //DataColumn Booking_Phone_Code = new DataColumn("Booking_Phone_Code"); //DataColumn Booking_Phone = new DataColumn("Booking_Phone"); //DataColumn Booking_Email = new DataColumn("Booking_Email"); //DataColumn Pax_Name = new DataColumn("Pax_Name"); //DataColumn Foreign_Amount = new DataColumn("Foreign_Amount"); //DataColumn Total_Cost_main = new DataColumn("Total_Cost_main"); //DataColumn Bookingsrc = new DataColumn("src"); //Rooms_Qty.DataType = typeof(int); //Pax_Qty.DataType = typeof(int); //Sell_Price.DataType = typeof(double); //Foreign_Amount.DataType = typeof(double); //Total_Cost_main.DataType = typeof(int); //dt.Columns.Add(SessionId); //dt.Columns.Add(Booking_No); //dt.Columns.Add(City); //dt.Columns.Add(HotelId); //dt.Columns.Add(HotelPId); //dt.Columns.Add(Rooms_Qty); //dt.Columns.Add(Pax_Qty); //dt.Columns.Add(Booking_Status); //dt.Columns.Add(Customer_ID); //dt.Columns.Add(Provider_ID); //dt.Columns.Add(Sell_Price); //dt.Columns.Add(Sell_Currency); //dt.Columns.Add(Booking_Phone_Code); //dt.Columns.Add(Booking_Phone); //dt.Columns.Add(Booking_Email); //dt.Columns.Add(Pax_Name); //dt.Columns.Add(Foreign_Amount); //dt.Columns.Add(Total_Cost_main); //dt.Columns.Add(Bookingsrc); //// room result //DataTable dr = new DataTable(); //DataColumn rsID = new DataColumn("sID"); //DataColumn rProviderID = new DataColumn("ProviderId"); //DataColumn rBooking_No = new DataColumn("Booking_No"); //DataColumn rRoomNo = new DataColumn("RoomNo"); //DataColumn rRoomCat = new DataColumn("RoomCat"); //DataColumn rRoomType = new DataColumn("RoomType"); //DataColumn rMeal = new DataColumn("Meal"); //DataColumn rPaxesQty = new DataColumn("PaxesQty"); //DataColumn rRefund = new DataColumn("Refund"); //rProviderID.DataType = typeof(int); //rRoomNo.DataType = typeof(int); //rPaxesQty.DataType = typeof(int); //dr.Columns.Add(rsID); //dr.Columns.Add(rProviderID); //dr.Columns.Add(rBooking_No); //dr.Columns.Add(rRoomNo); //dr.Columns.Add(rRoomCat); //dr.Columns.Add(rRoomType); //dr.Columns.Add(rMeal); //dr.Columns.Add(rPaxesQty); //dr.Columns.Add(rRefund); //DataTable dn = new DataTable(); //DataColumn nBooking_No = new DataColumn("Booking_No"); //DataColumn nNdate = new DataColumn("Ndate"); //DataColumn nrate = new DataColumn("rate"); //DataColumn nCurrency = new DataColumn("Currency"); //DataColumn nRoomNo = new DataColumn("Room_No"); //DataColumn nExchangeRate = new DataColumn("ExchangeRate"); //nNdate.DataType = typeof(DateTime); //nrate.DataType = typeof(double); //nRoomNo.DataType = typeof(int); //nExchangeRate.DataType = typeof(double); //dn.Columns.Add(nBooking_No); //dn.Columns.Add(nNdate); //dn.Columns.Add(nrate); //dn.Columns.Add(nCurrency); //dn.Columns.Add(nRoomNo); //dn.Columns.Add(nExchangeRate); //DataTable dp = new DataTable(); //DataColumn pBooking_No = new DataColumn("Booking_No"); //DataColumn psID = new DataColumn("sID"); //DataColumn pRoomNo = new DataColumn("RoomNo"); //DataColumn ppaxtype = new DataColumn("paxtype"); //DataColumn pFirstName = new DataColumn("FirstName"); //DataColumn pLastName = new DataColumn("LastName"); //DataColumn saluation = new DataColumn("saluation"); //DataColumn pBD = new DataColumn("BD"); //DataColumn pNationality = new DataColumn("Nationality"); //DataColumn pphone = new DataColumn("phone"); //DataColumn pphoneCode = new DataColumn("phoneCode"); //DataColumn PPaxNo = new DataColumn("PaxNo"); //DataColumn PRoomRef = new DataColumn("Ref"); //pRoomNo.DataType = typeof(int); //PPaxNo.DataType = typeof(int); //PRoomRef.DataType = typeof(int); //dp.Columns.Add(psID); //dp.Columns.Add(pBooking_No); //dp.Columns.Add(pRoomNo); //dp.Columns.Add(ppaxtype); //dp.Columns.Add(pFirstName); //dp.Columns.Add(pLastName); //dp.Columns.Add(saluation); //dp.Columns.Add(pBD); //dp.Columns.Add(pNationality); //dp.Columns.Add(pphone); //dp.Columns.Add(pphoneCode); //dp.Columns.Add(PPaxNo); //dp.Columns.Add(PRoomRef); //DataRow DtHr = dt.NewRow(); //DtHr["SessionId"] = BookingResults.Sid; //DtHr["Booking_No"] = BNNum;//////////********************* //DtHr["City"] = BookingResults.CityName; //DtHr["HotelId"] = BookingResults.HotelID; //DtHr["HotelPId"] = BookingResults.ProviderHotelID; //DtHr["Rooms_Qty"] = int.Parse(BookingResults.RoomQty); //DtHr["Pax_Qty"] = BookingResults.Travellers.Count; //DtHr["Booking_Status"] = "NewBooking"; #endregion HotelBookingDBEntities hotelBookingDB = new HotelBookingDBEntities(); var traveller = BookingResults.Travellers.FirstOrDefault(a => a.Main == true); var customer = hotelBookingDB.Customers.FirstOrDefault(a => a.Email == BookingResults.Mail); var CusID = 0; if (customer != null) { //DtHr["Customer_ID"] = customer.ID; CusID = customer.ID; } else { Customer cus = new Customer(); cus.Country = traveller.nationality; cus.Date_Of_Birth = traveller.DateOfBirth; cus.Email = BookingResults.Mail; cus.First_Name = traveller.firstName; cus.Last_Name = traveller.lastName; cus.Phone = traveller.phone; cus.Phone_Code = traveller.phoneCode; cus.Salutations = traveller.salutation; hotelBookingDB.Customers.Add(cus); hotelBookingDB.SaveChanges(); //DtHr["Customer_ID"] = cus.ID; CusID = cus.ID; } //DtHr["Provider_ID"] = BookingResults.Pid; //DtHr["Sell_Price"] = BookingResults.SellPrice; //DtHr["Sell_Currency"] = BookingResults.Currency; //DtHr["Booking_Phone_Code"] = traveller.phoneCode; //DtHr["Booking_Phone"] = traveller.phone; //DtHr["Booking_Email"] = BookingResults.Mail; traveller.lastName = traveller.lastName.Replace(" ", String.Empty); //DtHr["Pax_Name"] = traveller.firstName + " " + traveller.lastName; //DtHr["Foreign_Amount"] = BookingResults.totalCost; //DtHr["Total_Cost_main"] = BookingResults.totalCost; //DtHr["src"] = BookingResults.Src; //TBO HotelsBooking hotelsBooking = new HotelsBooking { //Booking_Conf = Booking_Email = BookingResults.Mail, Booking_No = BNNum, Booking_phone = traveller.phone, Booking_Phone_Code = traveller.phoneCode, Booking_Status = "NewBooking", Booking_Time = DateTime.UtcNow, City = BookingResults.CityName, Customer_ID = CusID.ToString(), Foreign_Amount = BookingResults.totalCost, //Form_Of_Payment //HotelConfirmationNo HotelProviderID = BookingResults.ProviderHotelID, Hotel_ID = BookingResults.HotelID, //InvoicePdf //NotificationKey Pax_Name = traveller.firstName + " " + traveller.lastName, Pax_Qty = BookingResults.Travellers.Count, //PromoCode_Amount Provider_ID = BookingResults.Pid, Rooms_Qty = int.Parse(BookingResults.RoomQty), Sell_Currency = BookingResults.Currency, Sell_Price = BookingResults.SellPrice, Total_Cost_Main_Currency = BookingResults.totalCost, SessionId = BookingResults.Sid, Sales_Channel = BookingResults.Src }; hotelBookingDB.HotelsBookings.Add(hotelsBooking); // //dt.Rows.Add(DtHr); var searchData = searchDB.SearchCriterias.FirstOrDefault(a => a.sID == BookingResults.Sid); int duration = Convert.ToInt32((searchData.dateTo - searchData.dateFrom).Value.TotalDays); var roomsDB = searchDB.SearchRoomResults.Where(a => a.sID == BookingResults.Sid && a.HotelCode == BookingResults.HotelID); var Bookingrooms = BookingResults.Travellers.Select(x => x.roomRef).ToList().Distinct(); foreach (var item in Bookingrooms) { var specificRoom = BookingResults.Travellers.FirstOrDefault(x => x.roomRef == item); var roomdata = roomsDB.FirstOrDefault(a => a.RoomCode == specificRoom.roomNo.ToString() && a.HotelCode == BookingResults.HotelID); HotelBookingRoom room = new HotelBookingRoom { Booking_No = BNNum, Meal = roomdata.meal, Paxs_Qty = roomdata.PaxSQty, PID = int.Parse(BookingResults.Pid), //Room_Category = roomdata.RoomName, Room_No = specificRoom.roomNo, //Room_Type = roomdata.roomType, SID = BookingResults.Sid, }; hotelBookingDB.HotelBookingRooms.Add(room); //DataRow DRR = dr.NewRow(); //DRR["sID"] = BookingResults.Sid; //DRR["ProviderId"] = int.Parse(BookingResults.Pid);////////// //DRR["Booking_No"] = BNNum;////////////////////////////************* //DRR["RoomNo"] = specificRoom.roomNo; //DRR["RoomCat"] = roomdata.RoomName; //DRR["RoomType"] = roomdata.roomType; //DRR["Meal"] = roomdata.meal; //DRR["PaxesQty"] = roomdata.PaxSQty; //// DRR["Refund"] = "";////////////// //dr.Rows.Add(DRR); for (int j = 0; j < duration; j++) { HotelBookingNight night = new HotelBookingNight { Booking_No = BNNum, Currency = roomdata.SellCurrency, NightDate = searchData.dateFrom.Value.AddDays(j + 1), Rate = roomdata.SellPrice.Value / duration, Room_No = specificRoom.roomNo }; hotelBookingDB.HotelBookingNights.Add(night); //DataRow DrN = dn.NewRow(); //DrN["Booking_No"] = BNNum;//*************************** //DrN["Ndate"] = searchData.dateFrom.Value.AddDays(j + 1); //DrN["rate"] = roomdata.SellPrice.Value / duration; //DrN["Currency"] = roomdata.SellCurrency; //DrN["Room_No"] = specificRoom.roomNo; //dn.Rows.Add(DrN); } HotelBookingRoomsStatu roomsStatus = new HotelBookingRoomsStatu(); roomsStatus.Booking_No = BNNum; roomsStatus.Room_No = specificRoom.roomNo; roomsStatus.Room_Status = 1; hotelBookingDB.HotelBookingRoomsStatus.Add(roomsStatus); } foreach (var item in BookingResults.Travellers) { HotelBookingPax pax = new HotelBookingPax { Booking_No = BNNum, DateOfBirth = item.DateOfBirth.ToString(), First_name = item.firstName, Last_Name = item.lastName, Nationality = item.nationality, PaxNo = item.TravellerId, Pax_Type = item.paxType, Phone = item.phone, Phone_Code = item.phoneCode, RoomRef = item.roomRef, Room_No = item.roomNo, //room index Salutations = item.salutation, SID = BookingResults.Sid, Lead = item.Main }; hotelBookingDB.HotelBookingPaxs.Add(pax); //DataRow Dpri = dp.NewRow(); //Dpri["sID"] = BookingResults.Sid; //Dpri["Booking_No"] = BNNum;//////////**************** //Dpri["RoomNo"] = item.roomNo;//////////////////////////// //Dpri["paxtype"] = item.paxType; //Dpri["FirstName"] = item.firstName; //Dpri["LastName"] = item.lastName; //Dpri["saluation"] = item.salutation; //Dpri["BD"] = item.DateOfBirth.ToString(); //Dpri["Nationality"] = item.nationality; //Dpri["phone"] = item.phone; //Dpri["phoneCode"] = item.phoneCode; //Dpri["PaxNo"] = item.TravellerId; //Dpri["Ref"] = item.roomRef; //dp.Rows.Add(Dpri); } HotelBookingStatu bookingStatus = new HotelBookingStatu(); bookingStatus.Booking_No = BNNum; bookingStatus.Booking_Status = "New Booking"; bookingStatus.Status_Time = DateTime.Now; hotelBookingDB.HotelBookingStatus.Add(bookingStatus); //Dictionary<string, object> keyValues = new Dictionary<string, object>(); //keyValues.Add("Bookindata", dt); //keyValues.Add("RoomList", dr); //keyValues.Add("nigtData", dn); //keyValues.Add("paxes", dp); // db.SaveSP_Async("SaveBookingResult", keyValues); hotelBookingDB.SaveChanges(); } } catch (Exception ex) { LoggingHelper.WriteToFile("SaveBookingController/Errors/", "SaveSearchResult_" + BookingResults.Sid, "", ex.Message + " Sourse :" + ex.Source + " Stack Trace :" + ex.StackTrace); throw ex; } }
public UpcomingHistory GetUpcomingAndHistoryData(string mail) { try { UpcomingHistory upcomingHistory = new UpcomingHistory(); HotelBookingDBEntities BookingDB = new HotelBookingDBEntities(); SearchDBEntities searchDB = new SearchDBEntities(); hotelsDBEntities hotelsDB = new hotelsDBEntities(); var BookingData = BookingDB.HotelsBookings.Where(a => a.Booking_Email == mail).ToList(); foreach (var item in BookingData) { ConfirmationModel BookingModel = new ConfirmationModel(); var SearchData = searchDB.SearchCriterias.FirstOrDefault(a => a.sID == item.SessionId); if (SearchData.dateFrom >= DateTime.Now) { var hotelData = hotelsDB.hotels.FirstOrDefault(a => a.hotelID == item.Hotel_ID); var hotelsImage = hotelsDB.HotelsImages.Where(a => a.HotelID == item.Hotel_ID).ToList(); BookingModel.hotel.CheckIn = SearchData.dateFrom.Value.ToString("dd-MM-yyyy"); BookingModel.hotel.CheckOut = SearchData.dateTo.Value.ToString("dd-MM-yyyy"); BookingModel.hotel.City = hotelData.cityName; BookingModel.hotel.Country = hotelData.countryName; BookingModel.hotel.hotelCode = item.Hotel_ID; BookingModel.hotel.hotelName = hotelData.hotelName; BookingModel.hotel.hotelStars = int.Parse(hotelData.rating) > 0 ? int.Parse(hotelData.rating) - 558 : 0; BookingModel.hotel.hotelThumb = hotelsImage[0].Thum; BookingModel.hotel.Location = hotelData.location; BookingModel.hotel.Paxes = item.Pax_Qty.Value; BookingModel.hotel.Rooms = item.Rooms_Qty.Value; BookingModel.hotel.sellCurrency = item.Sell_Currency; BookingModel.hotel.TotalSellPrice = item.Sell_Price.Value; BookingModel.bookingNum = item.Booking_No; BookingModel.mail = item.Booking_Email; BookingModel.status = item.Booking_Status; upcomingHistory.Upcoming.Add(BookingModel); } else { var hotelData = hotelsDB.hotels.FirstOrDefault(a => a.hotelID == item.Hotel_ID); var hotelsImage = hotelsDB.HotelsImages.Where(a => a.HotelID == item.Hotel_ID).ToList(); BookingModel.hotel.CheckIn = SearchData.dateFrom.Value.ToString("dd-MM-yyyy"); BookingModel.hotel.CheckOut = SearchData.dateTo.Value.ToString("dd-MM-yyyy"); BookingModel.hotel.City = hotelData.cityName; BookingModel.hotel.Country = hotelData.countryName; BookingModel.hotel.hotelCode = item.Hotel_ID; BookingModel.hotel.hotelName = hotelData.hotelName; BookingModel.hotel.hotelStars = int.Parse(hotelData.rating) > 0 ? int.Parse(hotelData.rating) - 558 : 0; BookingModel.hotel.hotelThumb = hotelsImage[0].Thum; BookingModel.hotel.Location = hotelData.location; BookingModel.hotel.Paxes = item.Pax_Qty.Value; BookingModel.hotel.Rooms = item.Rooms_Qty.Value; BookingModel.hotel.sellCurrency = item.Sell_Currency; BookingModel.hotel.TotalSellPrice = item.Sell_Price.Value; BookingModel.bookingNum = item.Booking_No; BookingModel.mail = item.Booking_Email; BookingModel.status = item.Booking_Status; upcomingHistory.Histories.Add(BookingModel); } } return(upcomingHistory); } catch (Exception ex) { LoggingHelper.WriteToFile("UpcomingAndHistoryController/ERRor/", "UpcomingAndHistory" + "INController" + mail, "InComingData", ex.InnerException?.Message + ex.Message + ex.StackTrace); return(null); } }
public ConfirmationModel GetConfirmationData(string sid, string BN) { try { ConfirmationModel confirmationModel = new ConfirmationModel(); HotelBookingDBEntities BookingDB = new HotelBookingDBEntities(); SearchDBEntities searchDB = new SearchDBEntities(); hotelsDBEntities hotelsDB = new hotelsDBEntities(); HotelBedEntity HBDB = new HotelBedEntity(); List <SearchRoomResult> searchRoomResults = new List <SearchRoomResult>(); List <SearchRoomResult> SelectedRooms = new List <SearchRoomResult>(); var BookingData = BookingDB.HotelsBookings.FirstOrDefault(a => a.SessionId == sid && a.Booking_No == BN); var Paxes = BookingDB.HotelBookingPaxs.Where(x => x.Booking_No == BN && x.SID == sid && x.PaxNo == 1); var SearchData = searchDB.SearchCriterias.FirstOrDefault(a => a.sID == sid); var RoomData = searchDB.SearchRoomDatas.Where(a => a.sID == sid).ToList(); var Rooms = Paxes.Select(x => x.RoomRef.ToString()).ToList(); foreach (var item in Rooms) { var roomsearch = searchDB.SearchRoomResults.FirstOrDefault(r => r.sID == sid && r.HotelCode == BookingData.Hotel_ID && r.RoomCode == item); SelectedRooms.Add(roomsearch); } if (BookingData.Provider_ID == "4") { var hotelData = hotelsDB.hotels.FirstOrDefault(a => a.hotelID == BookingData.Hotel_ID); var hotelDesc = hotelsDB.HotelsDescriptions.FirstOrDefault(a => a.hotelID == BookingData.Hotel_ID); confirmationModel.hotel.HotelDescription = hotelDesc.Description1; var hotelsImage = hotelsDB.HotelsImages.Where(a => a.HotelID == BookingData.Hotel_ID).ToList(); confirmationModel.hotel.City = hotelData.cityName; confirmationModel.hotel.Country = hotelData.countryName; confirmationModel.hotel.hotelCode = BookingData.Hotel_ID; confirmationModel.hotel.hotelName = hotelData.hotelName; confirmationModel.hotel.Address = hotelData.address; confirmationModel.hotel.hotelStars = int.Parse(hotelData.rating); if (hotelsImage.Count > 0) { confirmationModel.hotel.hotelThumb = hotelsImage[0].Thum; } confirmationModel.hotel.Location = hotelData.location; } else if (BookingData.Provider_ID == "5") { using (TBOContext tBOContext = new TBOContext()) { var hotelData = tBOContext.HotelDetails.FirstOrDefault(a => a.HotelCode == BookingData.Hotel_ID); var hotelDesc = hotelData.Description; var hotelsImage = tBOContext.HotelImages.Where(a => a.HotelCode == BookingData.Hotel_ID).ToList(); confirmationModel.hotel.City = hotelData.CityName; confirmationModel.hotel.Country = hotelData.CountryName; confirmationModel.hotel.hotelCode = BookingData.Hotel_ID; confirmationModel.hotel.hotelName = hotelData.HotelName; confirmationModel.hotel.Address = hotelData.Address; //confirmationModel.hotel.hotelStars = int.Parse(hotelData.rating); if (hotelsImage.Count > 0) { confirmationModel.hotel.hotelThumb = hotelsImage[0].URL; } confirmationModel.hotel.Location = hotelData.HotelLocation; } } confirmationModel.hotel.CheckIn = SearchData.dateFrom.Value.ToString(); confirmationModel.BookingTime = BookingData.Booking_Time.Value; confirmationModel.hotel.CheckOut = SearchData.dateTo.Value.ToString(); confirmationModel.hotel.Paxes = BookingData.Pax_Qty.Value; confirmationModel.hotel.Rooms = BookingData.Rooms_Qty.Value; var PConfirm = BookingDB.BookingConfirmationDatas.FirstOrDefault(a => a.SessionID == sid && a.BookingNum == BN); if (PConfirm != null) { confirmationModel.ProviderConfirmation = PConfirm.Reference; } confirmationModel.hotel.sellCurrency = BookingData.Sell_Currency; confirmationModel.hotel.TotalSellPrice = BookingData.Sell_Price.Value; confirmationModel.bookingNum = BookingData.Booking_No; confirmationModel.mail = BookingData.Booking_Email; confirmationModel.status = BookingData.Booking_Status; CurrencyRepo repo = new CurrencyRepo(); double ExcahngeRate = repo.GetEveryDayCurrenciesConversion(SearchData.currency, BookingData.Sell_Currency, sid, DateTime.Now).Result.Customer_Sell_Rate; foreach (var item in Paxes) { ConfirmedTraveller traveller = new ConfirmedTraveller(); traveller.FirstName = item.First_name; traveller.LastName = item.Last_Name; traveller.Title = item.Salutations; var roomResult = SelectedRooms.FirstOrDefault(x => x.RoomCode == item.RoomRef.ToString()); searchRoomResults.Add(roomResult); var specRoom1 = SelectedRooms.FirstOrDefault(s => s.RoomCode == item.RoomRef.ToString()); if (specRoom1.Childern != 0) { var specRoom = SelectedRooms.FirstOrDefault(s => s.RoomCode == item.RoomRef.ToString()); var childern = RoomData.Where(a => a.adultNo == specRoom.Adults && a.childernNo == specRoom.Childern).ToList(); if (childern.Count == 1) { var childages = childern[0].childAge.Split('-'); traveller.ChildAge.AddRange(childages.ToList()); } else { var child = RoomData.FirstOrDefault(a => a.adultNo == specRoom.Adults && a.childernNo == specRoom.Childern && a.roomNo == item.RoomRef); var childages = child.childAge.Split('-'); traveller.ChildAge.AddRange(childages.ToList()); } } confirmationModel.travellers.Add(traveller); } foreach (var item in searchRoomResults) { ConfirmedRoom confirmedRoom = new ConfirmedRoom(); if (BookingData.Provider_ID == "5") { var roomNo = int.Parse(item.RoomCode); confirmedRoom.Adult = RoomData.FirstOrDefault(ad => ad.roomNo == roomNo).adultNo ?? default(int); confirmedRoom.Child = RoomData.FirstOrDefault(ad => ad.roomNo == roomNo).childernNo ?? default(int); } else { confirmedRoom.Adult = item.Adults.Value; confirmedRoom.Child = item.Childern.Value; } //var RoomsImage = hotelsImage.Where(a => a.Category.ToLower() == "hotel rooms").ToList(); //*************** //if (RoomsImage.Count > 0) //{ //confirmedRoom.Image = RoomsImage[0].URL; //} confirmedRoom.IsRefundable = item.IsRefundable.Value; confirmedRoom.Paxs = item.PaxSQty.Value; confirmedRoom.RoomCode = item.RoomCode; confirmedRoom.RoomMeal = item.meal; confirmedRoom.RoomType = item.RoomName; confirmedRoom.RateType = item.rateType; List <CancelPolicy> cancelPolicies = new List <CancelPolicy>(); using (HotelBookingDBEntities db = new HotelBookingDBEntities()) { cancelPolicies = db.CancelPolicies.Where(a => a.Sid == sid && a.HotelCode == BookingData.Hotel_ID && a.RoomCode.ToString() == item.RoomCode && a.ProviderID == BookingData.Provider_ID).ToList(); } if (cancelPolicies.Count > 0) { foreach (var p in cancelPolicies) { CancellationRule cancellation = new CancellationRule(); cancellation.FromDate = p.FromDate.ToString(); if (BookingData.Sell_Currency == p.Currency) { cancellation.Price = (double)p.SellPrice.Value; } else { cancellation.Price = (double)p.SellPrice.Value * ExcahngeRate; } cancellation.CanellationRuleText = cancellation.Price + " " + BookingData.Sell_Currency + " From " + p.FromDate.Value.ToString("MMMM dd, yyyy"); confirmedRoom.cancellations.Add(cancellation); } } confirmationModel.rooms.Add(confirmedRoom); } var ConfData = HBDB.BookingConfirmations.FirstOrDefault(a => a.BookingNum == BN); if (ConfData != null) { confirmationModel.PayableNote = "Payable through " + ConfData.supplier + ", acting as agent for the service operating company, details of which can be provided upon request. VAT: " + ConfData.Remark + " Reference:" + ConfData.Reference; } return(confirmationModel); }catch (Exception ex) { LoggingHelper.WriteToFile("ConfirmationController/ERROR/", "ConfirmationDAL" + "INDAL" + sid, "ConfirmData", "Sid is " + sid + " and Booking is" + BN + ex.InnerException?.Message + ex.Message + ex.StackTrace); return(null); } }