Esempio n. 1
0
        public ITwitterPageIterator <ITwitterResult <T[]>, long?> Create <T>(IMinMaxQueryParameters parameters, Func <long?, Task <ITwitterResult <T[]> > > getNext) where T : ITwitterIdentifier
        {
            var twitterCursorResult = new TwitterPageIterator <ITwitterResult <T[]>, long?>(
                parameters.MaxId,
                getNext,
                page =>
            {
                if (page.DataTransferObject.Length == 0)
                {
                    return(null);
                }

                return(page.DataTransferObject?.Min(x => x.Id) - 1);
            },
                page =>
            {
                if (parameters.ContinueMinMaxCursor == ContinueMinMaxCursor.UntilPageSizeIsDifferentFromRequested)
                {
                    return(page.DataTransferObject.Length < parameters.PageSize);
                }

                return(page.DataTransferObject.Length == 0);
            });

            return(twitterCursorResult);
        }
Esempio n. 2
0
        protected MinMaxQueryParameters(IMinMaxQueryParameters source) : base(source)
        {
            if (source == null)
            {
                return;
            }

            PageSize             = source.PageSize;
            SinceId              = source.SinceId;
            MaxId                = source.MaxId;
            ContinueMinMaxCursor = source.ContinueMinMaxCursor;
        }
Esempio n. 3
0
 public void AddMinMaxQueryParameters(StringBuilder query, IMinMaxQueryParameters parameters)
 {
     query.AddParameterToQuery("count", parameters.PageSize);
     query.AddParameterToQuery("since_id", parameters.SinceId);
     query.AddParameterToQuery("max_id", parameters.MaxId);
 }