Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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));
        }
Exemple #4
0
        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"));
            }
        }