Beispiel #1
0
        SellerReview InitializeSellerReview()
        {
            SellerReview review = new SellerReview
            {
                SellerId          = 0,
                AccountId         = 0,
                BuyerRating       = 3,
                ReviewDescription = "Good item",
                Account           = InitializeAccount()
            };

            context.Add(review);
            return(review);
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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));
        }