public async Task <OperationResultVo> Comment(CommentViewModel vm)
        {
            try
            {
                bool commentAlreadyExists = await userContentDomainService.CheckIfCommentExists <UserContentComment>(x => x.UserContentId == vm.UserContentId && x.UserId == vm.UserId && x.Text.Equals(vm.Text));

                if (commentAlreadyExists)
                {
                    return(new OperationResultVo(false)
                    {
                        Message = "Duplicated Comment"
                    });
                }
                else
                {
                    UserContentComment model = mapper.Map <UserContentComment>(vm);

                    userContentDomainService.Comment(model);

                    await unitOfWork.Commit();

                    int newCount = userContentDomainService.CountComments(x => x.UserContentId == model.UserContentId && x.UserId == model.UserId);

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

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

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

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