/// <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); } }