Exemple #1
0
        /// <summary>
        /// Deleting like for an item
        /// </summary>
        /// <param name="likeModel"></param>
        /// <returns></returns>
        public async Task <IHttpActionResult> UnLike(LikeModel like)
        {
            like.UserID    = CurrentUser.UserID;
            like.CreatedOn = DateTime.Now;
            ModelState.Remove("post.PostedBy");
            ModelState.Remove("post.PostedDate");
            like.PostedByName   = CurrentUser.FullName;
            like.PostedByAvatar = CurrentUser.ProfilePicture;

            if (ModelState.IsValid)
            {
                try
                {
                    BroadcastLike model = _post.UnLike(like);
                    await _broadcaster.UnLike(model, like.broadCastType);

                    return(Ok(model.TotalLikes));
                }
                catch (Exception ex)
                {
                    Logs.Error("Error removing like to item", ex);
                    return(BadRequest(ex.Message));
                }
            }
            else
            {
                return(BadRequest(ModelState.JsonValidation()));
            }
        }
        /// <summary>
        /// broadcast like to item
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        private async Task BroadcastUnLikeToWeb(BroadcastLike model)
        {
            IList <string> connectionIDs = _user.GetFollowerListByConnectID(model.Like.UserID, Enums.PageType.Profile, Enums.FriendshipStatus.FA)
                                           .Where(x => x.ConnectedBy == (byte)Enums.BroadCastType.Web).Select(x => x.ConnectionID).ToList();

            await _postBroadCaster.Clients.Clients(connectionIDs)
            .UnLike(model.Like, model.TotalLikes);
        }
        /// <summary>
        /// Select a broad casting way to new comment to a post
        /// </summary>
        /// <param name="post"></param>
        public async Task UnLike(BroadcastLike model, Enums.BroadCastType BroadCastType)
        {
            try
            {
                switch (BroadCastType)
                {
                case Enums.BroadCastType.Web:
                    await BroadcastUnLikeToWeb(model);

                    break;
                }
            }
            catch (Exception ex)
            {
                ExceptionService.LogError("Error broadcasting comment to post", ex);
            }
        }