public async Task <ActionResult <RateableProductViewModel> > RateProductAsync( [FromRoute] int productId, [FromBody] int productRate, CancellationToken cancellationToken) { Product product = await productRepository.GetProductByIdAsync(productId); if (product is null) { return(NotFound()); } IEnumerable <ProductRate> productRates = await productRepository.GetProductRatesByIdAsync(productId); product.ProductRates = (ICollection <ProductRate>)productRates; productRepository.RateProduct(product, productRate); productRepository.UpdateAvgRate(product, productRates); await dbContext.SaveChangesAsync(cancellationToken); return(new RateableProductViewModel { Name = product.Name, Description = product.Description, Price = product.Price, Category = product.Category, // We are going to test it as a single user, so it will do the trick CurrentRate = productRate, AverageRate = product.AverageRate, MinRate = product.RateRange.MinRate, MaxRate = product.RateRange.MaxRate, }); }
public async Task InsertRankingAsync(Ranking entry) { await _db.AddAsync(entry); await _db.SaveChangesAsync(); }