            if (AreMessagesCached(channelId))
            {
                return GetLocalMessages(channelId);
            }
            return await GetServerMessages(channelId);
        }

        public async Task<Message> GetMessageAsync(string channelId, string messageId)
        {
            return await _channelService.GetChannelMessage(channelId, messageId);
        }

        private bool AreMessagesCached(string channelId)
        {
            return messages.Select(p => p.Value)