public override List <T> Execute() { List <T> result = new List <T>(); try { RootListData <T> listData = DownloadPageData(0); UpdateData(listData); if (listData != null) { if (listData.TotalPages > 1 && TaskParameters.DownloadCountType == DownloadCountType.All) { for (int pageIndex = listData.CurrentPage + 1; pageIndex < listData.TotalPages; pageIndex++) { UpdateData(DownloadPageData(pageIndex)); } } } return(Result); } catch (AggregateException ex) { var serverException = ex.GetBaseException() as ServerException; if (serverException != null) { if (serverException.StatusCode == HttpStatusCode.NotFound) { return(result); } else { AppProvider.Log.WriteLine(LogChannel.Exception, ex); } } } catch (Exception ex) { AppProvider.Log.WriteLine(LogChannel.Exception, ex); } return(null); }
protected void UpdateData(RootListData <T> data) { if (data != null) { Result.AddRange(data.Data); if (DynamicList != null) { DynamicList.UpdateData(data.Data); } if (TaskParameters.IsSaveToDb) { DbClient.Instance.SaveData <T> (data.Data).ConfigureAwait(false); } OnSaveData(data.Data); } }