code: public Observable<ServiceResponse<Page<RecommendationInner>>> listHistoryForWebAppWithServiceResponseAsync(final String resourceGroupName, final String siteName, final String filter) {
          return listHistoryForWebAppSinglePageAsync(resourceGroupName, siteName, filter)
              .concatMap(new Func1<ServiceResponse<Page<RecommendationInner>>, Observable<ServiceResponse<Page<RecommendationInner>>>>() {
                  @Override
                  public Observable<ServiceResponse<Page<RecommendationInner>>> call(ServiceResponse<Page<RecommendationInner>> page) {
                      String nextPageLink = page.body().nextPageLink();
                      if (nextPageLink == null) {
                          return Observable.just(page);
                      }
                      return Observable.just(page).concatWith(listHistoryForWebAppNextWithServiceResponseAsync(nextPageLink));
                  }
              });
      }
docs: Get past recommendations for an app, optionally specified by the time range.
  Get past recommendations for an app, optionally specified by the time range.
  
  @param resourceGroupName Name of the resource group to which the resource belongs.
  @param siteName Name of the app.
  @param filter Filter is specified by using OData syntax. Example: $filter=channels eq 'Api' or channel eq 'Notification' and startTime eq '2014-01-01T00:00:00Z' and endTime eq '2014-12-31T23:59:59Z' and timeGrain eq duration'[PT1H|PT1M|P1D]
  @throws IllegalArgumentException thrown if parameters fail the validation
  @return the observable to the PagedList&lt;RecommendationInner&gt; object