public IActionResult RateSuplement(SuplementRatingCreate suplementRating) { UserInfo userInfo = _authenticationService.IsAuthorized(Request, "CLIENT"); _ratingService.CreateOrUpdateSuplementRating(suplementRating, userInfo); return(NoContent()); }
public void CreateOrUpdateSuplementRating(SuplementRatingCreate ratingCreate, UserInfo userInfo) { if (ratingCreate.Rating < 1 || ratingCreate.Rating > 5) { throw new InvalidRatingValueException("Ocjena moze biti od 1 - 5"); } Suplement suplement = _context.Suplements.Find(ratingCreate.SuplementId); if (suplement == null) { throw new ResourceNotFoundException($"Suplement with id: {ratingCreate.SuplementId} not found."); } SuplementsRating dbSuplementRating = _context.SuplementsRatings .Where(x => x.ClientId == userInfo.Id) .Where(x => x.SuplementId == ratingCreate.SuplementId) .FirstOrDefault(); if (dbSuplementRating == null) { dbSuplementRating = new SuplementsRating(); dbSuplementRating.ClientId = userInfo.Id; dbSuplementRating.SuplementId = ratingCreate.SuplementId; dbSuplementRating.Rating = ratingCreate.Rating; _context.SuplementsRatings.Add(dbSuplementRating); } else { dbSuplementRating.Rating = ratingCreate.Rating; _context.SuplementsRatings.Update(dbSuplementRating); } _context.SaveChanges(); }