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>());
            }
        }
Example #6
0
        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);
            }
        }
Example #7
0
        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);
        }
Example #8
0
        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();
        }
Example #11
0
        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();
            }
        }
Example #13
0
        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;
     }
 }
Example #15
0
 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>());
     }
 }
Example #16
0
        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;
            }
        }
Example #20
0
        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);
            }
        }
Example #22
0
        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);
            }
        }
Example #23
0
        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);
     }
 }
Example #25
0
        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;
            }
        }
Example #29
0
        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);
            }
        }
Example #30
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);
            }
        }