public ActionResult Payment() { if (User.Identity.IsAuthenticated) { var userId = User.Identity.GetUserId(); var itemsInCart = db.ShoppingCart.Where(s => s.UserId == userId && s.Status == false).ToList(); // the gateway does not accepts amount less than 1000 Rials decimal totalPrice = 1000; foreach (var item in itemsInCart) { totalPrice += item.Count * item.Price; } try { Payment ob = new Payment(); string result = ob.pay(totalPrice.ToString()); JsonParameters parameters = JsonConvert.DeserializeObject <JsonParameters>(result); if (parameters.status == 1) { List <TempSale> LstTempSales = new List <TempSale>(); foreach (var x in itemsInCart) { TempSale t = new TempSale() { ShoppingCartId = x.Id, BankGetNo = parameters.transId, Date = DateTime.Now, Status = false, Count = x.Count, Price = x.Price, ProductId = x.ProductId, ProductName = x.ProductName }; LstTempSales.Add(t); } db.TempSale.AddRange(LstTempSales); db.SaveChanges(); Response.Redirect("https://pay.ir/payment/test/gateway/" + parameters.transId); } else { //lblresult.text = "کدخطا : " + parmeters.errorcode + "<br />" + "پیغام خطا : " + parmeters.errormessage; } } catch (Exception e) { //lblresult.text = "خطا در اتصال به درگاه پرداخت"; } } else { return(RedirectToAction("Index", "Home")); } return(View()); }
private void BT_Add_Click(object sender, RoutedEventArgs e) { int qnt = Convert.ToInt32(BikeQuantity.Text); string b_name = ((CatalogBike.displayInfo)BikeCatalog.SelectedItem).name; string b_color = BikeColor.SelectedItem.ToString(); string b_size = BikeSize.SelectedItem.ToString(); CatalogBike cb = ((CatalogBike.displayInfo)BikeCatalog.SelectedItem).CurCatBike; BikeBasket bb = new BikeBasket(b_name, b_color, b_size, cb, qnt); BikeTemplate bt = bb.CreateBikeTemplate(); if (bt.getId() == -1) { int id_bt = Controler.Instance.getLastBikeTemplateId() + 1; bt.setId(id_bt); Controler.Instance.createBikeTemplate(bt); } for (int i = 0; i < bb.qnt; i++) { int bikeID = Controler.Instance.getLastBikeId() + 1; DateTime constr_date = TempSale.getConstrDate(); DateTime planned_date = TempSale.getNextPrevisionDate(); int poste = Controler.Instance.getAvailablePoste(); Bike tempB = new Bike(bikeID, 0, -1, poste, bt, planned_date, constr_date); Controler.Instance.createBike(tempB); } this.Close(); }