protected override void OnStartListeningToHub() { _hubConnection.On <ReceivedMessageSignalArgs>(_RECEIVE_NEW_GROUP_MESSAGE, (args) => { GroupMessageReceived.Invoke(this, args); }); _hubConnection.On <ReceivedMessageSignalArgs>(_RECEIVE_NEW_TEAM_MESSAGE, (args) => { TeamMessageReceived.Invoke(this, args); }); _hubConnection.On <ReceivedMessageSignalArgs>(_RECEIVE_NEW_FAMILY_MESSAGE, (args) => { FamilyMessageReceived.Invoke(this, args); }); _hubConnection.On <object>(_UNREAD_GROUP_MESSAGES, (args) => { try { ResolvedUnreadGroupMessagesSignalArgs resolvedUnreadGroupMessagesSignalArgs = JsonConvert.DeserializeObject <ResolvedUnreadGroupMessagesSignalArgs>(args.ToString()); RefreshedUnreadGroupingMessages.Invoke(this, resolvedUnreadGroupMessagesSignalArgs); } catch (Exception exc) { Debugger.Break(); throw new InvalidOperationException("GroupMessagingService on SignalR UnreadedMessages", exc); } }); }
//private void OnGroupMessagingServiceResolvedUnreadGroupMessages(object sender, ResolvedUnreadGroupMessagesSignalArgs e) { // try { // if (e.GroupChatCounters != null && e.GroupChatCounters.Any()) { // PossibleConversations.ForEach<PossibleConverstionItem>(possibleConversation => possibleConversation.UnreadMessagesCount = 0); // UnreadMessages = 0; // e.GroupChatCounters.ForEach(groupChat => { // PossibleConverstionItem possibleConverstionItem = PossibleConversations.FirstOrDefault(possibleConversation => groupChat.Id == possibleConversation.Companion.Id); // if (possibleConverstionItem != null) { // possibleConverstionItem.UnreadMessagesCount = (int)groupChat.Count; // } // }); // UnreadMessages = PossibleConversations.Sum<PossibleConverstionItem>(possibleConversation => possibleConversation.UnreadMessagesCount); // } // else { // PossibleConversations.ForEach<PossibleConverstionItem>(possibleConversation => possibleConversation.UnreadMessagesCount = 0); // UnreadMessages = 0; // } // } // catch (Exception exc) { // Crashes.TrackError(exc); // Debugger.Break(); // PossibleConversations?.ForEach<PossibleConverstionItem>(possibleConversation => possibleConversation.UnreadMessagesCount = 0); // UnreadMessages = 0; // } // GlobalSettings.Instance.AppMessagingEvents.MessagingEvents.RefreshedUnreadMessagesForConverseClusterTabInvoke(this, UnreadMessages); //} private void OnGroupMessagingServiceResolvedUnreadGroupMessages(object sender, ResolvedUnreadGroupMessagesSignalArgs e) { try { if (e.GroupChatCounters != null && e.GroupChatCounters.Any()) { //PossibleConversations.ForEach<PossibleConverstionItem>(possibleConversation => possibleConversation.UnreadMessagesCount = 0); //UnreadMessages = 0; //e.GroupChatCounters.ForEach(groupChat => { // PossibleConverstionItem possibleConverstionItem = PossibleConversations.FirstOrDefault(possibleConversation => groupChat.Id == possibleConversation.Companion.Id); // if (possibleConverstionItem != null) { // possibleConverstionItem.UnreadMessagesCount = (int)groupChat.Count; // } //}); //UnreadMessages = PossibleConversations.Sum<PossibleConverstionItem>(possibleConversation => possibleConversation.UnreadMessagesCount); PossibleConversations.ForEach(possibleConversation => { GroupUnreadMessages unreadMessages = e.GroupChatCounters.FirstOrDefault(groupUnreadMessages => groupUnreadMessages.Id == possibleConversation.Companion.Id); possibleConversation.UnreadMessagesCount = unreadMessages != null ? (int)unreadMessages.Count : 0; }); UnreadMessages = PossibleConversations.Sum <PossibleConverstionItem>(possibleConversation => possibleConversation.UnreadMessagesCount); } else { PossibleConversations.ForEach <PossibleConverstionItem>(possibleConversation => possibleConversation.UnreadMessagesCount = 0); UnreadMessages = 0; } } catch (Exception exc) { Crashes.TrackError(exc); Debugger.Break(); PossibleConversations?.ForEach <PossibleConverstionItem>(possibleConversation => possibleConversation.UnreadMessagesCount = 0); UnreadMessages = 0; } GlobalSettings.Instance.AppMessagingEvents.MessagingEvents.RefreshedUnreadMessagesForConverseClusterTabInvoke(this, UnreadMessages); }