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); }
protected MinMaxQueryParameters(IMinMaxQueryParameters source) : base(source) { if (source == null) { return; } PageSize = source.PageSize; SinceId = source.SinceId; MaxId = source.MaxId; ContinueMinMaxCursor = source.ContinueMinMaxCursor; }
public void AddMinMaxQueryParameters(StringBuilder query, IMinMaxQueryParameters parameters) { query.AddParameterToQuery("count", parameters.PageSize); query.AddParameterToQuery("since_id", parameters.SinceId); query.AddParameterToQuery("max_id", parameters.MaxId); }