/// <summary> /// Request generic list data from service provider based upon a given config / query. /// </summary> /// <typeparam name="T">Strong type of model.</typeparam> /// <param name="config">FacebookDataConfig instance.</param> /// <param name="pageSize">Upper limit of records to return.</param> /// <param name="maxPages">Upper limit of pages to return.</param> /// <param name="fields">A comma separated string of required fields, which will have strongly typed representation in the model passed in.</param> /// <returns>Strongly typed list of data returned from the service.</returns> public async Task <IncrementalLoadingCollection <FacebookRequestSource <T>, T> > RequestAsync <T>(FacebookDataConfig config, int pageSize, int maxPages, string fields = "id,message,from,created_time,link,full_picture") { if (Provider.LoggedIn) { var requestSource = new FacebookRequestSource <T>(config, fields, pageSize.ToString(), maxPages); return(new IncrementalLoadingCollection <FacebookRequestSource <T>, T>(requestSource)); } var isLoggedIn = await LoginAsync(); if (isLoggedIn) { return(await RequestAsync <T>(config, pageSize, maxPages, fields)); } return(null); }
/// <summary> /// Request list data from service provider based upon a given config / query. /// </summary> /// <typeparam name="T">Strong type of model.</typeparam> /// <param name="config">FacebookDataConfig instance.</param> /// <param name="maxRecords">Upper limit of records to return.</param> /// <param name="fields">A comma separated string of required fields, which will have strongly typed representation in the model passed in.</param> /// <returns>Strongly typed list of data returned from the service.</returns> public async Task <List <T> > RequestAsync <T>(FacebookDataConfig config, int maxRecords = 20, string fields = "id,message,from,created_time,link,full_picture") { if (Provider.LoggedIn) { var requestSource = new FacebookRequestSource <T>(config, fields, maxRecords.ToString(), 1); var list = await requestSource.GetPagedItemsAsync(0, maxRecords); return(new List <T>(list)); } var isLoggedIn = await LoginAsync(); if (isLoggedIn) { return(await RequestAsync <T>(config, maxRecords, fields)); } return(null); }