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")); }
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)); }
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")); }
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()); }
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)); }
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(); }