public async Task <RatingVm> PostRating(RatingCreateRequest request) { var claimsIdentity = User.Identity as ClaimsIdentity; string userId = claimsIdentity.FindFirst("sub").Value; var rating = new RatingProduct { TotalStar = request.TotalStar, Comment = request.Comment, Date = DateTime.Now, ApplicationUserId = userId, IDProduct = request.IDProduct }; _context.RatingProducts.Add(rating); await _context.SaveChangesAsync(); var ratingVm = new RatingVm() { IDRating = rating.IDRating, TotalStar = rating.TotalStar, Comment = rating.Comment, Date = rating.Date, UserId = rating.ApplicationUserId, IDProduct = rating.IDProduct }; return(ratingVm); }
public async Task <RatingProduct> CreateAsync(int IDProduct, string UserId, int TotalStar) { RatingProduct rate = new RatingProduct { IDProduct = IDProduct, ApplicationUserId = UserId, TotalStar = TotalStar }; var result = await _context.RatingProducts.Where(r => r.ApplicationUserId == UserId && r.IDProduct == IDProduct).FirstOrDefaultAsync(); if (result != null) { result.TotalStar = rate.TotalStar; await _context.SaveChangesAsync(); } else { _context.Add(rate); await _context.SaveChangesAsync(); } return(rate); }