public async Task <IActionResult> OnPostLeavingReviewAsync(int productid, int reviews, int orderid) { var user = await _userManager.GetUserAsync(User); if (user == null) { return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.")); } var userId = _userManager.GetUserId(User); var review = new Review { ReviewProductId = productid, ReviewUserId = userId, ReviewOrderId = orderid, ReviewRating = reviews }; var order = _db.Orderdetails.First(o => o.DetailId == orderid); order.Reviewed = true; _db.Orderdetails.Update(order); await _db.SaveChangesAsync(); await _db.Reviews.AddAsync(review); await _db.SaveChangesAsync(); return(RedirectToPage("Orders")); }
public async Task <IActionResult> ProductAsync(int?id) { if (id == null) { return(NotFound()); } dynamic metamodel = new ExpandoObject(); metamodel.Product = await _db.Products.Include(m => m.ProductCategory).FirstOrDefaultAsync(m => m.ProductId == id); if (metamodel.Product == null) { return(NotFound()); } var productivity = _db.Products.First(o => o.ProductId == id); if (productivity.ProductStock <= 0) { productivity.ProductLive = 0; _db.Products.Update(productivity); await _db.SaveChangesAsync(); } metamodel.ProductSizeOptions = _db.Options.Where(o => o.OptionsGroup.OptionGroupName.ToLower() == "size" && o.Productoptions.Any(m => m.ProductId == id)); metamodel.ProductColorOptions = _db.Options.Where(o => o.OptionsGroup.OptionGroupName.ToLower() == "color" && o.Productoptions.Any(m => m.ProductId == id)); var category = _db.Productcategories.First(o => o.Products.Any(m => m.ProductId == id)); metamodel.SimilarProducts = _db.Products.Include(m => m.ProductCategory) .Where(m => m.ProductCategory.CategoryId == category.CategoryId && m.ProductId != id) .OrderByDescending(o => o.ProductId) .Take(12); metamodel.VarientProducts = _db.Products.Include(m => m.ProductCategory) .Where(m => m.ProductCategory.CategoryId != category.CategoryId && m.ProductId != id) .OrderByDescending(o => o.ProductId) .Take(12); var review = _db.Reviews.Where(o => o.ReviewProductId == id); var totalled = review.Count(); var notochord = review.Count(o => o.ReviewRating == 1); var goodies = review.Count(o => o.ReviewRating == 2); var bettering = review.Count(o => o.ReviewRating == 3); var bestrew = review.Count(o => o.ReviewRating == 4); ViewBag.TotalReview = totalled; if (totalled == 0) { return(metamodel.Product == null?NotFound() : (IActionResult)View(metamodel)); } ViewBag.NotGoodReview = 100 * notochord / totalled; ViewBag.GoodReview = 100 * goodies / totalled; ViewBag.BetterReview = 100 * bettering / totalled; ViewBag.BestReview = 100 * bestrew / totalled; return(metamodel.Product == null?NotFound() : (IActionResult)View(metamodel)); }
public async Task <IActionResult> OnPostDeleteAsync(int id) { var wishlist = await _db.Wishlists.FindAsync(id); if (wishlist == null) { return(NotFound()); } _db.Wishlists.Remove(wishlist); await _db.SaveChangesAsync(); return(RedirectToPage("Wishlist")); }
public async Task <IActionResult> DeleteCategoryAsync(int?id) { var user = await _userManager.GetUserAsync(User); if (user == null) { return(NotFound($"Unable to load user with ID '{_userManager.GetUserId(User)}'.")); } if (id == null) { return(NotFound()); } var category = _db.Productcategories.First(o => o.CategoryId == id); if (category == null) { return(NotFound()); } _db.Productcategories.Remove(category); await _db.SaveChangesAsync(); return(RedirectToAction("Categories")); }