public async Task SendLike( bool isLiked, string messageId, PeerMessage peer, string sessionId, ILogger log) { var message = new LikeChatMessage { IsLiked = isLiked, MessageId = messageId, Peer = peer }; var json = JsonConvert.SerializeObject(message); var likeUrl = $"{_hostNameFree}/like-chat"; var httpRequest = new HttpRequestMessage(HttpMethod.Post, likeUrl); httpRequest.Headers.Add(Constants.GroupIdHeaderKey, sessionId); httpRequest.Content = new StringContent(json); var response = await _http.SendAsync(httpRequest); if (!response.IsSuccessStatusCode) { IsInError = true; log.LogError($"Issue sending chat: {response.StatusCode} / {response.ReasonPhrase}"); ErrorStatus = "Error connecting to Chat service, try to refresh the page and send again"; return; } IsInError = false; ErrorStatus = null; log.LogDebug($"Like sent {messageId} / {isLiked}"); Status = "Like sent"; }
public async Task ReceiveLikeChat( Action raiseUpdateEvent, Func <Task> saveChats, LikeChatMessage receivedMessage, IList <Chat> allChats, string peerId, ILogger log) { log.LogTrace("-> ChatProxy.ReceiveChat(ListOfChats)"); if (receivedMessage.Key != SecretKey) { log.LogError("Received message with invalid key"); return; } var likedChat = allChats.FirstOrDefault(c => c.UniqueId == receivedMessage.MessageId); if (likedChat != null) { var like = likedChat.Likes .FirstOrDefault(l => l.PeerId == receivedMessage.Peer.PeerId); if (receivedMessage.IsLiked) { if (like == null) { var customName = receivedMessage.Peer.CustomName; if (receivedMessage.Peer.PeerId == peerId) { customName = Constants.YouName; } likedChat.Likes.Add(new PeerMessage { CustomName = customName, PeerId = receivedMessage.Peer.PeerId }); } } else { if (like != null) { likedChat.Likes.Remove(like); } } } UpdateChatStyles(likedChat, peerId); if (raiseUpdateEvent != null) { raiseUpdateEvent(); } if (saveChats != null) { await saveChats(); } }