public ActionResult CreateOrder(string package) { int tokenAmount = 0; SystemParameter parameter = dbcontext.SystemParameter.FirstOrDefault(); if (package == "Silver") { tokenAmount = parameter.SilverPackage; } else if (package == "Gold") { tokenAmount = parameter.GoldPackage; } else if (package == "Platinum") { tokenAmount = parameter.PlatinumPackage; } int price = (int)(tokenAmount * parameter.PriceOfToken); TokenOder tokenOrder = new TokenOder(); if (ModelState.IsValid) { tokenOrder.Buyer = ((User)Session["User"]).Id; tokenOrder.Currency = parameter.Currency; tokenOrder.Price = price; tokenOrder.User = dbcontext.User.Find(tokenOrder.Buyer); tokenOrder.TokensAmount = tokenAmount; tokenOrder.Status = "SUBMITTED"; dbcontext.TokenOders.Add(tokenOrder); dbcontext.SaveChanges(); } log.Info("Create Order-SUBMITTED User" + tokenOrder.Buyer); return(Redirect("http://stage.centili.com/payment/widget?apikey=3e298f9e6f38648e1fbd052ea42dae99&country=rs&reference=" + tokenOrder.Id)); }
public ActionResult BuysTokens([Bind(Include = "PackageType,PhoneNumber,UserID")] BuyTokens tokens) { if (Session["User"] == null || Session["Admin"] != null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } tryCompleted(); logger.Info("Buy tokens user " + ((User)Session["User"]).Id); var findAllParameters = from sp in db.SystemParameters select sp; var last = findAllParameters.ToList().Last(); var tokenOrder = new TokenOder(); tokenOrder.Buyer = ((User)Session["User"]).Id; tokenOrder.Currency = last.Currency; switch (tokens.PackageType) { case "SILVER": { tokenOrder.TokensAmount = last.SilverPackage; break; } case "GOLD": { tokenOrder.TokensAmount = last.GoldPackage; break; } case "PLATINUM": { tokenOrder.TokensAmount = last.PlatinumPackage; break; } } tokenOrder.Price = last.TokensPrice * tokenOrder.TokensAmount; tokenOrder.Status = "SUBMITTED"; db.TokenOders.Add(tokenOrder); bool saveFailed; do { saveFailed = false; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException ex) { saveFailed = true; var entry = ex.Entries.Single(); entry.OriginalValues.SetValues(entry.GetDatabaseValues()); } } while (saveFailed); var baseURL = "http://stage.centili.com/payment/widget?apikey=5b0007f1fb8f6516d69e1e93cd99cc63"; var ret = "&reference=" + ((User)Session["User"]).Id + "&country=rs";//Int2Guid(((User)Session["User"]).Id); return(Redirect(baseURL + ret)); }
public ActionResult CentiliResponse(string clientid, string status) { int id = Int32.Parse(clientid); TokenOder order = db.TokenOders.Find(id); if (order == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } if (status == "canceled" || status == "failed") { order.Status = "CANCELED"; log.Info("Create Order-CANCELED User" + order.Buyer); } else { order.Status = "COMPLETED"; using (var transaction = db.Database.BeginTransaction()) { try { User u = db.Users.Find(order.Buyer); if (u == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } u.TokensNumber += order.TokensAmount; ((User)Session["User"]).TokensNumber = u.TokensNumber; db.Entry(u).State = EntityState.Modified; db.SaveChanges(); transaction.Commit(); //sendMail(u.Email); log.Info("Token order succeeded " + order.User.Email + "num " + order.TokensAmount); } catch (Exception e) { transaction.Rollback(); log.Info("Roll back token order failed " + order.User.Email + "num " + order.TokensAmount); return(RedirectToAction("SearchAuction", "Manage")); } } } db.Entry(order).State = EntityState.Modified; db.SaveChanges(); return(new HttpStatusCodeResult(200)); }
public ActionResult OrderT(string package) { int amount = 0; int id = ((User)(Session["User"])).Id; var par = db.SystemParameters.FirstOrDefault(); if (package == "SilverPackage") { amount = par.SilverPackage; } if (package == "GoldPackage") { amount = par.GoldPackage; } if (package == "PlatinumPackage") { amount = par.PlatinumPackage; } TokenOder order = new TokenOder(); if (amount != 0) { order.Buyer = ((User)(Session["User"])).Id; order.TokensAmount = amount; order.Price = par.PriceOfToken * amount; order.Currency = par.Currency; order.Status = "SUBMITTED"; order.User = db.Users.Find(id); db.TokenOders.Add(order); db.SaveChanges(); log.Info("Create Order-SUBMITTED User" + order.Buyer); return(Redirect("http://stage.centili.com/payment/widget?apikey=125c01e3e293287b89aebb60254dd334&country=rs&reference=" + order.Id)); } else { return(View("OrderTokens")); } }