Пример #1
0
 public void Update(PostPoint postPoint)
 {
     _session.Clear();
     _unitOfWork.BeginTransaction(_session);
     _unitOfWork.PostPointRepository.Update(_session, postPoint);
     _unitOfWork.Commit();
 }
Пример #2
0
        public (string message, long points) DownvotePost(ApplicationUser user, int postId)
        {
            _session.Clear();
            var post      = _unitOfWork.PostRepository.Get(_session, postId);
            var postPoint = _unitOfWork.PostPointRepository.Get(_session, x => x.Post.Id == postId && x.ApplicationUser.Id == user.Id).FirstOrDefault();

            if (postPoint != null)
            {
                if (postPoint.IsUpvoted)
                {
                    try
                    {
                        _unitOfWork.BeginTransaction(_session);
                        postPoint.IsUpvoted = false;
                        _unitOfWork.PostPointRepository.Update(_session, postPoint);
                        _unitOfWork.Commit();
                        _session.Clear();

                        return(StringConstants.SUCCESS, _unitOfWork.PostPointRepository.GetVotes(_session, postId).overall);
                    }
                    catch (Exception ex)
                    {
                        return(ex.Message, _unitOfWork.PostPointRepository.GetVotes(_session, postId).overall);
                    }
                }

                return(StringConstants.DUPLICATE, _unitOfWork.PostPointRepository.GetVotes(_session, postId).overall);
            }
            else
            {
                postPoint = new PostPoint
                {
                    ApplicationUser = user,
                    IsUpvoted       = false,
                    Post            = post
                };

                _unitOfWork.BeginTransaction(_session);
                _unitOfWork.PostPointRepository.Create(_session, postPoint);
                _unitOfWork.Commit();
                _session.Clear();

                return(StringConstants.SUCCESS, _unitOfWork.PostPointRepository.GetVotes(_session, postId).overall);
            }
        }