示例#1
0
        async Task <bool> ProcessMessages(MessagesProcessor messagesProcessor, ConcurrentBag <TgMessage> returnValue, Func <IEnumerable <Message>, IEnumerable <TgMessage> > map)
        {
            try
            {
                var messages = await messagesProcessor.GetMessages();

                if (!messages.Any())
                {
                    return(false);
                }

                var tgMessages = map(messages);

                foreach (var tgMessage in tgMessages)
                {
                    returnValue.Add(tgMessage);
                }
            }
            catch (Exception exception)
            {
                LogManager.GetCurrentClassLogger().Error(exception);

                return(true);
            }

            return(true);
        }
示例#2
0
        async Task <IReadOnlyCollection <TgMessage> > GetMessagesForContactId(int contactId)
        {
            var returnValue = new List <TgMessage>();

            var messagesProcessor = new MessagesProcessor(_client, contactId);

            for (var messages = await messagesProcessor.GetMessages(); messages.Any(); messages = await messagesProcessor.GetMessages())
            {
                var tgMessages = MapMessages(messages);

                returnValue.AddRange(tgMessages);
            }

            return(returnValue.ToArray());
        }