//取消政策條列化 public static ProductforEcModel setCancelPolicy(ProductforEcModel prod, Dictionary <string, string> uiKey) { List <CancelPolicy> policyList = new List <CancelPolicy>(); CancelPolicy policy = null; int i = 0; int preDate = 0; foreach (Policy p in prod.policy_list) { policy = new CancelPolicy(); policy.sort = i; policy.ed = Convert.ToInt32(p.days); policy.sd = (i == 0) ? 0 : preDate + 1; if (p.is_over) { policy.showRange = policy.ed + uiKey["common_days_more"].ToString(); } else { policy.showRange = $"{policy.sd}~{policy.ed}" + uiKey["common_days_prior"].ToString(); } policy.showPercent = p.fee == 0 ? uiKey["product_index_refundable"].ToString() : p.fee == 100 ? uiKey["product_index_non_refundable"] : p.fee + "%"; policyList.Add(policy); preDate = policy.ed; i++; } policyList = policyList.OrderByDescending(x => x.sort).ToList(); prod.cancelPolicyList = policyList; return(prod); }
public async Task <CancelPolicy> GETPolicyDetails(string HotelId, string SessionID) { CancelPolicy policy = new CancelPolicy(); using (SqlCommand cmd = new SqlCommand("MS_SelectCancelPolicy", Db_Con)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("sessionID", SessionID); cmd.Parameters.AddWithValue("HotelID", HotelId); var reader = cmd.ExecuteReader(); while (reader.Read()) { CancelPenalty cancel = new CancelPenalty(); cancel.currency = reader["Currency"].ToString(); cancel.hoursBefore = int.Parse(reader["hoursBefore"].ToString()); cancel.penaltyType = reader["Type"].ToString(); cancel.value = float.Parse(reader["Value"].ToString()); policy.refundable = bool.Parse(reader["PolicyRefundable"].ToString()); policy.cancelPenalties.Add(cancel); // TestList.Add(test); } } return(policy); }
public async Task <CancelPolicy> GEtPolicyData(string HotelID, string SessionId) { CancelPolicy cancelPolicy = new CancelPolicy(); cancelPolicy = await db.GETPolicyDetails(HotelID, SessionId); return(cancelPolicy); }
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); } }
public Task <bool> CancelPolicy(string PolicyNumber) { var obj = new CancelPolicy(PolicyNumber); return(obj.ExecuteReaderAsync()); }