public async Task <IActionResult> PostRatings(IFormCollection request) { var id = Convert.ToInt32(request["id"]); var numberRate = Convert.ToInt32(request[$"stars-{id}"]); var accessToken = await HttpContext.GetTokenAsync(OpenIdConnectParameterNames.AccessToken); RatingProductRequest rating = new RatingProductRequest() { ProductId = id, NumberRating = numberRate, }; HttpResponseMessage Res = await RequestServices.PostAsync(APIProductEndPoint.Ratings, accessToken, rating); if (Res.IsSuccessStatusCode) { TempData["RATINGS_SUCESS"] = "RATINGS_SUCESS"; return(View("Ratings")); } else { TempData["ERROR"] = "ERROR"; return(View("Ratings")); } }
// this medthod evaluated for product public async Task <bool> ratingProduct(RatingProductRequest request) { // create new ratings Random getrandom = new Random(); int random = getrandom.Next(1, 999); var rating = new RattingProduct() { Id = random, UserId = _repoUser.getUserID(), ProductId = request.ProductId, NumberRating = request.NumberRating, Date = Convert.ToDateTime(DateTime.Now.ToString("dddd, dd MMMM yyyy HH:mm:ss")), }; // add _context.RattingProduct.Add(rating); // save _context.SaveChanges(); // after save then update ratings for this product var product = _context.Products.Where(p => p.Id == request.ProductId).FirstOrDefault(); product.Rating = avgRatings(request.ProductId); _context.SaveChanges(); return(true); }
public async Task <IActionResult> rattingRequest(RatingProductRequest request) { var result = await _repo.ratingProduct(request); return(Ok(result)); }