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 ConfirmData() { hotelsBooking = new HotelsBooking(); Rooms = new List <RoomDTP>(); }