Example #1
0
        public ITwitterIterator <IMessage> GetMessagesIterator(IGetMessagesParameters parameters)
        {
            var pageIterator = _messageRequester.GetMessagesIterator(parameters);

            return(new TwitterIteratorProxy <ITwitterResult <IMessageCursorQueryResultDTO>, IMessage>(pageIterator,
                                                                                                      twitterResult =>
            {
                var messageEventDtos = twitterResult.DataTransferObject.MessageEvents;
                var messageDtos = messageEventDtos.Select(dto =>
                {
                    var messageDto = new MessageEventWithAppDTO
                    {
                        MessageEvent = dto
                    };

                    var appId = dto.MessageCreate.SourceAppId;
                    if (appId != null && twitterResult.DataTransferObject.Apps != null && twitterResult.DataTransferObject.Apps.ContainsKey(appId.Value))
                    {
                        messageDto.App = twitterResult.DataTransferObject.Apps[appId.Value];
                    }

                    return messageDto as IMessageEventWithAppDTO;
                });

                return _client.Factories.CreateMessages(messageDtos);
            }));
        }