Exemplo n.º 1
0
        public OperationResultVo ContentUnlike(Guid currentUserId, Guid targetId)
        {
            try
            {
                IEnumerable <UserContentLike> likes = userContentDomainService.GetLikes(x => x.ContentId == targetId);
                UserContentLike existingLike        = likes.FirstOrDefault(x => x.ContentId == targetId && x.UserId == currentUserId);

                if (existingLike == null)
                {
                    return(new OperationResultVo("Content not liked"));
                }
                else
                {
                    userContentDomainService.RemoveLike(currentUserId, targetId);

                    unitOfWork.Commit();

                    int newCount = likes.Count() - 1;

                    return(new OperationResultVo <int>(newCount));
                }
            }
            catch (Exception ex)
            {
                string msg = $"Unable Unlike the content.";
                logger.Log(LogLevel.Error, ex, msg);
                throw;
            }
        }
Exemplo n.º 2
0
        public OperationResultVo ContentLike(Guid currentUserId, Guid targetId)
        {
            try
            {
                IEnumerable <UserContentLike> likes = userContentDomainService.GetLikes(x => x.ContentId == targetId);
                bool alreadyLiked = likes.Any(x => x.UserId == currentUserId);

                if (alreadyLiked)
                {
                    return(new OperationResultVo("Content already liked"));
                }
                else
                {
                    UserContentLike model = new UserContentLike
                    {
                        ContentId = targetId,
                        UserId    = currentUserId
                    };

                    userContentDomainService.AddLike(model);

                    unitOfWork.Commit();

                    int newCount = likes.Count() + 1;

                    return(new OperationResultVo <int>(newCount));
                }
            }
            catch (Exception ex)
            {
                return(new OperationResultVo(ex.Message));
            }
        }
        public async Task <bool> AddLike(UserContentLike model)
        {
            FilterDefinition <UserContent> filter = Builders <UserContent> .Filter.Where(x => x.Id == model.ContentId);

            UpdateDefinition <UserContent> add = Builders <UserContent> .Update.AddToSet(c => c.Likes, model);

            UpdateResult result = await DbSet.UpdateOneAsync(filter, add);

            return(result.IsAcknowledged && result.MatchedCount > 0);
        }
 public void AddLike(UserContentLike model)
 {
     Task.Run(async() => await repository.AddLike(model));
 }