/// <summary>
        /// Reage a uma publicação
        /// </summary>
        /// <param name="userId">Usuario que reagiu</param>
        /// <param name="publicationId">publicação reagida</param>
        /// <param name="like">Reação (like = true, dislike = false)</param>
        public async Task <bool> React(ObjectId userId, ObjectId publicationId, bool?like)
        {
            var publicacao = await SearchPublicationById(publicationId);

            if (like == null)
            {
                return(await _publicationDao.RemoveLikeAndDislike(userId, publicationId));
            }
            else
            {
                if (like == true)
                {
                    if (publicacao.Likes.Contains(userId))
                    {
                        return(false);
                    }
                    return(await _publicationDao.Like(userId, publicationId));
                }
                else
                {
                    if (publicacao.Dislikes.Contains(userId))
                    {
                        return(false);
                    }
                    return(await _publicationDao.Dislike(userId, publicationId));
                }
            }
        }