public HotelCancellationPolicyModel Get(HotelCancellationPolicyModel model, HotelSearchResultModel _resmodel) { HotelCore.Utility.HotelDetailSearchRows _rowsForDetail = new HotelCore.Utility.HotelDetailSearchRows(); _rowsForDetail.CheckInDate = _resmodel.CheckInDate; _rowsForDetail.CheckOutDate = _resmodel.CheckOutDate; _rowsForDetail.CityName = _resmodel.CityName; _rowsForDetail.CountryName = _resmodel.CountryName; _rowsForDetail._resultsRows = _resmodel.Result; //HotelCancellationPolicyModel _model = new HotelCancellationPolicyModel(); HotelMessageModel _msg = new HotelMessageModel(); HotelCore.API api = new HotelCore.API(); HotelCore.GetCancellationPolicy.Response _res = new HotelCore.GetCancellationPolicy.Response(); HotelCore.GetHotelDetails.RoomDescRequest _req = new HotelCore.GetHotelDetails.RoomDescRequest(); _req.SearchIndex = model.SearchIndex; _req.NoOfRooms = model.NoOfRoom; _req.RatePlanCode = model.RatePlanCode; _req.RoomTypeCode = model.RoomTypeCode; _req.SessionId = model.SessiobId; _req.HotelCode = model.HotelCode; _req.GDSID = _resmodel.GDSID; _res = api.RoomPolicy(_req, _rowsForDetail); _msg.ActionMessage = _res.Status.Description; _msg.MsgNumber = _res.Status.StatusNumber == 0 ? 1 : 1000;; _msg.MsgStatus = _res.Status.StatusNumber == 1 ? false : true; _msg.MsgType = _res.Status.StatusNumber == 0 ? 1 : 3; model.Message = _msg; model.CancellationPolicy = _res.CancellationPolicy; model.CancellationPolicyAvailable = _res.CancellationPolicyAvailable; model.HotelNorms = _res.HotelNorms; model.HotelNormsAvailable = _res.HotelNormsAvailable; 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); }
public HotelBookingDetailModel GetHotelBooking(long?BookingRecordId) { HotelCore.GetHotelBooking.Response _res = new HotelCore.GetHotelBooking.Response(); HotelCore.GetHotelBooking.Request _req = new HotelCore.GetHotelBooking.Request(); HotelBookingDetailModel model = new HotelBookingDetailModel(); TravelPortalEntity.EntityModel _ent = new TravelPortalEntity.EntityModel(); HotelMessageModel _msg = new HotelMessageModel(); if (BookingRecordId != null) { var obj = _ent.Htl_BookingRecord.Where(x => x.BookingRecordId == BookingRecordId).FirstOrDefault(); if (obj != null) { _req.BookingId = obj.GDSBookingId; HotelCore.API _api = new HotelCore.API(); //_res = _api.GetHotelBooking(_req); var _bookingDtl = _ent.Htl_BookingRecord.Where(x => x.BookingRecordId == BookingRecordId).FirstOrDefault(); Administrator.Models.AgentModel _agent = new Administrator.Models.AgentModel { AgentName = _bookingDtl.Agents.AgentName, Address = _bookingDtl.Agents.Address, PhoneNo = _bookingDtl.Agents.Phone, AgentId = _bookingDtl.AgentId }; model.CheckInDate = _bookingDtl.CheckInDate; model.CheckOutDate = _bookingDtl.CheckOutDate; model.CityName = _bookingDtl.CityName; model.CountryName = _bookingDtl.CountryName; model.CurrencyCode = _bookingDtl.CurrencyCode; model.Flightinfo = _bookingDtl.FlightInfo; model.HotelRating = _bookingDtl.HotelRating; model.HotelImageUrl = _bookingDtl.HotelImageUrl; model.TotalChargableAmount = _bookingDtl.TotalChargeableAmount; model.BookingId = _bookingDtl.GDSBookingId; model.ConfirmationNo = _bookingDtl.BookingConformationNo; model.ReferenceNo = _bookingDtl.BookingReferenceNo; model.AgentDetail = _agent; var _guests = _ent.Htl_BookingGuestDetail.Where(x => x.BookingRecordId == BookingRecordId); List <GuestDetailModel> _guestList = new List <GuestDetailModel>(); foreach (var item in _guests) { GuestDetailModel _guest = new GuestDetailModel(); _guest.Address1 = item.Address1; _guest.Address2 = item.Address2; _guest.Age = item.Age; _guest.City = item.City; _guest.Country = item.Country; _guest.Email = item.Email; _guest.Title = item.Title; _guest.FirstName = item.FirstName; _guest.GuestState = item.GuestState; _guest.GuestType = item.GuestType; _guest.IsLeadGuest = item.IsLeadGuest; _guest.LastName = item.LastName; _guest.MiddleName = item.MiddleName; _guest.PhoneNo = item.PhoneNo; _guest.RoomIndex = item.RoomIndex; _guest.Title = item.Title; _guest.ZipCoade = item.ZipCoade; _guestList.Add(_guest); } List <HotelCore.Utility.RoomGuestData> _roomGuestList = new List <HotelCore.Utility.RoomGuestData>(); List <int> _childAge = new List <int>(); var _roomDtl = _ent.Htl_BookingRoomDetail.Where(x => x.BookingRecordId == BookingRecordId); foreach (var item in _roomDtl) { HotelCore.Utility.RoomGuestData _roomGuest = new HotelCore.Utility.RoomGuestData(); _roomGuest.NoOfAdults = item.NoOfAdult; _roomGuest.NoOfChild = item.NoOfChild; _roomGuest.RoomTypeName = item.RoomTypeName; _roomGuestList.Add(_roomGuest); } var _roomType = _ent.Htl_BookingRoomDetail.Where(x => x.BookingRecordId == BookingRecordId); List <HotelCore.Utility.HotelRoomsDetails> RoomList = new List <HotelCore.Utility.HotelRoomsDetails>(); var bookingRoomCode = ""; foreach (var item in _roomType) { HotelCore.Utility.HotelRoomsDetails room = new HotelCore.Utility.HotelRoomsDetails(); room.RoomTypeName = item.RoomTypeName; room.NoOfUnits = 1; bookingRoomCode = item.BookingRoomCode; var _nightRate = _ent.Htl_BookingNightRate.Where(x => x.BookingRoomCodeId == item.BookingRoomCodeId); List <HotelCore.Utility.DayRates> _dayRates = new List <HotelCore.Utility.DayRates>(); foreach (var item1 in _nightRate) { HotelCore.Utility.DayRates _dayRate = new HotelCore.Utility.DayRates(); _dayRate.Days = item1.BookingDate; _dayRate.LowRate = item1.BookingRate; _dayRates.Add(_dayRate); } room.DayRates = _dayRates.ToArray(); var _roomRate = _ent.Htl_BookingRoomRate.Where(x => x.BookingRoomCodeId == item.BookingRoomCodeId); List <HotelCore.Utility.RoomRate> _roomRateList = new List <HotelCore.Utility.RoomRate>(); HotelCore.Utility.RoomRate RoomRate = new HotelCore.Utility.RoomRate(); RoomRate.TotalRoomRate = _roomRate.Where(x => x.Particular == "Total-Rate").FirstOrDefault().Amount; RoomRate.ExtraGuestCharges = _roomRate.Where(x => x.Particular == "Extra-Guest-Charge").FirstOrDefault().Amount; RoomRate.TotalRoomTax = _roomRate.Where(x => x.Particular == "Tax").FirstOrDefault().Amount; RoomRate.ServiceTax = _roomRate.Where(x => x.Particular == "Service-Tax").FirstOrDefault().Amount; RoomRate.DisCount = _roomRate.Where(x => x.Particular == "Discount").FirstOrDefault().Amount; RoomRate.TotalTaxesAndFees = RoomRate.TotalRoomTax + RoomRate.ServiceTax; //RoomRate.AgentServiceCharge = _roomRate.Where(x => x.Particular == "Agent-Service-Charge").FirstOrDefault().Amount; RoomRate.CommissionExtraGuestCharge = _roomRate.Where(x => x.Particular == "Commission-Extra-Guest-Charge").FirstOrDefault().Amount; RoomRate.CommissionRatePerRoom = _roomRate.Where(x => x.Particular == "Commission-Rate-Per-Room").FirstOrDefault().Amount; RoomRate.DiscountExtraGuestCharge = _roomRate.Where(x => x.Particular == "Discount-Extra-Guest-Charge").FirstOrDefault().Amount; RoomRate.DiscountRatePerRoom = _roomRate.Where(x => x.Particular == "Discount-Rate-Per-Room").FirstOrDefault().Amount; RoomRate.MarkupExtraGuestCharge = _roomRate.Where(x => x.Particular == "Markup-Extra-Guest-Charge").FirstOrDefault().Amount; RoomRate.MarkupRatePerRoom = _roomRate.Where(x => x.Particular == "Markup-Rate-Per-Room").FirstOrDefault().Amount; room.RoomRate = RoomRate; RoomList.Add(room); } model.RoomDetail = RoomList.ToArray(); model.RoomGuest = _roomGuestList.ToArray(); model.Guests = _guestList.ToArray(); model.HotelAddress = _bookingDtl.HotelAddress; model.HotelEmail = _bookingDtl.HotelEmail; model.HotelName = _bookingDtl.HotelName; model.HotelPhoneNo = _bookingDtl.HotelPhone; model.NoOfRooms = _bookingDtl.NoOfRoom; model.SpecialRequest = _bookingDtl.SpecialRequest; model.BookingDetail = _res.BookingDetail; _msg.ActionMessage = "Success."; _msg.MsgNumber = 1; _msg.MsgStatus = false; _msg.MsgType = 0; model.Message = _msg; } else { _msg.ActionMessage = "Invalid Operation."; _msg.MsgNumber = 1000; _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); }
public HotelBookingCancelModel GetCancelRequestStatus(long?id) { HotelCore.GetHotelChangeRequestStatus.Response _res = new HotelCore.GetHotelChangeRequestStatus.Response(); HotelCore.GetHotelChangeRequestStatus.Request _req = new HotelCore.GetHotelChangeRequestStatus.Request(); HotelBookingCancelModel model = new HotelBookingCancelModel(); HotelMessageModel _msg = new HotelMessageModel(); TravelPortalEntity.EntityModel _ent = new TravelPortalEntity.EntityModel(); if (id != null) { var obj = _ent.Htl_BookingCancelDetail.Where(x => x.BookingCancelId == id).FirstOrDefault(); if (obj != null) { using (System.Transactions.TransactionScope ts = new System.Transactions.TransactionScope(System.Transactions.TransactionScopeOption.Required)) { HotelCore.API _api = new HotelCore.API(); _req.ChangeRequestId = Convert.ToInt32(obj.CancellationReqId); _res = _api.GetHotelChangeRequestStatus(_req); obj.CancellationCharge = _res.CancellationCharge; obj.CancellationStatus = _res.ChangeRequestStatus.ToString(); obj.RefundableAmount = _res.RefundedAmount; _ent.ApplyCurrentValues(obj.EntityKey.EntitySetName, obj); _ent.SaveChanges(); if (_res.ChangeRequestStatus.ToString() == "Processed") { var obj1 = _ent.Htl_BookingRecord.Where(x => x.BookingRecordId == obj.BookingRecordId).FirstOrDefault(); obj1.IsCanceled = true; _ent.ApplyCurrentValues(obj1.EntityKey.EntitySetName, obj1); _ent.SaveChanges(); } ts.Complete(); } if (_res.ChangeRequestStatus.ToString() == "Processed") { _msg.ActionMessage = "Cancellation Success."; _msg.MsgNumber = 1; _msg.MsgStatus = true; _msg.MsgType = 0; model.Message = _msg; } else { _msg.ActionMessage = "Cancellation is " + _res.ChangeRequestStatus.ToString(); _msg.MsgNumber = 1000; _msg.MsgStatus = true; _msg.MsgType = 2; model.Message = _msg; } HotelBookDetailRepository _dtlRep = new HotelBookDetailRepository(); var obj3 = _ent.Htl_BookingCancelDetail.Where(x => x.BookingCancelId == id).FirstOrDefault(); model.CancellationCharge = obj3.CancellationCharge == null ? 0 : obj3.CancellationCharge.Value; model.RefundableAmount = obj3.RefundableAmount; model.CancelStatus = obj3.CancellationStatus; var BookingRecordId = _ent.Htl_BookingCancelDetail.Where(x => x.BookingCancelId == id).Select(x => x.BookingRecordId).SingleOrDefault();// model.BookingDetail = _dtlRep.GetHotelBooking(BookingRecordId); model.CreatedOn = obj3.CreatedDate; model.Remark = obj3.Remark; model.IsProcessed = obj3.IsProcessed == null ? false : obj3.IsProcessed.Value; } else { _msg.ActionMessage = "Invalid operation."; _msg.MsgNumber = 1000; _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); }
public HotelBookingCancelModel Cancel(HotelBookingCancelModel model) { HotelCore.SendHotelChangeRequest.Response _res = new HotelCore.SendHotelChangeRequest.Response(); HotelCore.SendHotelChangeRequest.Request _req = new HotelCore.SendHotelChangeRequest.Request(); TravelPortalEntity.EntityModel _ent = new TravelPortalEntity.EntityModel(); HotelMessageModel _msg = new HotelMessageModel(); var obj = _ent.Htl_BookingRecord.Where(x => x.BookingRecordId == model.BookingRecordId).FirstOrDefault(); //checked null model.BookingRecordId var _cancelObj = _ent.Htl_BookingCancelDetail.Where(x => x.BookingRecordId == model.BookingRecordId).FirstOrDefault(); if (_cancelObj == null) { TravelPortalEntity.Htl_BookingCancelDetail _objCancel = new TravelPortalEntity.Htl_BookingCancelDetail { BookingRecordId = model.BookingRecordId, GDSBookingID = obj.GDSBookingId, GDSID = obj.GDSID, GDSSessionID = obj.SearchSessionId, CreatedBy = LoggedUserId, CreatedDate = CurrentDateTime, Remark = model.Remark }; _ent.AddToHtl_BookingCancelDetail(_objCancel); _ent.SaveChanges(); model.BookingCancelId = _objCancel.BookingCancelId; } else { var _cancel1 = _ent.Htl_BookingCancelDetail.Where(x => x.BookingRecordId == model.BookingRecordId).FirstOrDefault(); model.BookingCancelId = _cancel1.BookingCancelId; _cancel1.ModifiedBy = LoggedUserId; _cancel1.ModifiedDate = CurrentDateTime; _ent.ApplyCurrentValues(_cancel1.EntityKey.EntitySetName, _cancel1); _ent.SaveChanges(); } _req.BookingId = obj.GDSBookingId; _req.GDSID = obj.GDSID; _req.ConfirmationNo = obj.BookingReferenceNo; _req.Remarks = model.Remark; _req.Email = obj.RegEmail; _req.SessionId = obj.SearchSessionId; HotelCore.API _api = new HotelCore.API(); _res = _api.SendCancelRequest(_req); _res.ChangeRequestId = _res.ChangeRequestId == null ? "-1" : _res.ChangeRequestId; if (_res.IsCancilRequest == true) { using (System.Transactions.TransactionScope ts = new System.Transactions.TransactionScope(System.Transactions.TransactionScopeOption.Required)) { TravelPortalEntity.EntityModel _ent1 = new TravelPortalEntity.EntityModel(); var _cancel = _ent1.Htl_BookingCancelDetail.Where(x => x.BookingCancelId == model.BookingCancelId).FirstOrDefault(); _cancel.CancellationReqId = _res.ChangeRequestId; _cancel.GDSSessionID = obj.SearchSessionId; _cancel.CancellationStatus = _res.ChangeRequestStatus.ToString(); _cancel.IsCancilRequest = _res.IsCancilRequest; _cancel.IsProcessed = _res.IsProcessed; _ent.ApplyCurrentValues(_cancel.EntityKey.EntitySetName, _cancel); _ent.SaveChanges(); if (_res.ChangeRequestStatus.ToString() == "Processed") { var _record = _ent.Htl_BookingRecord.Where(x => x.BookingRecordId == model.BookingRecordId).FirstOrDefault(); _record.IsCanceled = true; _ent.ApplyCurrentValues(_record.EntityKey.EntitySetName, _record); _ent.SaveChanges(); } if (_res.ChangeRequestId != null) { if (_res.ChangeRequestId != "") { if (_res.IsProcessed == true) { _ent.Htl_CancelSalesTransaction(UserTerminalId, model.BookingRecordId, LoggedAgentId, LoggedUserId); } } } ts.Complete(); } model.CancelRequestId = _res.ChangeRequestId; HotelBookDetailRepository _dtlRep = new HotelBookDetailRepository(); model.BookingDetail = _dtlRep.GetHotelBooking(model.BookingRecordId); model.CreatedOn = CurrentDateTime; if (_res.IsProcessed == true) { _msg.ActionMessage = "Cancel Success"; _msg.MsgNumber = 1; _msg.MsgStatus = true; _msg.MsgType = 0; model.Message = _msg; } else if (_res.IsCancilRequest == true) { _msg.ActionMessage = "Cancelllation is in process"; _msg.MsgNumber = 1000; _msg.MsgStatus = true; _msg.MsgType = 2; model.Message = _msg; } } else { _msg.ActionMessage = "Cancelllation Can not success."; _msg.MsgNumber = 1000; _msg.MsgStatus = true; _msg.MsgType = 2; model.Message = _msg; } model.Message = _msg; return(model); }