Ejemplo n.º 1
0
        public ActionResult Order(string tokens)
        {
            AdminSettings admin     = db.adminSettings.FirstOrDefault();
            User          user      = Session["User"] as User;
            int           tokensNum = 0;

            if (tokens == "silver")
            {
                tokensNum = admin.S;
            }
            if (tokens == "gold")
            {
                tokensNum = admin.G;
            }
            if (tokens == "platinum")
            {
                tokensNum = admin.P;
            }

            TokenOrder order = new TokenOrder {
                id = Guid.NewGuid(), dateSubmitted = System.DateTime.Now, type = tokens, userId = user.id, numOfTokens = tokensNum, price = tokensNum * admin.T, status = "SUBMITTED"
            };

            db.tokenOrders.Add(order);
            db.SaveChanges();

            return(Redirect("http://stage.centili.com/payment/widget?apikey=8603e733aca172f0f2472ecadffb5739&country=rs&reference=" + order.id + "&returnurl=http://sj150153.azurewebsites.net/TokenOrder/Completed"));
        }
Ejemplo n.º 2
0
        public ActionResult CreateNewAuction(CreateNewAuction model)
        {
            if (ModelState.IsValid)
            {
                User          user    = Session["User"] as User;
                Auction       auction = new Auction();
                AdminSettings admin   = db.adminSettings.FirstOrDefault();
                auction.id         = Guid.NewGuid();
                auction.name       = model.name;
                auction.duration   = model.duration;
                auction.startPrice = model.startPrice;
                auction.currPrice  = model.startPrice;
                auction.currency   = admin.C;


                byte[] image = new byte[model.image.ContentLength];
                model.image.InputStream.Read(image, 0, image.Length);
                auction.image        = image;
                auction.status       = "READY";
                auction.timeCreated  = DateTime.Now;
                auction.timeOpened   = null;
                auction.timeClosed   = null;
                auction.userIdCreate = user.id;
                auction.tokenValue   = admin.T;
                auction.tokenPrice   = (int)Math.Ceiling(auction.startPrice / auction.tokenValue);

                db.auctions.Add(auction);
                db.SaveChanges();
                return(View("DetailAuction", auction));
            }

            return(View(model));
        }
Ejemplo n.º 3
0
        public ActionResult ChangeStatus(Guid id)
        {
            Auction auction = db.auctions.Where(a => a.id == id).FirstOrDefault();

            auction.status          = "OPENED";
            auction.timeOpened      = System.DateTime.Now;
            db.Entry(auction).State = EntityState.Modified;
            db.SaveChanges();
            return(RedirectToAction("AllAuctions", "Home"));
        }
Ejemplo n.º 4
0
        public ActionResult Bid(Guid?auctionId, int?bidOffer)
        {
            using (var transaction = db.Database.BeginTransaction(System.Data.IsolationLevel.Serializable))
            {
                try {
                    if (auctionId != null && bidOffer != null)
                    {
                        Auction auction      = db.auctions.Where(a => a.id == auctionId).FirstOrDefault();
                        Bid     bidToCompare = auction.bids.OrderByDescending(b => b.timeSent).FirstOrDefault();
                        int     oldOffer     = 0;
                        if (bidToCompare != null)
                        {
                            oldOffer = bidToCompare.numOfTokens;
                        }
                        else
                        {
                            oldOffer = auction.tokenPrice;
                        }
                        User user  = Session["User"] as User;
                        User user1 = db.users.Where(u => u.id == user.id).FirstOrDefault();
                        if (bidOffer > oldOffer && bidOffer <= user.numOfTokens && user.id != auction.userIdCreate)
                        {
                            Bid bid = new Bid
                            {
                                userId      = user.id,
                                timeSent    = System.DateTime.Now,
                                auctionId   = auction.id,
                                numOfTokens = (int)bidOffer
                            };
                            db.bids.Add(bid);

                            user1.numOfTokens     = user1.numOfTokens - (int)bidOffer;
                            db.Entry(user1).State = EntityState.Modified;
                            AdminSettings admin = db.adminSettings.FirstOrDefault();
                            auction.currPrice  = (decimal)bidOffer * admin.T;
                            auction.tokenPrice = (int)bidOffer;
                            var hubContext = GlobalHost.ConnectionManager.GetHubContext <HubProjekat>();
                            hubContext.Clients.All.updatePage(auction.id, auction.currPrice, auction.currency, user1.mail, auction.tokenPrice);
                            hubContext.Clients.All.bidUp(user1.name, user1.lastname, bid.timeSent, bid.numOfTokens, auction.currPrice, auction.id);
                            hubContext.Clients.All.userUp(user1.numOfTokens, user1.id);
                            db.Entry(auction).State = EntityState.Modified;
                            db.SaveChanges();
                            transaction.Commit();
                        }
                    }
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    ViewBag.Message = "There is an error in transaction";
                    log.Error($"Error-not finished bid on {DateTime.Now}");
                }
            }

            //    var auctions = from a in db.auctions select a;
            return(RedirectToAction("AllAuctions", "Home")); //, auctions.ToList());
        }
Ejemplo n.º 5
0
        public ActionResult Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                User userAddit = db.users.Where(u => u.mail == model.Email).FirstOrDefault();

                if (userAddit != null)
                {
                    ViewBag.Message = "This E-mail already exists.";
                    return(View("Register"));
                }

                var passwordAddit = "";
                using (MD5 md5Hash = MD5.Create())
                {
                    byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(model.Password);
                    byte[] hashBytes  = md5Hash.ComputeHash(inputBytes);

                    StringBuilder sb = new StringBuilder();
                    for (int i = 0; i < hashBytes.Length; i++)
                    {
                        sb.Append(hashBytes[i].ToString("X2"));
                    }

                    passwordAddit = sb.ToString();
                }


                User user = new User
                {
                    name     = model.Firstname, mail = model.Email, lastname = model.Lastname, isAdmin = 0,
                    password = passwordAddit
                };

                db.users.Add(user);
                db.SaveChanges();

                return(View("Login"));
            }

            return(View(model));
        }
Ejemplo n.º 6
0
        public void DefaultParameters()
        {
            AuctionDb     db    = new AuctionDb();
            AdminSettings admin = db.adminSettings.FirstOrDefault();

            admin.N = 10;

            admin.D = 18000;

            admin.S = 30;

            admin.G = 50;

            admin.P = 100;

            admin.C = "RSD";

            admin.T = 100;

            db.Entry(admin).State = EntityState.Modified;
            db.SaveChanges();
        }