public IActionResult EffectBuy(BuyAddArticleViewModel bvm) { var add = context.Adds.Include(a => a.Article) .Single(a => a.ArticleId == bvm.Add.ArticleId && a.UserId == bvm.Add.UserId); if (bvm.AmountToBuy > bvm.Add.Amount) { ModelState.AddModelError("AmountToBuy", "La cantidad a comprar debe ser menor que la disponible en el anuncio."); } if (!ModelState.IsValid) { BuyAddArticleViewModel newBvw = new BuyAddArticleViewModel { Add = add, CustomerId = bvm.CustomerId, AmountToBuy = bvm.AmountToBuy, Address = bvm.Address }; return(View("BuyAddArticle", newBvw)); } var newOrder = new Order { CustomerId = bvm.CustomerId, ArticleId = bvm.Add.ArticleId, Date = DateTime.Now, Amount = bvm.AmountToBuy, Address = bvm.Address, ShippingCharge = bvm.ShippingCharge }; context.Orders.Add(newOrder); context.SaveChanges(); var totalCharge = newOrder.Amount * bvm.Add.Article.Price + newOrder.ShippingCharge; return(RedirectToAction("GetPaymentMethod", "PaymentGateway", new { userId = newOrder.CustomerId, articleId = newOrder.ArticleId, orderDateTicks = newOrder.Date.Ticks, charge = totalCharge })); }
public IActionResult BuyAddArticle(string uid, int aid) { var userName = User.Identity.Name; if (userName == null) { return(RedirectToAction("Login", "User")); } var userId = context.Users.Single(u => u.UserName == userName).Id; var add = context.Adds.Include(a => a.Article) .Include(a => a.User) .Single(a => a.UserId == uid && a.ArticleId == aid); var buyViewModel = new BuyAddArticleViewModel { Add = add, CustomerId = userId }; return(View(buyViewModel)); }