Пример #1
0
        public IActionResult AddOpinion([FromBody] OpinionForCreationDto opinionFromBody, Guid ratedUserId, Guid ratingUserId)
        {
            if (!_userService.CheckIfUserExists(ratedUserId))
            {
                return(NotFound());
            }

            var opinionToReturn = _opinionService.AddOpinion(opinionFromBody, ratedUserId, ratingUserId);

            return(Created(nameof(GetOpinions), opinionToReturn));
        }
Пример #2
0
        public OpinionDto AddOpinion(OpinionForCreationDto opinion, Guid ratedUserId, Guid ratingUserId)
        {
            var opinionToSave = Mapper.Map <Opinion>(opinion);

            var ratingUser = _dbContext.Users.FirstOrDefault(u => u.Id == ratingUserId);

            ratingUser.GivenOpinions.Add(opinionToSave);

            _dbContext.Users.FirstOrDefault(u => u.Id == ratedUserId).ReceivedOpinions.Add(opinionToSave);
            _dbContext.Opinions.Add(opinionToSave);

            _pointsService.ModifyPoints(ratingUser, new PointsModificationOpinionAdditionStrategy());

            if (_dbContext.SaveChanges() == 0)
            {
                throw new Exception("Could not add opinion");
            }

            return(Mapper.Map <OpinionDto>(opinionToSave));
        }