public static void MapRequestToDB(HBSearchData value, string SessionID) { try { HotelBedEntity db = new HotelBedEntity(); SearchRequest search = new SearchRequest(); search.SessionId = SessionID; search.Req = Newtonsoft.Json.JsonConvert.SerializeObject(value); db.SearchRequests.Add(search); db.SaveChanges(); } catch (Exception ex) { var requestData = JsonConvert.SerializeObject(ex); LoggingHelper.WriteToFile("HBLogs/SearchException", "SearchException_" + SessionID, "SearchException", requestData); } }
public static void MapRequestToDB(AvailabilityReq value, string SessionID) { try { HotelBedEntity db = new HotelBedEntity(); foreach (var item in value.rooms) { AvailabilityRequest request = new AvailabilityRequest(); request.SessionID = SessionID; request.rate = item.rateKey; db.AvailabilityRequests.Add(request); } db.SaveChanges(); } catch (Exception ex) { var requestData = JsonConvert.SerializeObject(ex); LoggingHelper.WriteToFile("HBLogs/AvailabilityException", "AvailabilityException_" + SessionID, "AvailabilityException", requestData); } }
public static void MapRequestToDB(BookingReq value, string SessionID, string BN) { try { HotelBedEntity db = new HotelBedEntity(); foreach (var item in value.rooms) { BookingRequest booking = new BookingRequest(); booking.ClientReference = value.clientReference; booking.HolderName = value.holder.name; booking.SurName = value.holder.surname; booking.session = SessionID; booking.BookingNum = BN; booking.Roomkey = item.rateKey; db.BookingRequests.Add(booking); db.SaveChanges(); foreach (var p in item.paxes) { RequestPAX requestPAX = new RequestPAX(); requestPAX.BookingID = booking.id; requestPAX.Name = p.name; requestPAX.RID = p.roomId; requestPAX.SurName = p.surname; requestPAX.Type = p.type; db.RequestPAXES.Add(requestPAX); } db.SaveChanges(); } } catch (Exception ex) { var requestData = JsonConvert.SerializeObject(ex); LoggingHelper.WriteToFile("HBLogs/BookingException", "BookingException_" + SessionID, "BookingException", requestData); } }
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); } }
public static void MapResponseToDB(BookingRes value, string SessionID, string BN) { try { HotelBedEntity db = new HotelBedEntity(); BookingConfirmation booking = new BookingConfirmation(); booking.cancellationPolicy = value.booking.modificationPolicies.cancellation.ToString(); booking.clientReference = value.booking.clientReference; booking.CreationData = value.booking.creationDate; booking.CreationUser = value.booking.creationUser; booking.Currency = value.booking.currency; booking.HolderName = value.booking.holder.name; booking.HolderSurName = value.booking.holder.surname; booking.invoiceCompany = value.booking.invoiceCompany.company; booking.invoiceCompanyCode = value.booking.invoiceCompany.code; booking.modificationPolicy = value.booking.modificationPolicies.modification.ToString(); booking.PendingAmount = value.booking.pendingAmount.ToString(); booking.Reference = value.booking.reference; booking.RegistrationNumber = value.booking.invoiceCompany.registrationNumber; booking.SessionID = SessionID; booking.Status = value.booking.status; booking.supplier = value.booking.hotel.supplier.name; booking.Remark = value.booking.hotel.supplier.vatNumber; booking.totalAmount = value.booking.totalNet.ToString(); booking.response = Newtonsoft.Json.JsonConvert.SerializeObject(value.booking); // var hotel = db.SearchHotelDatas.FirstOrDefault(a => a.SessionID == SessionID); booking.BookingNum = BN; db.BookingConfirmations.Add(booking); db.SaveChanges(); foreach (var item in value.booking.hotel.rooms) { foreach (var rate in item.rates) { BookingRoom searchRoom = new BookingRoom(); searchRoom.Adult = rate.adults; searchRoom.rateComments = rate.rateComments; searchRoom.boardCode = rate.boardCode; searchRoom.boardName = rate.boardName; searchRoom.Child = rate.children; searchRoom.hotelMandatory = rate.hotelMandatory.ToString(); searchRoom.Net = rate.net; searchRoom.packaging = rate.packaging.ToString(); searchRoom.paymentType = rate.paymentType; searchRoom.rateClass = rate.rateClass; searchRoom.rooms = rate.rooms; searchRoom.code = item.code; searchRoom.Name = item.name; searchRoom.rooms = rate.rooms; searchRoom.BookingID = booking.ID; searchRoom.SearchId = SessionID; searchRoom.sellingRate = rate.sellingRate; db.BookingRooms.Add(searchRoom); db.SaveChanges(); foreach (var P in item.paxes) { Pax pa = new Pax(); pa.Name = P.name; pa.RoomID = searchRoom.ID; pa.SurName = P.surname; pa.type = P.type; db.Paxes.Add(pa); } foreach (var policy in rate.cancellationPolicies) { PolicyBooking policyBooking = new PolicyBooking(); policyBooking.Amount = policy.amount; policyBooking.BookingRoomID = searchRoom.ID; policyBooking.FromDate = policy.from.ToString(); db.PolicyBookings.Add(policyBooking); } db.SaveChanges(); } } } catch (Exception ex) { var requestData = JsonConvert.SerializeObject(ex); LoggingHelper.WriteToFile("HBLogs/BookingException", "BookingException_" + SessionID, "BookingException", requestData); throw (ex); } }
public static void MapResponseToDB(AvailabilityRes value, string SessionID) { try { HotelBedEntity db = new HotelBedEntity(); AvailabilityResponse availability = new AvailabilityResponse(); availability.Currency = value?.hotel?.currency; availability.TotalPrice = value?.hotel?.totalNet; availability.response = Newtonsoft.Json.JsonConvert.SerializeObject(value?.hotel); availability.SearchID = SessionID; var hotel = db.SearchHotelDatas.FirstOrDefault(a => a.SessionID == SessionID); availability.SearchHotelID = hotel?.Id; db.AvailabilityResponses.Add(availability); //db.SaveChanges(); XX if (value?.hotel?.rooms != null) { foreach (var room in value?.hotel?.rooms) { foreach (var rate in room?.rates) { SearchRoom searchRoom = new SearchRoom(); searchRoom.adults = rate.adults; searchRoom.boardCode = rate.boardCode; searchRoom.boardName = rate.boardName; searchRoom.children = rate.children; searchRoom.childrenAges = rate.childrenAges; searchRoom.hotelMandatory = rate.hotelMandatory.ToString(); searchRoom.netPrice = rate.net; searchRoom.packaging = rate.packaging.ToString(); searchRoom.paymentType = rate.paymentType; searchRoom.rateClass = rate.rateClass; searchRoom.rateKey = rate.rateKey; searchRoom.rateType = rate.rateType; searchRoom.ResponseType = "availability"; searchRoom.RoomCode = room?.code; searchRoom.RoomName = room?.name; searchRoom.rooms = rate.rooms; searchRoom.SearchHotelID = availability.ID; searchRoom.sessionID = SessionID; searchRoom.sellingRate = rate.sellingRate; db.SearchRooms.Add(searchRoom); //db.SaveChanges(); XX foreach (var p in rate.cancellationPolicies) { RoomPolicy policy = new RoomPolicy(); policy.amount = p.amount; policy.fromDate = p.from.ToString();; policy.RoomID = searchRoom.Id; policy.CallingType = "check"; db.RoomPolicies.Add(policy); } //db.SaveChanges(); XX } } } //MG db.SaveChanges(); } catch (Exception ex) { var requestData = JsonConvert.SerializeObject(ex); LoggingHelper.WriteToFile("HBLogs/AvailabilityException", "AvailabilityException_" + SessionID, "AvailabilityException", requestData); } }