// [OutputCache(Duration = 10, VaryByParam = "*")] // Cached for 10 second public ActionResult Index(PropSearchRequestModel model) { try { eWebSiteSearchPage obj = new eWebSiteSearchPage(); obj.HotelFacilityItems = BL_WebSiteSearchPage.GetAllHotelFacilities(""); obj.RoomFacilityItems = BL_WebSiteSearchPage.GetAllRoomFacilities(""); model.sRequestType = model.sRequestType ?? "buy"; obj.sRequestType = model.sRequestType; string currencySymbol = string.Empty; var hotelList = GetHotelSearchData(model, out currencySymbol); obj.PropertySearchedList = hotelList; obj.TotalPropertySearchedList.AddRange(obj.PropertySearchedList); obj.sCurrencySymbol = currencySymbol; obj.dExchangeRate = 1; Session["PropSearchList"] = obj; if (CurrencyCode != "INR") { etblExchangeRatesM objExchange = BL_ExchangeRate.GetSingleRecordById("INR", CurrencyCode); if (objExchange.dRate.HasValue) { obj.dExchangeRate = objExchange.dRate.Value; } } TempData.Keep(); return(View(obj)); } catch (Exception ex) { throw ex; } }
public ActionResult BiddingInfo(string bidSearchData) { Decimal?ExchangeRate = 1; var obj = new eBiddingSearch(); ViewBag.HeaderBarData = "Congratulations! We have found hotels matching your bid"; if (Session[bidSearchData] != null) { // TempData.Keep(); obj = Session[bidSearchData] as eBiddingSearch; } obj.lstLocalities = BL_Bidding.GetAllLocalitiesName(obj.sLocalityData, obj.sLocalityType); DateTime checkin = DateTime.Parse(obj.sCheckIn); DateTime checkOut = DateTime.Parse(obj.sCheckOut); obj.sCheckInDay = String.Format("{0:dddd MMM d yyyy}", checkin); obj.sCheckOutDay = String.Format("{0:dddd MMM d yyyy}", checkOut); obj.iNights = Convert.ToInt32((checkOut - checkin).TotalDays); var data = GetRoomsCount(obj.sJsonRoomData); obj.iRooms = data.room; obj.iChildrens = data.child; obj.iAdults = data.adult; string CurrencyCode = Session["CurrencyCode"] != null ? Session["CurrencyCode"].ToString() : "INR"; if (CurrencyCode != "INR") { etblExchangeRatesM objExchange = BL_ExchangeRate.GetSingleRecordById("INR", CurrencyCode); if (objExchange.dRate != 0) { ExchangeRate = objExchange.dRate; } } obj.dTaxes = obj.Tax; //taxes provided are full n final. obj.dTotalPrice = obj.dBidPrice * obj.iRooms * obj.iNights; obj.dGrandTotal = obj.dTotalPrice + obj.dTaxes; return(View(obj)); }
public string Delete(string from, string to) { object result = null; string strReturn = string.Empty; try { int i = BL_ExchangeRate.DeleteRecord(from.Substring(0, 3), to.Substring(0, 3)); if (i == 1) { result = new { st = 1, msg = "Deleted successfully." }; } else { result = new { st = 0, msg = "Kindly try after some time." }; } } catch (Exception) { result = new { st = 0, msg = "Kindly try after some time." }; } strReturn = OneFineRateAppUtil.clsUtils.ConvertToJson(result); return(strReturn); }
public ActionResult Upload(FormCollection formCollection) { string msg = ""; if (Request != null) { try { var ERList = new List <ExchangeRate>(); int user = ((OneFineRateBLL.BL_Login.UserDetails)(Session["UserDetails"])).iUserId; HttpPostedFileBase file = Request.Files["UploadedFile"]; if ((file != null) && (file.ContentLength > 0) && !string.IsNullOrEmpty(file.FileName)) { string fileName = file.FileName; string fileContentType = file.ContentType; byte[] fileBytes = new byte[file.ContentLength]; var data = file.InputStream.Read(fileBytes, 0, Convert.ToInt32(file.ContentLength)); using (var package = new ExcelPackage(file.InputStream)) { var currentSheet = package.Workbook.Worksheets; var workSheet = currentSheet.First(); var noOfCol = workSheet.Dimension.End.Column; var noOfRow = workSheet.Dimension.End.Row; if (workSheet.Cells[1, 1].Value.ToString() == "From" && workSheet.Cells[1, 2].Value.ToString() == "To" && workSheet.Cells[1, 3].Value.ToString() == "Rate") { for (int rowIterator = 2; rowIterator <= noOfRow; rowIterator++) { var ER = new ExchangeRate(); ER.sCurrencyCodeFrom = workSheet.Cells[rowIterator, 1].Value.ToString(); ER.sCurrencyCodeTo = workSheet.Cells[rowIterator, 2].Value.ToString(); ER.dRate = Convert.ToDouble(workSheet.Cells[rowIterator, 3].Value.ToString()); ERList.Add(ER); } } else { msg = "Incorrect excel file!"; TempData["Data"] = msg; return(RedirectToAction("index", "Exchange")); } } } if (ERList.Count > 0) { int a = BL_ExchangeRate.UpdateRecord(ERList, user); if (a == 1) { msg = "Exchange rates uploaded successfully."; } else { msg = "Kindly try after some time."; } } else { msg = "No records provided"; } } catch (Exception) { msg = "Incorrect excel file!"; } } TempData["Data"] = msg; return(RedirectToAction("index", "Exchange")); }
//Save booking data in Database private int SaveBookingAndGetBookingId(PropDetailsM obj) { int result = 0; try { Decimal?ExchangeRate = 1; Decimal?OriginalTotalAmt = 0; int? Days = 0; etblOriginalBookingPrice objOrgBook = new etblOriginalBookingPrice(); etblBookingNegotiationTx objNego = new etblBookingNegotiationTx(); etblBookingTrakerTx objTrck = new etblBookingTrakerTx(); List <etblBookingGuestMap> lst = new List <etblBookingGuestMap>(); List <etblBookingDetailsTx> lstBookDetails = new List <etblBookingDetailsTx>(); List <etblBookingCancellationPolicyMap> lstCancelPolicy = new List <etblBookingCancellationPolicyMap>(); List <etblBookedDayWiseTaxAmountDetails> lstDayTaxes = new List <etblBookedDayWiseTaxAmountDetails>(); List <etblBookedDayWiseTaxAmountDetailsAll> lstDayTaxesDateWise = new List <etblBookedDayWiseTaxAmountDetailsAll>(); obj.objBooking.iPropId = obj.iPropId; obj.objBooking.iCustomerId = obj.iUserId; obj.objBooking.iGuestId = obj.iGuestId; if (obj.iUserId == 0) { obj.objBooking.iCustomerId = null; } if (obj.iGuestId == 0) { obj.objBooking.iGuestId = null; } obj.objBooking.dtCheckIn = obj.dtCheckIn; obj.objBooking.dtChekOut = obj.dtCheckOut; obj.objBooking.dtReservationDate = DateTime.Now; obj.objBooking.sTitleOFR = obj.sUserTitle; obj.objBooking.sFirstNameOFR = obj.sUserFirstName; obj.objBooking.sLastNameOFR = obj.sUserLastName; obj.objBooking.sEmailOFR = obj.sUserEmail; obj.objBooking.sMobileOFR = obj.sUserMobileNo; obj.objBooking.sCountryPhoneCode = obj.sCountryPhoneCode; obj.objBooking.dtActionDate = DateTime.Now; obj.objBooking.BookingStatus = "PP"; obj.objBooking.PaymentStatus = "P"; obj.objBooking.sExtra3 = "Redeem"; obj.objBooking.sExtra4 = obj.sTotalPoints; obj.objBooking.sCurrencyCode = obj.Currency; obj.objBooking.dServiceCharge = obj.TaxCharges.dOFRServiceCharge; obj.objBooking.dGSTOnServiceCharge = obj.TaxCharges.TaxOnServiceCharge; obj.objBooking.dGSTValue = obj.TaxCharges.dGstValue; obj.objBooking.dGSTServiceType = obj.TaxCharges.cGstValueType; if (obj.objBooking.sCurrencyCode != "INR") { etblExchangeRatesM objExchange = BL_ExchangeRate.GetSingleRecordById("INR", obj.objBooking.sCurrencyCode); if (objExchange.dRate != 0) { ExchangeRate = 1 / objExchange.dRate; } } Days = Convert.ToInt32((Convert.ToDateTime(obj.objBooking.dtChekOut) - Convert.ToDateTime(obj.objBooking.dtCheckIn)).TotalDays); obj.objBooking.dTotalAmount = obj.dSummaryRoomRate * ExchangeRate; decimal OFRServiceTax = obj.objBooking.dServiceCharge + obj.objBooking.dGSTOnServiceCharge; if (!String.IsNullOrEmpty(obj.objBooking.sExtra2)) { obj.objBooking.sExtra2 = (Convert.ToDecimal(obj.objBooking.sExtra2) * Convert.ToDecimal(ExchangeRate)).ToString(); } obj.objBooking.dTaxes = obj.dSummaryTaxes * ExchangeRate; obj.objBooking.dTaxesForHotel = obj.dSummaryTaxes * ExchangeRate; obj.objBooking.dTotalExtraBedAmount = obj.dSummaryExtraBedCharges * ExchangeRate; obj.objBooking.dTaxesOriginal = obj.dSummaryTaxes * ExchangeRate; string TimeZone = Session["TimeZone"] != null ? Session["TimeZone"].ToString() : "+5:30"; decimal zone = Convert.ToDecimal(TimeZone.Replace(":", ".").Replace("+", "")); obj.objBooking.iCountryOffset = zone; if (obj.objBooking.PromoCodeApplied == true) { obj.objBooking.dDiscountedBidPrice = obj.objBooking.PromoCodeValue * ExchangeRate; } decimal Rate = obj.dCommissionRate; if (Rate != 0) { decimal Comm = (obj.dSummaryRoomRate + obj.dSummaryExtraBedCharges) * Rate / 100; obj.objBooking.dTotalComm = Comm * ExchangeRate; obj.objBooking.dTotalCommOriginal = Comm * ExchangeRate; } obj.objBooking.cBookingType = "R"; objTrck.BookingStatus = "PP"; objTrck.dtActionDate = DateTime.Now; for (int i = 0; i < obj.lstetblRooms.Count; i++) { for (int j = 0; j < obj.lstetblRooms[i].lstRatePlan.Count; j++) { for (int lstOcc = 0; lstOcc < obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy.Count; lstOcc++) { if (obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iNoOfRooms != 0) { for (int k = 0; k < obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iNoOfRooms; k++) { int extrabed = obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].ExtraBeds; decimal extrabedcharges = Convert.ToDecimal(obj.lstetblRooms[i].ExtraBedCharges) * Convert.ToDecimal(ExchangeRate); decimal total = extrabedcharges * extrabed; decimal?dPriceRP = Convert.ToDecimal(obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].dPriceRP) * Convert.ToDecimal(ExchangeRate); decimal?dBasePrice = Convert.ToDecimal(obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].dBasePrice) * Convert.ToDecimal(ExchangeRate); if (dPriceRP > dBasePrice) { OriginalTotalAmt += dPriceRP * Days; } else { OriginalTotalAmt += dBasePrice * Days; } lstBookDetails.Add(new etblBookingDetailsTx() { iRoomId = Convert.ToString(obj.lstetblRooms[i].iRoomId), iRPId = Convert.ToString(obj.lstetblRooms[i].lstRatePlan[j].RPID), iRooms = 1, sRoomName = obj.lstetblRooms[i].sRoomName, sRPName = obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].RatePlan, iOccupancy = Convert.ToInt16(obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iOccupancy), dRoomRate = obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].dPrice * ExchangeRate, dExtraBedRate = total, sAmenityRatePlan = obj.lstetblRooms[i].lstRatePlan[j].RateInclusion, iAdults = Convert.ToInt16(obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iAdults), iChildren = Convert.ToInt16(obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iChildrens), iExtraBeds = Convert.ToInt16(obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].ExtraBeds), sChildrenAge = obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].ChildrenAge, dTaxes = (obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].dTaxes * ExchangeRate) / Days, dTaxesForHotel = ((obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].dTaxes) * ExchangeRate) / Days, dtActionDate = DateTime.Now, iPromoType = Convert.ToInt16(obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iPromoType) }); } var lstTaxes = obj.lstTaxesDateWise_OfferReview.Where(u => u.RPID == obj.lstetblRooms[i].lstRatePlan[j].RPID && u.RoomID == obj.lstetblRooms[i].iRoomId && u.iOccupancy == obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iOccupancy).ToList(); for (int tax = 0; tax < lstTaxes.Count; tax++) { lstDayTaxes.Add(new etblBookedDayWiseTaxAmountDetails() { dtStayDay = Convert.ToDateTime(lstTaxes[tax].dtDate), dAmount = Convert.ToDecimal(lstTaxes[tax].dBasePrice) * ExchangeRate, dTaxPerc = Convert.ToDecimal(lstTaxes[tax].TaxPer), dTaxVal = Convert.ToDecimal(lstTaxes[tax].TaxVal) * ExchangeRate, RoomID = Convert.ToInt32(lstTaxes[tax].RoomID), RPID = Convert.ToInt32(lstTaxes[tax].RPID), iOccupancy = Convert.ToInt32(lstTaxes[tax].iOccupancy), bIsPromo = Convert.ToBoolean(lstTaxes[tax].bIsPromo) }); } var lstTaxesDateWise = obj.lstTaxesDateWiseAll_OfferReview.Where(u => u.RPID == obj.lstetblRooms[i].lstRatePlan[j].RPID && u.iRoomId == obj.lstetblRooms[i].iRoomId && u.iOccupancy == obj.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iOccupancy).ToList(); for (int tax = 0; tax < lstTaxesDateWise.Count; tax++) { lstDayTaxesDateWise.Add(new etblBookedDayWiseTaxAmountDetailsAll() { dtStayDay = Convert.ToDateTime(lstTaxesDateWise[tax].dtStay), dAmount = Convert.ToDecimal(lstTaxesDateWise[tax].dPrice) * ExchangeRate, dTaxPerc = Convert.ToDecimal(lstTaxesDateWise[tax].MaxTaxPer), dTaxVal = Convert.ToDecimal(lstTaxesDateWise[tax].MaxTaxVal) * ExchangeRate, RoomID = Convert.ToInt32(lstTaxesDateWise[tax].iRoomId), RPID = Convert.ToInt32(lstTaxesDateWise[tax].RPID), iOccupancy = Convert.ToInt32(lstTaxesDateWise[tax].iOccupancy), iTaxId = Convert.ToInt32(lstTaxesDateWise[tax].TaxId) }); } for (int lstCancellation = 0; lstCancellation < obj.lstetblRooms[i].lstRatePlan[j].lstCancellationPolcy.Count; lstCancellation++) { DateTime StarDate = obj.lstetblRooms[i].lstRatePlan[j].lstCancellationPolcy[lstCancellation].ValidFrom; DateTime EndDate = obj.lstetblRooms[i].lstRatePlan[j].lstCancellationPolcy[lstCancellation].ValidTo; var res = new List <string>(); for (var date = StarDate; date <= EndDate; date = date.AddDays(1)) { res.Add(date.ToString()); } foreach (var ddate in res) { lstCancelPolicy.Add(new etblBookingCancellationPolicyMap() { sPolicyName = obj.lstetblRooms[i].lstRatePlan[j].lstCancellationPolcy[lstCancellation].PolicyName, dtDate = Convert.ToDateTime(ddate), dtActionDate = DateTime.Now, iRPId = obj.lstetblRooms[i].lstRatePlan[j].lstCancellationPolcy[lstCancellation].iRPId.ToString() }); } } } } } } objOrgBook.dOriginalTotalAmount = OriginalTotalAmt; result = BL_Booking.AddBooking(obj, objNego, objTrck, lstBookDetails, lst, lstCancelPolicy, lstDayTaxes, objOrgBook, lstDayTaxesDateWise); } catch (Exception) { result = 0; } return(result); }
public ActionResult Review(string propId, int roomId, string checkIn, string checkOut, int ratePlanId, string sRoomData, bool isPromo, string uniqueSessionId) { try { ViewBag.HeaderBarData = "Preview"; var decodedPropId = Convert.ToInt32(clsUtils.Decode(propId)); var customerId = User.Identity.GetUserId <long>(); DateTime dtCheckIn = DateTime.ParseExact(checkIn, "dd/MM/yyyy", CultureInfo.InvariantCulture); DateTime dtCheckOut = DateTime.ParseExact(checkOut, "dd/MM/yyyy", CultureInfo.InvariantCulture); #region RoomOccupancySearch DataTable dtRoomOccupancySearch = new DataTable(); dtRoomOccupancySearch.Columns.AddRange(new DataColumn[3] { new DataColumn("ID", typeof(int)), new DataColumn("iAdults", typeof(short)), new DataColumn("children", typeof(short)) }); DataTable dtChildrenAgeSearch = new DataTable(); dtChildrenAgeSearch.Columns.AddRange(new DataColumn[2] { new DataColumn("ID", typeof(int)), new DataColumn("Age", typeof(short)) }); var roomDataResult = new List <RoomData>(); if (!string.IsNullOrEmpty(sRoomData)) { roomDataResult = new JavaScriptSerializer().Deserialize <List <RoomData> >(sRoomData); foreach (var room in roomDataResult) { DataRow roomOccupancy = dtRoomOccupancySearch.NewRow(); roomOccupancy["ID"] = room.room; roomOccupancy["iAdults"] = room.adult; roomOccupancy["children"] = room.child; dtRoomOccupancySearch.Rows.Add(roomOccupancy); foreach (var child in room.ChildAge) { DataRow dtChildrenAge = dtChildrenAgeSearch.NewRow(); dtChildrenAge["ID"] = room.room; if (child.Age == "<1") { dtChildrenAge["Age"] = "0"; child.Age = "0"; } else { dtChildrenAge["Age"] = child.Age; } dtChildrenAge["Age"] = child.Age == "<1" ? "0" : child.Age; dtChildrenAgeSearch.Rows.Add(dtChildrenAge); } } } #endregion #region Hotel Details var propDetails = BL_PropDetails.GetRoomReviewDetailsToRedeemPoints(decodedPropId, customerId, dtCheckIn.ToString("yyyy-MM-dd"), dtCheckOut.ToString("yyyy-MM-dd"), CurrencyCode, roomId, ratePlanId, isPromo, dtRoomOccupancySearch, dtChildrenAgeSearch); if (propDetails != null) { if (User.Identity.IsAuthenticated) { var user = BL_WebsiteUser.GetSingleRecordById(User.Identity.GetUserId <long>()); propDetails.sUserTitle = user.Title; propDetails.sUserFirstName = user.FirstName; propDetails.sUserLastName = user.LastName; propDetails.sUserEmail = user.Email; propDetails.sUserMobileNo = user.PhoneNumber; propDetails.sCountryPhoneCode = user.sCountryPhoneCode; propDetails.iStateId = user.StateId.HasValue ? user.StateId.Value : 0; propDetails.iUserId = user.Id; } ViewBag.dExchangeRate = 1; if (CurrencyCode != "INR") { etblExchangeRatesM objExchange = BL_ExchangeRate.GetSingleRecordById("INR", CurrencyCode); if (objExchange.dRate.HasValue) { ViewBag.dExchangeRate = 1 / objExchange.dRate.Value; } } //Used to Remember when Modify Search ViewBag.sPropId = propId; ViewBag.scheckIn = checkIn; ViewBag.scheckOut = checkOut; ViewBag.sRoomData = sRoomData; ViewBag.iRoomId = roomId; ViewBag.iRatePlanId = ratePlanId; ViewBag.IsPromo = isPromo; propDetails.iPropId = decodedPropId; propDetails.Symbol = BL_ExchangeRate.GetSymbolByCurrencyCode(CurrencyCode); propDetails.sRoomData = sRoomData; propDetails.dtCheckIn = dtCheckIn; propDetails.dtCheckOut = dtCheckOut; propDetails.iTotalDays = (dtCheckOut - dtCheckIn).TotalDays.ToString(); propDetails.Currency = CurrencyCode; int RatePlan = 0, iNoRoom = 0, iDays = 0, iCount = 0; decimal RoomPrice = 0; decimal DTotal = 0; decimal ExtraCharges = 0; decimal totalTax = 0; int ExtraBed = 0; int totalPoints = 0; for (int i = 0; i < propDetails.lstetblRooms.Count; i++) { for (int j = 0; j < propDetails.lstetblRooms[i].lstRatePlan.Count; j++) { for (int lstOcc = 0; lstOcc < propDetails.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy.Count; lstOcc++) { if (propDetails.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iNoOfRooms != 0) { for (int k = 0; k < propDetails.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iNoOfRooms; k++) { ExtraBed = propDetails.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].ExtraBeds; ExtraCharges = propDetails.lstetblRooms[i].ExtraBedCharges; totalTax += propDetails.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].dTaxesForHotel; RatePlan = propDetails.lstetblRooms[i].lstRatePlan[j].RPID; RoomPrice = propDetails.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].dPrice; isPromo = propDetails.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].blsPromo; totalPoints += propDetails.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iPoints; iNoRoom = propDetails.lstetblRooms[i].lstRatePlan[j].lstetblOccupancy[lstOcc].iNoOfRooms; iDays = Convert.ToInt32(propDetails.iTotalDays); iCount = iNoRoom * iDays; RoomPrice = RoomPrice * (iDays); ExtraCharges = (ExtraBed * ExtraCharges) * iDays; DTotal += RoomPrice + ExtraCharges; iNoRoom++; } } } } } propDetails.dSummaryRoomRate = RoomPrice; propDetails.sSummaryRoomRate = clsUtils.ConvertNumberToCommaSeprated(RoomPrice); propDetails.dSummaryExtraBedCharges = ExtraCharges; propDetails.sSummaryExtraBedCharges = clsUtils.ConvertNumberToCommaSeprated(ExtraCharges); propDetails.dSummaryTaxes = totalTax; propDetails.sSummaryTaxes = clsUtils.ConvertNumberToCommaSeprated(totalTax); propDetails.dSummaryTotal = DTotal; propDetails.sSummaryTotal = clsUtils.ConvertNumberToCommaSeprated(DTotal); propDetails.sSummaryTaxes_display = clsUtils.ConvertNumberToCommaSeprated(totalTax + propDetails.TaxCharges.TotalServiceCharge); propDetails.sTotalPoints = clsUtils.ConvertNumberToCommaSeprated(totalPoints * Convert.ToInt32(propDetails.iTotalDays)); propDetails.TempDataPropDetails = uniqueSessionId; Session[uniqueSessionId] = propDetails; } #endregion Hotel Details return(View(propDetails)); } catch (Exception ex) { throw ex; } }
public ActionResult PayNow(eBiddingSearch obj) { try { Decimal? ExchangeRate = 1; etblBookingTx bookobj = new etblBookingTx(); if (User.Identity.IsAuthenticated) { var user = BL_WebsiteUser.GetSingleRecordById(User.Identity.GetUserId <long>()); bookobj.iCustomerId = user.Id; bookobj.iGuestId = 0; } else { var stronglObject = Session[obj.BidSearchData] as eBiddingSearch; GuestUserDetails objDetail = new GuestUserDetails(); objDetail.Title = obj.sUserTitle == "1" ? "Mr." : obj.sUserTitle == "2" ? "Ms." : ""; objDetail.FirstName = obj.sUserFirstName; objDetail.LastName = obj.sUserLastName; objDetail.Email = obj.sUserEmail; objDetail.PhoneNumber = obj.sUserMobileNo; objDetail.iStateId = stronglObject.iStateId; int i = BL_Bidding.AddGuestDetailsRecord(objDetail); if (i > 0) { bookobj.iGuestId = i; } else { return(View("BiddingInfo", obj)); } } string CurrencyCode = Session["CurrencyCode"] != null ? Session["CurrencyCode"].ToString() : "INR"; if (CurrencyCode != "INR") { etblExchangeRatesM objExchange = BL_ExchangeRate.GetSingleRecordById("INR", CurrencyCode); if (objExchange.dRate != 0) { ExchangeRate = 1 / objExchange.dRate; } } bookobj.dtCheckIn = Convert.ToDateTime(obj.sCheckIn);; bookobj.dtChekOut = Convert.ToDateTime(obj.sCheckOut); bookobj.dtReservationDate = DateTime.Now; bookobj.cBookingType = "B"; bookobj.sTitleOFR = obj.sUserTitle; bookobj.sFirstNameOFR = obj.sUserFirstName; bookobj.sLastNameOFR = obj.sUserLastName; bookobj.sEmailOFR = obj.sUserEmail; bookobj.sMobileOFR = obj.sUserMobileNo; bookobj.dtActionDate = DateTime.Now; bookobj.BookingStatus = "PP"; bookobj.PaymentStatus = "P"; bookobj.dBidAmount = obj.dBidPrice * ExchangeRate; bookobj.dTotalAmount = obj.dTotalPrice * ExchangeRate; bookobj.dTaxes = obj.dTaxes * ExchangeRate; bookobj.dTaxesForHotel = obj.dTaxes * ExchangeRate; bookobj.sCurrencyCode = Session["CurrencyCode"] != null ? Session["CurrencyCode"].ToString() : "INR"; bookobj.iBidStarCategory = Convert.ToInt16(obj.sStarRating); bookobj.sBidType = obj.sLocalityType; bookobj.sIDs = obj.sLocalityData.TrimEnd(','); bookobj.dServiceCharge = Convert.ToDecimal(obj.sOFRServiceCharge); bookobj.dGSTOnServiceCharge = Convert.ToDecimal(obj.sTaxOnServiceCharge_Val); bookobj.dGSTServiceType = obj.cGstValueType; bookobj.dGSTValue = Convert.ToString(obj.dGSTValue); string TimeZone = Session["TimeZone"] != null ? Session["TimeZone"].ToString() : "+5:30"; decimal zone = Convert.ToDecimal(TimeZone.Replace(":", ".").Replace("+", "")); bookobj.iCountryOffset = zone; #region FetchRoomData and bind in datatables var roomDataResult = new List <RoomData>(); if (obj.sJsonRoomData != null) { roomDataResult = new JavaScriptSerializer().Deserialize <List <RoomData> >(obj.sJsonRoomData); } List <etblBIDRoomAdultsTx> lstBid = new List <etblBIDRoomAdultsTx>(); foreach (var room in roomDataResult) { etblBIDRoomAdultsTx RoomObj = new etblBIDRoomAdultsTx(); RoomObj.iRoomNo = Convert.ToInt16(room.room); RoomObj.iAdults = Convert.ToInt16(room.adult); RoomObj.iChildren = Convert.ToInt16(room.child); System.Text.StringBuilder str = new System.Text.StringBuilder(); foreach (var child in room.ChildAge) { str.Append(child.Age); str.Append(","); } string ChildAges = str.ToString().TrimEnd(','); RoomObj.sChildAge = ChildAges; lstBid.Add(RoomObj); } #endregion etblBookingTrakerTx trkobj = new etblBookingTrakerTx(); trkobj.BookingStatus = "PP"; trkobj.dtActionDate = DateTime.Now; int j = BL_Booking.AddBookingForBid(bookobj, trkobj, lstBid); if (j > 0) { obj.iBookingId = j; Session[obj.BidSearchData] = obj; // TempData.Keep(); return(RedirectToAction("PayNow", "Payment", new { bookingId = j })); } else { } } catch (Exception) { } Session[obj.BidSearchData] = obj; // TempData.Keep(); return(View("BiddingInfo", obj)); }
public int SendMailToRevenueManager(int bookingId) { try { var customerModel = new NegotiationEmailTempleteModel(); // Added to show hotel Information in email template var bookingModel = BL_Booking.GetBookingModifyDetails_Notifications(bookingId); customerModel.BookingModify = bookingModel; Decimal?ExchangeRate = 1; // get from tblEmailSetting var revenueManagerDetail = BL_tblEmailSettingsM.GetRecord("RevenueManager"); // get from propertyEdit page var pRevenueManager = BL_PropDetails.GetEmail_PhoneByPropId(bookingModel.PropId); string sPrimaryContactEmail; string sConfirmationContactEmail; string sRevenueManagerEmail; string sRevenueManagerContact; pRevenueManager.TryGetValue("sPrimaryContactEmail", out sPrimaryContactEmail); pRevenueManager.TryGetValue("sConfirmationContactEmail", out sConfirmationContactEmail); pRevenueManager.TryGetValue("sRevenueManagerEmail", out sRevenueManagerEmail); pRevenueManager.TryGetValue("sRevenueManagerContact", out sRevenueManagerContact); string emails = sRevenueManagerEmail + "," + sConfirmationContactEmail + "," + sPrimaryContactEmail; customerModel = new NegotiationEmailTempleteModel(); customerModel.BookingModify = bookingModel; //customerModel.Status = "Thanks " + bookingModel.Booker + "! We have recieved your negotiation." + Environment.NewLine + "We will get back to you within 3 hours."; customerModel.Status = "Thank you " + bookingModel.Booker + "! We have recieved your bargain." + Environment.NewLine + bookingModel.sMessage; var revenuManagerModel = new NegotiationEmailTempleteModel(); //revenuManagerModel.Status = "Hi " + revenueManageName +", Please take action for the following Negotiation Request."; revenuManagerModel.Status = "Hi, Please take action for the following bargain Request."; revenuManagerModel.IsRevenueManagerFormat = true; if (bookingModel.sCurrencyCode != "INR") { etblExchangeRatesM objExchange = BL_ExchangeRate.GetSingleRecordById("INR", bookingModel.sCurrencyCode); if (objExchange.dRate != null) { ExchangeRate = 1 / objExchange.dRate; } } bookingModel.dTotalNegotiateAmount = bookingModel.dTotalNegotiateAmount * ExchangeRate; bookingModel.dTaxes = Convert.ToDecimal(bookingModel.Tax) * Convert.ToDecimal(ExchangeRate); revenuManagerModel.BookingModify = bookingModel; string extranetUrl = Request.Url.GetLeftPart(UriPartial.Authority) + "Account/Login?sPropId=" + clsUtils.Encode(bookingModel.PropId.ToString()); string shortExtranetUrl = clsUtils.Shorten(extranetUrl); string notificationMsg_RevenueMgr = "You have received a new bargain offer. The guest has chosen your hotel! Click " + shortExtranetUrl + " to view the offer and process yet another reservation from OFR. This offer is valid for the next three hours."; var html_RevenueManager = this.RenderViewToString("_NegotiationEmailTemplete", revenuManagerModel); Task.Run(() => clsUtils.sendSMS(sRevenueManagerContact, notificationMsg_RevenueMgr)); Task.Run(() => MailComponent.SendEmail(sRevenueManagerEmail, revenueManagerDetail.sEmail, "", "Reminder - New Bargain", html_RevenueManager, null, null, true, null, null)); return(1); } catch (Exception ex) { return(0); } }
public ActionResult GetRoomData(string sVendorId, string dCheckIn, string dCheckOut, string sRoomData) { try { DateTime checkIn = DateTime.ParseExact(dCheckIn, "dd/MM/yyyy", CultureInfo.InvariantCulture); DateTime checkOut = DateTime.ParseExact(dCheckOut, "dd/MM/yyyy", CultureInfo.InvariantCulture); var propDetail = new PropDetailsM(); propDetail.dtCheckIn = checkIn; propDetail.dtCheckOut = checkOut; propDetail.sRoomData = sRoomData; propDetail.iVendorId = sVendorId; propDetail.scheckIn = dCheckIn; propDetail.scheckOut = dCheckOut; #region RoomOccupancySearch DataTable dtTblRoomOccupancySearch = new DataTable(); dtTblRoomOccupancySearch.Columns.AddRange(new DataColumn[3] { new DataColumn("ID", typeof(int)), new DataColumn("iAdults", typeof(short)), new DataColumn("children", typeof(short)) }); DataTable dtTblChildrenAgeSearch = new DataTable(); dtTblChildrenAgeSearch.Columns.AddRange(new DataColumn[2] { new DataColumn("ID", typeof(int)), new DataColumn("Age", typeof(short)) }); var roomDataResult = new List <RoomData>(); if (!string.IsNullOrEmpty(sRoomData)) { roomDataResult = new JavaScriptSerializer().Deserialize <List <RoomData> >(sRoomData); foreach (var room in roomDataResult) { DataRow roomOccupancy = dtTblRoomOccupancySearch.NewRow(); roomOccupancy["ID"] = room.room; roomOccupancy["iAdults"] = room.adult; roomOccupancy["children"] = room.child; dtTblRoomOccupancySearch.Rows.Add(roomOccupancy); foreach (var child in room.ChildAge) { DataRow dtChildrenAge = dtTblChildrenAgeSearch.NewRow(); dtChildrenAge["ID"] = room.room; if (child.Age == "<1") { dtChildrenAge["Age"] = "0"; child.Age = "0"; } else { dtChildrenAge["Age"] = child.Age; } dtChildrenAge["Age"] = child.Age == "<1" ? "0" : child.Age; dtTblChildrenAgeSearch.Rows.Add(dtChildrenAge); } } } #endregion #region Hotel Detais var ofrCommision = BL_Bidding.GetBidMaster(CurrencyCode); var TG_Hotel_With_Rooms = clsSearchHotel.FetchHotelsDetailsByVendorId( true, sVendorId, checkIn.ToString("yyyy-MM-dd"), checkOut.ToString("yyyy-MM-dd"), dtTblRoomOccupancySearch, dtTblChildrenAgeSearch, roomDataResult ); propDetail.dOFRServiceCharge = ofrCommision.dOFRServiceCharge; string roomIds = string.Empty; List <string> roomIdsArr = new List <string>(); if (TG_Hotel_With_Rooms != null) { roomIdsArr = TG_Hotel_With_Rooms.RoomDetails.Select(x => x.RoomId).ToList(); roomIds = string.Join(",", roomIdsArr); } var db_roomAmenities = BL_PropDetailsTG.GetRoomAmenities(sVendorId, roomIds); if (db_roomAmenities.Count > 0) { foreach (var roomId in roomIdsArr) { var tgRoom = TG_Hotel_With_Rooms.RoomDetails.Where(x => x.RoomId == roomId).FirstOrDefault(); tgRoom.RoomAmenities = db_roomAmenities.Distinct().ToList(); } } propDetail.TG_Hotel = TG_Hotel_With_Rooms; ViewBag.dExchangeRate = 1; if (CurrencyCode != "INR") { etblExchangeRatesM objExchange = BL_ExchangeRate.GetSingleRecordById("INR", CurrencyCode); if (objExchange.dRate.HasValue) { ViewBag.dExchangeRate = objExchange.dRate.Value; } } propDetail.Symbol = BL_ExchangeRate.GetSymbolByCurrencyCode(CurrencyCode); #endregion return(PartialView("pvHotelRooms", propDetail)); } catch (Exception) { return(Content("An Error Occured !")); } }
//[OutputCache(Duration = 30, VaryByParam = "Id;cIn;cOut;sLocation;sRoomData", VaryByCustom = "User")] // Cached for 30 second public ActionResult Index(string Id, string cIn, string cOut, string sLocation, string sRoomData, string sRequestType) { PropDetailsM propDetails = new PropDetailsM(); if (!string.IsNullOrEmpty(Id)) { PropSearchRequestModel dbRequestParamModel = new PropSearchRequestModel(); dbRequestParamModel.iVendorId = Id; var roomDataResult = new List <RoomData>(); #region RoomOccupancySearch DataTable dtTblRoomOccupancySearch = new DataTable(); dtTblRoomOccupancySearch.Columns.AddRange(new DataColumn[3] { new DataColumn("ID", typeof(int)), new DataColumn("iAdults", typeof(short)), new DataColumn("children", typeof(short)) }); DataTable dtTblChildrenAgeSearch = new DataTable(); dtTblChildrenAgeSearch.Columns.AddRange(new DataColumn[2] { new DataColumn("ID", typeof(int)), new DataColumn("Age", typeof(short)) }); if (!string.IsNullOrEmpty(cIn) && !string.IsNullOrEmpty(cOut)) { dbRequestParamModel.dtCheckIn = DateTime.Parse(cIn); dbRequestParamModel.dtCheckOut = DateTime.Parse(cOut); } else { dbRequestParamModel.dtCheckIn = DateTime.Now.Date.AddDays(1); dbRequestParamModel.dtCheckOut = DateTime.Now.Date.AddDays(2); cIn = DateTime.Today.ToString("dd/MM/yyyy"); cOut = DateTime.Today.AddDays(1).ToString("dd/MM/yyyy"); } dbRequestParamModel.bLogin = User.Identity.IsAuthenticated; dbRequestParamModel.sCurrency = CurrencyCode; //Insert the room data in the table created if (!string.IsNullOrEmpty(sRoomData)) { roomDataResult = new JavaScriptSerializer().Deserialize <List <RoomData> >(sRoomData); } else { roomDataResult.Add(new RoomData() { adult = 2, child = 0, room = 1, ChildAge = new List <ChildAge>() { new ChildAge() { Age = "0" } } }); } foreach (var room in roomDataResult) { DataRow roomOccupancy = dtTblRoomOccupancySearch.NewRow(); roomOccupancy["ID"] = room.room; roomOccupancy["iAdults"] = room.adult; roomOccupancy["children"] = room.child; dtTblRoomOccupancySearch.Rows.Add(roomOccupancy); foreach (var child in room.ChildAge) { DataRow dtChildrenAge = dtTblChildrenAgeSearch.NewRow(); dtChildrenAge["ID"] = room.room; dtChildrenAge["Age"] = child.Age; dtTblChildrenAgeSearch.Rows.Add(dtChildrenAge); } } sRoomData = clsUtils.ConvertToJson(roomDataResult); #endregion string roomIds = string.Empty; List <string> roomIdsArr = new List <string>(); List <int> hotelAmenitiesIdsArr = new List <int>(); var ofrServiceCharge = BL_PropDetailsTG.GetOfrServiceCharge(dbRequestParamModel.dtCheckIn, dbRequestParamModel.dtCheckOut); //Get TG hotel details var hotelDetailsFromApi = clsSearchHotel.FetchHotelsDetailsByVendorId(false, dbRequestParamModel.iVendorId, dbRequestParamModel.dtCheckIn.ToString("yyyy-MM-dd"), dbRequestParamModel.dtCheckOut.ToString("yyyy-MM-dd"), dtTblRoomOccupancySearch, dtTblChildrenAgeSearch, roomDataResult); if (hotelDetailsFromApi != null && !string.IsNullOrEmpty(hotelDetailsFromApi.HotelCode)) { roomIdsArr = hotelDetailsFromApi.RoomDetails.Select(x => x.RoomId).ToList(); roomIds = string.Join(",", roomIdsArr); hotelAmenitiesIdsArr = hotelDetailsFromApi.HotelAmenities.Select(x => int.Parse(x.code)).ToList(); hotelDetailsFromApi.HotelAmenities = BL_PropDetailsTG.GetHotelAmenities(hotelAmenitiesIdsArr.ToArray()); if (hotelDetailsFromApi.GalleryImages.Count <= 0) { propDetails = BL_PropDetailsTG.GetPropertyDetails(dbRequestParamModel.iVendorId, roomIds); } else { propDetails = BL_PropDetailsTG.GetPropertyDetailsWithoutGallery(dbRequestParamModel.iVendorId, roomIds); } } else { propDetails = BL_PropDetailsTG.GetPropertyDetails(dbRequestParamModel.iVendorId, roomIds); } propDetails.ServiceChargeTG = ofrServiceCharge; propDetails.cStatus = "A"; propDetails.iVendorId = Id; propDetails.sRoomData = sRoomData; propDetails.scheckIn = cIn; propDetails.scheckOut = cOut; propDetails.dtCheckIn = dbRequestParamModel.dtCheckIn; propDetails.dtCheckOut = dbRequestParamModel.dtCheckOut; hotelDetailsFromApi.RoomAmenities = propDetails.TG_Hotel.RoomAmenities; propDetails.TG_Hotel = hotelDetailsFromApi; propDetails.sRequestType = sRequestType; propDetails.Currency = dbRequestParamModel.sCurrency; if (propDetails.TG_Hotel != null && propDetails.TG_Hotel.RoomAmenities != null) { foreach (var roomId in roomIdsArr) { var tgRoom = hotelDetailsFromApi.RoomDetails.Where(x => x.RoomId == roomId).FirstOrDefault(); tgRoom.RoomAmenities = propDetails.TG_Hotel.RoomAmenities.Where(x => x.iRoomTypeId == tgRoom.RoomId).ToList(); } } Task.Run(() => BL_PropDetails.UpdateRecentViewAsync(propDetails.iPropId, User.Identity.GetUserId <long>())); ViewBag.dExchangeRate = 1; if (CurrencyCode != "INR") { etblExchangeRatesM objExchange = BL_ExchangeRate.GetSingleRecordById("INR", CurrencyCode); if (objExchange.dRate.HasValue) { ViewBag.dExchangeRate = objExchange.dRate.Value; } } propDetails.Symbol = BL_ExchangeRate.GetSymbolByCurrencyCode(CurrencyCode); } return(View(propDetails)); }