internal void ClearGeneralChatMessages(Dictionary <string, List <int> > generalChatMessagesByChatApplicationToRemove)
        {
            foreach (var item in generalChatMessagesByChatApplicationToRemove)
            {
                //get the current general chat messages based on the application id
                GeneralChatMessagesByChatApplication.TryGetValue(item.Key, out var currentGeneralChatMessages);

                //loop through the messages and remove at indexes in the list of items to remove
                for (int i = 0; i < item.Value.Count; i++)
                {
                    currentGeneralChatMessages?.RemoveAt(item.Value[i]);
                }
            }
        }
        public void AddChatMessage(ChatMessage message, GroupType groupType)
        {
            switch (groupType)
            {
            case GroupType.General:
                GeneralChatMessagesByChatApplication.TryGetValue(message.AppId, out var generalChatMessages);
                generalChatMessages?.Add(message);
                break;

            case GroupType.Private:
                break;
            }

            //add to chat history singleton, all chats must be added to chat history
            ChatMessageHistoryByChatApplication.TryGetValue(message.AppId, out var chatHistory);
            chatHistory?.Add(message);
        }