예제 #1
0
        public IActionResult RateSuplement(SuplementRatingCreate suplementRating)
        {
            UserInfo userInfo = _authenticationService.IsAuthorized(Request, "CLIENT");

            _ratingService.CreateOrUpdateSuplementRating(suplementRating, userInfo);
            return(NoContent());
        }
예제 #2
0
        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();
        }