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)); }
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)); }