public HotelBookingProcessModel GetDetail(long?id)
        {
            HotelBookingProcessModel _model = new HotelBookingProcessModel();
            HotelMessageModel        _msg   = new HotelMessageModel();

            if (id != null)
            {
                HotelItinearyModel        _itinModel       = new HotelItinearyModel();
                HotelBookRepository       _bookRep         = new HotelBookRepository();
                HotelBookDetailRepository _bookingDtlRep   = new HotelBookDetailRepository();
                HotelBookingDetailModel   _bookingDtlModel = new HotelBookingDetailModel();
                _bookingDtlModel       = _bookingDtlRep.GetHotelBooking(id);
                _model.BookingDetail   = _bookingDtlModel;
                _model.BookingRecordId = id.Value;
                _itinModel             = _bookRep.GetItineary(id);
                _model.Itineary        = _itinModel.Itineary;
                _model.Message         = _bookingDtlModel.Message;
            }
            else
            {
                _msg.ActionMessage = "Invalid Operation.";
                _msg.MsgNumber     = 1000;
                _msg.MsgStatus     = true;
                _msg.MsgType       = 2;
                _model.Message     = _msg;
            }

            return(_model);
        }
Ejemplo n.º 2
0
        public HotelItinearyModel Itineary(long?id)
        {
            HotelItinearyModel  _model   = new HotelItinearyModel();
            HotelBookRepository _bookRep = new HotelBookRepository();

            _model = _bookRep.GetItineary(id);
            if (_model.Message.MsgNumber == 1)
            {
                _model.BookingRecordId = id.Value;
            }
            return(_model);
        }
Ejemplo n.º 3
0
        public HotelItinearyModel CancelEmailFormat(long?id)
        {
            HotelItinearyModel _model = new HotelItinearyModel();
            HotelMessageModel  _msg   = new HotelMessageModel();

            if (id != null)
            {
                TravelPortalEntity.EntityModel _ent = new TravelPortalEntity.EntityModel();
                var obj = _ent.Htl_BookingCancelDetail.Where(x => x.BookingCancelId == id).FirstOrDefault();
                if (obj != null)
                {
                    HotelBookRepository _bookRep = new HotelBookRepository();
                    _model = _bookRep.GetItineary(obj.BookingRecordId);
                    _model.BookingRecordId = id.Value;
                    _msg.ActionMessage     = "Success.";
                    _msg.MsgNumber         = 1;
                    _msg.MsgStatus         = false;
                    _msg.MsgType           = 1;
                }
                else
                {
                    _msg.ActionMessage = "Invalid Operation.";
                    _msg.MsgNumber     = 1000;
                    _msg.MsgStatus     = true;
                    _msg.MsgType       = 2;
                }
            }
            else
            {
                _msg.ActionMessage = "Invalid Operation.";
                _msg.MsgNumber     = 1000;
                _msg.MsgStatus     = true;
                _msg.MsgType       = 2;
            }
            _model.Message = _msg;
            return(_model);
        }
        public HotelBookingProcessModel ProcessPendingBooking(long?id)
        {
            TravelPortalEntity.EntityModel _ent = new TravelPortalEntity.EntityModel();
            int    BaseCurrencyId    = 0;
            int    CurrencyCodeId    = 0;
            string BaseCurrencyCode  = System.Configuration.ConfigurationManager.AppSettings["HotelBaseCurrencyCode"];
            string CurrencyCode      = System.Configuration.ConfigurationManager.AppSettings["HotelCurrencyCode"];
            var    _BaseCurrencyCode = _ent.Currencies.Where(x => x.CurrencyCode.Trim() == BaseCurrencyCode).FirstOrDefault();

            if (_BaseCurrencyCode != null)
            {
                BaseCurrencyId = _BaseCurrencyCode.CurrencyId == null ? 0 : _BaseCurrencyCode.CurrencyId;
            }
            var _CurrencyCode = _ent.Currencies.Where(x => x.CurrencyCode.Trim() == CurrencyCode).FirstOrDefault();

            if (_CurrencyCode != null)
            {
                CurrencyCodeId = _CurrencyCode.CurrencyId == null ? 0 : _CurrencyCode.CurrencyId;
            }
            var     _ExchangeRate = _ent.Core_FXRate.Where(x => x.BaseCurrencyID == BaseCurrencyId && x.CurrencyID == CurrencyCodeId).OrderByDescending(x => x.CreatedDate).FirstOrDefault();
            decimal ExchangeRate  = 1;

            if (_ExchangeRate != null)
            {
                ExchangeRate = (decimal)(_ExchangeRate.ExchangeRate == null ? 1 : _ExchangeRate.ExchangeRate == 0 ? 1 : _ExchangeRate.ExchangeRate);
            }
            HotelItinearyModel       _itmodel = new HotelItinearyModel();
            HotelBookingProcessModel _model   = new HotelBookingProcessModel();
            HotelMessageModel        _msg     = new HotelMessageModel();

            HotelCore.GetHotelBooking.Request        _getBookingReq = new HotelCore.GetHotelBooking.Request();
            HotelCore.GetHotelBooking.Response       _getBookingRes = new HotelCore.GetHotelBooking.Response();
            HotelCore.AddHotelBookingDetail.Request  _addBookingReq = new HotelCore.AddHotelBookingDetail.Request();
            HotelCore.AddHotelBookingDetail.Response _addBookingRes = new HotelCore.AddHotelBookingDetail.Response();
            HotelCore.Book.Request _bookingReq = new HotelCore.Book.Request();
            HotelCore.API          api         = new HotelCore.API();
            if (id != null)
            {
                var obj = _ent.Htl_BookingRecord.FirstOrDefault(x => x.BookingRecordId == id && x.IsProcessed == false);
                if (obj != null)
                {
                    if (obj.BookingStatusCode.Trim() == "Pending")
                    {
                        _getBookingReq.BookingId = obj.GDSBookingId;
                        _getBookingRes           = api.GetHotelBooking(_getBookingReq);
                        if (_getBookingRes.Status.StatusNumber == 0)
                        {
                            if (_getBookingRes.BookingDetail != null)
                            {
                                var _bookRecObj = _ent.Htl_BookingRecord.Where(x => x.BookingRecordId == id).FirstOrDefault();
                                _bookRecObj.BookingStatusCode     = _getBookingRes.BookingDetail[0].BookingStatus.ToString();
                                _bookRecObj.BookingReferenceNo    = _getBookingRes.BookingDetail[0].BookingRefNo;
                                _bookRecObj.BookingConformationNo = _getBookingRes.BookingDetail[0].ConfirmationNo;
                                _bookRecObj.LastCancilationDate   = _getBookingRes.BookingDetail[0].LastCancellationDate;
                                _bookRecObj.BookingStatusCode     = _getBookingRes.BookingDetail[0].BookingStatus.ToString();
                                _bookRecObj.IsGetBookingDetail    = true;
                                _ent.ApplyCurrentValues(obj.EntityKey.EntitySetName, _bookRecObj);
                                _ent.SaveChanges();
                                var _bookingRecord = _ent.Htl_BookingRecord.Where(x => x.BookingRecordId == id).FirstOrDefault();
                                _bookingReq.SessionId   = _bookingRecord.SearchSessionId;
                                _bookingReq.Index       = _bookingRecord.SearchIndex;
                                _bookingReq.CountryName = _bookingRecord.CountryName;
                                HotelCore.Utility.PaymentInformation pinfo = new HotelCore.Utility.PaymentInformation();
                                pinfo.Amount            = _bookingRecord.TotalChargeableAmount;
                                _bookingReq.PaymentInfo = pinfo;
                                List <HotelCore.Utility.Guest> Guest = new List <HotelCore.Utility.Guest>();
                                var _guest = _ent.Htl_BookingGuestDetail.Where(x => x.BookingRecordId == id);
                                if (_guest != null)
                                {
                                    if (_guest.Count() > 0)
                                    {
                                        foreach (var item in _guest)
                                        {
                                            HotelCore.Utility.Guest gu = new HotelCore.Utility.Guest();
                                            gu.Age          = item.Age;
                                            gu.Addressline1 = item.Address1;
                                            gu.Addressline2 = item.Address2;
                                            gu.Areacode     = item.AreaPhCode;
                                            gu.City         = item.City;
                                            gu.Country      = item.Country;
                                            gu.Countrycode  = item.CountryPhCode;
                                            gu.Email        = item.Email;
                                            gu.FirstName    = item.FirstName;
                                            gu.GuestType    = item.GuestType.Trim() == "Child" ? HotelCore.Utility.HotelGuestType.Child : HotelCore.Utility.HotelGuestType.Adult;
                                            gu.LastName     = item.LastName;
                                            gu.LeadGuest    = item.IsLeadGuest;
                                            gu.MiddleName   = item.MiddleName;
                                            gu.Phoneno      = item.PhoneNo;
                                            gu.RoomIndex    = item.RoomIndex;
                                            gu.State        = item.GuestState;
                                            gu.Title        = item.Title;
                                            gu.Zipcode      = item.ZipCoade;
                                            Guest.Add(gu);
                                        }
                                    }
                                }
                                _bookingReq.Guest               = Guest.ToArray();
                                _bookingReq.CreatedOn           = CurrentDateTime;
                                _bookingReq.DisplayExchangeRate = ExchangeRate;
                                if (_getBookingRes.BookingDetail[0].BookingStatus.ToString() == "Confirmed")
                                {
                                    _addBookingReq = api.FillAddBookingRequest(1, _getBookingRes, _bookingReq);
                                    _addBookingRes = api.AddHotelBookingDetail(_addBookingReq);
                                    if (_addBookingRes.Status.StatusNumber == 0)
                                    {
                                        var _bookRecObj1 = _ent.Htl_BookingRecord.Where(x => x.BookingRecordId == id).FirstOrDefault();
                                        _bookRecObj.AddBookingRefId = _addBookingRes.ReferenceId;
                                        _bookRecObj.IsBookingAdded  = true;
                                        _ent.ApplyCurrentValues(obj.EntityKey.EntitySetName, _bookRecObj1);
                                        _ent.SaveChanges();
                                    }
                                }
                            }
                        }
                    }
                    else if ((obj.IsProcessed == false && obj.IsGetBookingDetail == false && obj.BookingStatusCode.Trim() == "Confirmed") || (obj.IsBookingAdded == false))
                    {
                        _getBookingReq.BookingId = obj.GDSBookingId;
                        _getBookingRes           = api.GetHotelBooking(_getBookingReq);
                        if (_getBookingRes.Status.StatusNumber == 0)
                        {
                            if (_getBookingRes.BookingDetail != null)
                            {
                                var _bookRecObj = _ent.Htl_BookingRecord.Where(x => x.BookingRecordId == id).FirstOrDefault();
                                _bookRecObj.BookingStatusCode     = _getBookingRes.BookingDetail[0].BookingStatus.ToString();
                                _bookRecObj.BookingReferenceNo    = _getBookingRes.BookingDetail[0].BookingRefNo;
                                _bookRecObj.BookingConformationNo = _getBookingRes.BookingDetail[0].ConfirmationNo;
                                _bookRecObj.LastCancilationDate   = _getBookingRes.BookingDetail[0].LastCancellationDate;
                                _bookRecObj.IsGetBookingDetail    = true;
                                _ent.ApplyCurrentValues(obj.EntityKey.EntitySetName, _bookRecObj);
                                _ent.SaveChanges();
                                var _bookingRecord = _ent.Htl_BookingRecord.Where(x => x.BookingRecordId == id).FirstOrDefault();
                                _bookingReq.SessionId   = _bookingRecord.SearchSessionId;
                                _bookingReq.Index       = _bookingRecord.SearchIndex;
                                _bookingReq.CountryName = _bookingRecord.CountryName;
                                HotelCore.Utility.PaymentInformation pinfo = new HotelCore.Utility.PaymentInformation();
                                pinfo.Amount            = _bookingRecord.TotalChargeableAmount;
                                _bookingReq.PaymentInfo = pinfo;
                                List <HotelCore.Utility.Guest> Guest = new List <HotelCore.Utility.Guest>();
                                var _guest = _ent.Htl_BookingGuestDetail.Where(x => x.BookingRecordId == id);
                                if (_guest != null)
                                {
                                    if (_guest.Count() > 0)
                                    {
                                        foreach (var item in _guest)
                                        {
                                            HotelCore.Utility.Guest gu = new HotelCore.Utility.Guest();
                                            gu.Age          = item.Age;
                                            gu.Addressline1 = item.Address1;
                                            gu.Addressline2 = item.Address2;
                                            gu.Areacode     = item.AreaPhCode;
                                            gu.City         = item.City;
                                            gu.Country      = item.Country;
                                            gu.Countrycode  = item.CountryPhCode;
                                            gu.Email        = item.Email;
                                            gu.FirstName    = item.FirstName;
                                            gu.GuestType    = item.GuestType.Trim() == "Child" ? HotelCore.Utility.HotelGuestType.Child : HotelCore.Utility.HotelGuestType.Adult;
                                            gu.LastName     = item.LastName;
                                            gu.LeadGuest    = item.IsLeadGuest;
                                            gu.MiddleName   = item.MiddleName;
                                            gu.Phoneno      = item.PhoneNo;
                                            gu.RoomIndex    = item.RoomIndex;
                                            gu.State        = item.GuestState;
                                            gu.Title        = item.Title;
                                            gu.Zipcode      = item.ZipCoade;
                                            Guest.Add(gu);
                                        }
                                    }
                                }
                                _bookingReq.Guest               = Guest.ToArray();
                                _bookingReq.CreatedOn           = CurrentDateTime;
                                _bookingReq.DisplayExchangeRate = ExchangeRate;
                                _addBookingReq = api.FillAddBookingRequest(1, _getBookingRes, _bookingReq);
                                _addBookingRes = api.AddHotelBookingDetail(_addBookingReq);
                                if (_addBookingRes.Status.StatusNumber == 0)
                                {
                                    var _bookRecObj1 = _ent.Htl_BookingRecord.Where(x => x.BookingRecordId == id).FirstOrDefault();
                                    _bookRecObj1.AddBookingRefId = _addBookingRes.ReferenceId;
                                    _bookRecObj1.IsBookingAdded  = true;
                                    _ent.ApplyCurrentValues(_bookRecObj1.EntityKey.EntitySetName, _bookRecObj1);
                                    _ent.SaveChanges();
                                }
                            }
                        }
                    }
                    else if (obj.IsVouchered == false)
                    {
                        _getBookingReq.BookingId = obj.GDSBookingId;
                        _getBookingRes           = api.GetHotelBooking(_getBookingReq);
                        var _bookRecObj1 = _ent.Htl_BookingRecord.Where(x => x.BookingRecordId == id).FirstOrDefault();
                        _bookRecObj1.IsVouchered = _getBookingRes.BookingDetail[0].VoucherStatus;
                        _bookRecObj1.IsProcessed = _getBookingRes.BookingDetail[0].VoucherStatus;
                        _ent.ApplyCurrentValues(_bookRecObj1.EntityKey.EntitySetName, _bookRecObj1);
                        _ent.SaveChanges();
                    }
                }
                var _bookRecObj2 = _ent.Htl_BookingRecord.Where(x => x.BookingRecordId == id).FirstOrDefault();
                if (_bookRecObj2.IsBookingSuccess == true && _bookRecObj2.IsBookingAdded == true && _bookRecObj2.BookingStatusCode == "Confirmed")
                {
                    _bookRecObj2.IsProcessed = true;
                    _ent.ApplyCurrentValues(_bookRecObj2.EntityKey.EntitySetName, _bookRecObj2);
                    _ent.SaveChanges();
                }
                HotelItinearyModel        _itinModel     = new HotelItinearyModel();
                HotelBookRepository       _bookRep       = new HotelBookRepository();
                HotelBookDetailRepository _bookingDtlRep = new HotelBookDetailRepository();
                _model.BookingDetail = _bookingDtlRep.GetHotelBooking(id);
                _itinModel           = _bookRep.GetItineary(id);
                _model.Itineary      = _itinModel.Itineary;
                if (_itinModel.Itineary.BookingStatusDesc == "Confirmed" || _itinModel.Itineary.IsProcessed == true)
                {
                    _msg.ActionMessage = "Booking Success";
                    _msg.MsgNumber     = 1;
                    _msg.MsgStatus     = true;
                    _msg.MsgType       = 0;
                    _model.Message     = _msg;
                }
                else
                {
                    _msg.ActionMessage = "Booking can not complete try again.";
                    _msg.MsgNumber     = 1001;
                    _msg.MsgStatus     = true;
                    _msg.MsgType       = 2;
                    _model.Message     = _msg;
                }
            }
            else
            {
                _msg.ActionMessage = "Invalid Operation.";
                _msg.MsgNumber     = 1000;
                _msg.MsgStatus     = true;
                _msg.MsgType       = 2;
                _model.Message     = _msg;
            }

            return(_model);
        }