public async Task <ActionResult> Reserve(int ItemId, bool capture = true) { var item = db.ItemDb.Where(m => m.ItemId == ItemId).SingleOrDefault(); var param = new { productName = item.ItemName, productImageUrl = item.ImgUrl, amount = item.ItemUnitPrice, currency = "TWD", confirmUrl = "https://wisemachinewebapp.azurewebsites.net/home/Confirm", orderId = $"ORDER-{DateTime.Now:yyyyMMdd_HHmmss}", capture = capture }; // *** call RESERVE API var responseJson = await RequestGateway("request", param); dynamic responseObj = JObject.Parse(responseJson); ViewBag.ResponseJson = JsonConvert.SerializeObject(responseObj, Formatting.Indented); if (responseObj.returnCode == "0000") { OrderTransactions[responseObj.info.transactionId.ToString()] = param; ViewBag.PaymentUrl = responseObj.info.paymentUrl.web; } string PaymentUrl = responseObj.info.paymentUrl.web; SalesStatisticsDb order = new SalesStatisticsDb(); order.ItemId = ItemId; //order.TransactionId = responseObj.info.transactionId; order.MachineId = "1"; order.UpdateTime = DateTime.Now.ToString("yyyy/MM/dd"); //order.Amount = 1; db.SalesStatisticsDb.Add(order); db.SaveChanges(); return(Redirect(PaymentUrl)); }
public async Task <ActionResult> Reserve(int ItemId, string tdA0, string tdA1, string tdA2, string tdA3, string tdA4, string tdA5, string tdA6, string tdA7, string tdA8, string tdA9, bool capture = true) { TempData["PayOK"] = ItemId; var item = db.ItemDb.Where(m => m.ItemId == ItemId).SingleOrDefault(); var param = new { productName = item.ItemName, productImageUrl = item.ImgUrl, amount = item.ItemUnitPrice, currency = "TWD", confirmUrl = "https://wisemachinewebapp.azurewebsites.net/home/Confirm", orderId = $"ORDER-{DateTime.Now:yyyyMMdd_HHmmss}", capture = capture }; string[] y = new string[] { tdA0, tdA1, tdA2, tdA3, tdA4, tdA5, tdA6, tdA7, tdA8, tdA9 }; var name = item.ItemName; var machine = db.MachineStorageDb.Where(m => m.ItemId == ItemId).FirstOrDefault(); int buyit = Convert.ToInt32(machine.Amount) - 1; y[Convert.ToInt32(machine.Rack) - 1] = buyit.ToString(); for (int i = 1; i <= y.Length; i++) { var original = db.MachineStorageDb.AsNoTracking().Where(m => m.Rack == i.ToString() && m.MachineId == "1").FirstOrDefault(); //新的值 var machineStorage = db.MachineStorageDb.Where(m => m.Rack == i.ToString() && m.MachineId == "1").FirstOrDefault(); machineStorage.Amount = y[i - 1]; //比較新舊更新 if (machineStorage.Amount != original.Amount) { db.Entry(machineStorage).Property(m => m.Amount).IsModified = true; } else { db.Entry(machineStorage).Property(m => m.Amount).IsModified = false; } db.SaveChanges(); } // *** call RESERVE API var responseJson = await RequestGateway("request", param); dynamic responseObj = JObject.Parse(responseJson); ViewBag.ResponseJson = JsonConvert.SerializeObject(responseObj, Formatting.Indented); if (responseObj.returnCode == "0000") { OrderTransactions[responseObj.info.transactionId.ToString()] = param; ViewBag.PaymentUrl = responseObj.info.paymentUrl.web; } string PaymentUrl = responseObj.info.paymentUrl.web; SalesStatisticsDb order = new SalesStatisticsDb(); order.ItemId = ItemId; //order.TransactionId = responseObj.info.transactionId; order.MachineId = "1"; order.UpdateTime = DateTime.Now.ToString("yyyy/MM/dd"); //order.Amount = 1; db.SalesStatisticsDb.Add(order); db.SaveChanges(); return(Redirect(PaymentUrl)); }