示例#1
0
        public async Task <IActionResult> OnPostAsync()
        {
            var username = userManager.GetUserName(User);

            if (username == null)
            {
                return(RedirectToPage("../Index"));
            }
            if (ModifyCart == null)
            {
                return(RedirectToPage("../Index"));
            }
            var cartitem = cartdb.GetById(ModifyCart.GameId, ModifyCart.PlatformId, username);

            if (cartitem == null)
            {
                return(RedirectToPage("../Index"));
            }
            await Task.Run(async() =>
            {
                cartdb.Delete(cartitem);
                await cartdb.CommitAsync();
                TempData["StatusItem"] = "Your item has been deleted!";
            });

            return(RedirectToPage("./Index"));
        }
        public async Task <IActionResult> OnPostAsync()
        {
            await Task.Run(async() =>
            {
                string username = userManager.GetUserName(User);
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        IEnumerable <Cart> cartitem = cartdb.GetByCartId(username);
                        var transactionOrder        = new Transac
                        {
                            Username  = username,
                            OrderDate = DateTime.Now
                        };
                        transactiondb.Add(transactionOrder);
                        await transactiondb.CommitAsync();
                        foreach (var r in cartitem)
                        {
                            var orderdetail = new OrderDetail
                            {
                                OrderId    = transactionOrder.OrderId,
                                GameId     = r.GameId,
                                PlatformId = r.PlatformId,
                                Quantity   = r.Quantity,
                            };
                            orderdetaildb.Add(orderdetail);
                            await orderdetaildb.CommitAsync();

                            //Generate code
                            for (var i = 0; i < orderdetail.Quantity; i++)
                            {
                                var codeidgenerated = Guid.NewGuid().ToString();
                                var code            = new Code
                                {
                                    CodeId     = codeidgenerated,
                                    OrderId    = orderdetail.OrderId,
                                    GameId     = orderdetail.GameId,
                                    PlatformId = orderdetail.PlatformId
                                };
                                codedb.Add(code);
                                await codedb.CommitAsync();
                            }
                        }

                        cartdb.DeleteItemInCart(username);
                        await cartdb.CommitAsync();

                        await transaction.CommitAsync();
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                        await transaction.RollbackAsync();
                    }
                }
            });

            return(RedirectToPage("../u/Library"));
        }