Exemple #1
0
 public ActionResult EndOfAuction(Guid?id)
 {
     using (var transaction = db.Database.BeginTransaction(System.Data.IsolationLevel.Serializable))
     {
         try
         {
             Auction auction = db.auctions.Where(a => a.id == id).FirstOrDefault();
             auction.status          = "COMPLETED";
             auction.timeClosed      = System.DateTime.Now;
             db.Entry(auction).State = EntityState.Modified;
             db.SaveChanges();
             transaction.Commit();
             if (auction.bids.Count != 0)
             {
                 User   sendTo  = auction.bids.LastOrDefault().user;
                 string subject = "Get ordered product";
                 string body    =
                     "You have won on the auction. Soon you will your ordered product will be sent to you. ";
                 string mailTo = sendTo.mail;
                 EmailClass.Email(mailTo, subject, body);
                 var hubContext = GlobalHost.ConnectionManager.GetHubContext <HubProjekat>();
                 hubContext.Clients.All.updateWinner(auction.id, sendTo.name, sendTo.lastname);
             }
         }
         catch (Exception e)
         {
             transaction.Rollback();
             log.Error($"Error-not sent mail to winner on {DateTime.Now}");
         }
     }
     return(RedirectToAction("AllAuctions", "Home"));
 }
Exemple #2
0
 public ActionResult Completed(Guid?reference, string status)
 {
     using (var transaction = db.Database.BeginTransaction(IsolationLevel.Serializable))
     {
         try
         {
             TokenOrder order = db.tokenOrders.Where(t => t.id == reference).FirstOrDefault();
             if (order == null)
             {
                 RedirectToAction("TokenOrders", "TokenOrder");
             }
             if (order.status == "SUBMITTED")
             {
                 if (status == "success")
                 {
                     order.status = "COMPLETED";
                     User user1 = Session["User"] as User;
                     User user  = db.users.Where(u => u.id == user1.id).FirstOrDefault();
                     user.numOfTokens += order.numOfTokens;
                     var number     = user.numOfTokens;
                     var hubContext = GlobalHost.ConnectionManager.GetHubContext <HubProjekat>();
                     hubContext.Clients.All.userUp1(user.numOfTokens, user.id);
                     db.Entry(user).State  = EntityState.Modified;
                     db.Entry(order).State = EntityState.Modified;
                     db.SaveChanges();
                     EmailClass.Email(user.mail, "Token order", "Token order completed");
                     transaction.Commit();
                 }
                 else
                 {
                     order.status          = "CANCELED";
                     db.Entry(order).State = EntityState.Modified;
                     db.SaveChanges();
                     ViewBag.Mesage = "The order is canceled";
                     transaction.Commit();
                 }
             }
         }
         catch (Exception e)
         {
             transaction.Rollback();
             ViewBag.Message = "There is an error in transaction";
             log.Error($"Error-not completed token order on {DateTime.Now}");
         }
     }
     return(RedirectToAction("TokenOrders", "TokenOrder"));
 }