SellerReview InitializeSellerReview() { SellerReview review = new SellerReview { SellerId = 0, AccountId = 0, BuyerRating = 3, ReviewDescription = "Good item", Account = InitializeAccount() }; context.Add(review); return(review); }
public async Task <IActionResult> Edit(int id, [Bind("SellerReviewId,SellerId,BuyerRating,ReviewDescription")] SellerReview sellerReview) { string userId = ""; try { userId = HttpContext.Session.GetString("userId"); } catch (Exception) { userId = ""; } var account = await _context.Accounts .FirstOrDefaultAsync(s => s.AccountId.ToString() == userId); if (ModelState.IsValid) { try { sellerReview.Account = account; sellerReview.AccountId = account.AccountId; _context.Update(sellerReview); await _context.SaveChangesAsync(); var sellerId = sellerReview.SellerId; // All the reviews var reviewContext = _context.SellerReviews .Include(s => s.Seller) .Include(s => s.Seller.Account) .Include(s => s.Account) .Where(s => s.Seller.SellerId == sellerId); var sellerAccount = await _context.SellerAccounts .Include(s => s.Account) .FirstOrDefaultAsync(s => s.SellerId == sellerId); sellerAccount.AverageRating = Math.Round((double)reviewContext.Average(s => s.BuyerRating), 2); _context.Update(sellerAccount); await _context.SaveChangesAsync(); TempData["Message"] = "Successfully edited review!"; } catch (DbUpdateConcurrencyException) { if (!SellerReviewExists(sellerReview.SellerReviewId)) { return(NotFound()); } else { throw; } } catch (Exception) { // Do nothing. This should not be reached } return(RedirectToAction(nameof(Index))); } ViewData["SellerId"] = new SelectList(_context.SellerAccounts, "SellerId", "SellerId", sellerReview.SellerId); return(View(sellerReview)); }
public async Task <IActionResult> Create([Bind("SellerReviewId,AccountId,SellerId,BuyerRating,ReviewDescription")] SellerReview sellerReview) { string userId = ""; try { userId = HttpContext.Session.GetString("userId"); } catch (Exception) { userId = ""; } string id = ""; try { id = HttpContext.Session.GetString("sellerid"); } catch (Exception) { id = ""; } var account = await _context.Accounts .FirstOrDefaultAsync(s => s.AccountId.ToString() == userId); // seller id is incorrect if (ModelState.IsValid) { try { sellerReview.SellerId = Convert.ToInt32(id); sellerReview.Account = account; sellerReview.AccountId = account.AccountId; _context.Add(sellerReview); await _context.SaveChangesAsync(); TempData["Message"] = "Successfully added review!"; var sellerId = sellerReview.SellerId; // All the reviews var reviewContext = _context.SellerReviews .Include(s => s.Seller) .Include(s => s.Seller.Account) .Include(s => s.Account) .Where(s => s.Seller.SellerId == sellerId); var sellerAccount = await _context.SellerAccounts .Include(s => s.Account) .FirstOrDefaultAsync(s => s.SellerId == sellerId); sellerAccount.AverageRating = Math.Round((double)reviewContext.Average(s => s.BuyerRating), 2); _context.Update(sellerAccount); await _context.SaveChangesAsync(); } catch (Exception) { // Do nothing, error should never happen } return(RedirectToAction(nameof(Index))); } ViewData["SellerId"] = new SelectList(_context.SellerAccounts, "SellerId", "SellerId", sellerReview.SellerId); return(View(sellerReview)); }