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);
            }
        }
예제 #2
0
        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);
            }
        }
예제 #3
0
        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);
            }
        }
예제 #4
0
        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);
            }
        }
예제 #5
0
        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);
            }
        }
예제 #6
0
        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);
            }
        }