public async Task <bool> SyncFromServer(int method) { timeStart = DateTime.Now; totalRowInserted = 0; totalRowUpdated = 0; int page = 0; Debug.WriteLine("Sync Issue From Server Started!"); if (!Settings.LastSyncIssue.Equals("0")) { await SyncToServerAsync(method); var url = ApiURI.URL_BASE(CurrentAccount) + ApiURI.URL_GET_ISSUE(CurrentUserName, Settings.CurrentPassword, page, Settings.LastSyncIssue); var response = await restClient.GetStringAsync(url); if (!string.IsNullOrWhiteSpace(response) && !response.Equals("[]")) { ProcessData(response); page++; //page increase } else { SetLastSyncIssue(); //NeedToSync = false; } Debug.WriteLine("Sync Issue Time: " + DateTime.Now.Subtract(timeStart).TotalSeconds); Debug.WriteLine("Total Issue Inserted: " + totalRowInserted); Debug.WriteLine("Total Issue Updated: " + totalRowUpdated); Debug.WriteLine("Sync Issue From Server Ended!"); return(await Task.FromResult(true)); } bool NeedToSync = true; while (NeedToSync) { var response = await restClient.GetStringAsync(ApiURI.URL_BASE(CurrentAccount) + ApiURI.URL_GET_ISSUE(CurrentUserName, Settings.CurrentPassword, page, Settings.LastSyncIssue)); if (!string.IsNullOrWhiteSpace(response) && !response.Equals("[]")) { ProcessData(response); page++; //page increase } else { SetLastSyncIssue(); NeedToSync = false; } } Debug.WriteLine("Sync Issue Time: " + DateTime.Now.Subtract(timeStart).TotalSeconds); Debug.WriteLine("Total Issue Inserted: " + totalRowInserted); Debug.WriteLine("Total Issue Updated: " + totalRowUpdated); Debug.WriteLine("Sync Issue From Server Ended!"); return(await Task.FromResult(true)); }