public async Task <bool> SyncAllAsync(bool syncUserSpecific) { if (!IsInitialized) { await InitializeAsync(); } Device.BeginInvokeOnMainThread(async() => { await ToastService.Show(Resources.AppResources.AppSyncing); }); here : var taskList = new List <Task <bool> >(); taskList.Add(UserStore.SyncAsync()); taskList.Add(CustomerStore.SyncAsync()); taskList.Add(PartnerCategoryStore.SyncAsync()); taskList.Add(CheckinStore.SyncAsync()); taskList.Add(PartnerGradeStore.SyncAsync()); taskList.Add(PartnerTitleStore.SyncAsync()); taskList.Add(CurrencyStore.SyncAsync()); taskList.Add(CountryStore.SyncAsync()); taskList.Add(SaleOrderStore.SyncAsync()); taskList.Add(SaleOrderLineStore.SyncAsync()); taskList.Add(MessageStore.SyncAsync()); taskList.Add(DocumentStore.SyncAsync()); taskList.Add(CompanyStore.SyncAsync()); taskList.Add(AccountTaxStore.SyncAsync()); taskList.Add(SaddleStore.SyncAsync()); taskList.Add(ServiceStore.SyncAsync()); taskList.Add(AccessoryStore.SyncAsync()); taskList.Add(StateStore.SyncAsync()); taskList.Add(ContractStore.SyncAsync()); var successes = await Task.WhenAll(taskList).ConfigureAwait(false); if (successes.Any(x => x == false)) { if (await Plugin.Connectivity.CrossConnectivity.Current.IsRemoteReachable("https://www.google.com")) { goto here; } } if (syncUserSpecific) { await ContractStore.GetContractTemplate(); //Syncs the Delivery Fee api data await SaleOrderStore.GetDeliveryFees(true); // add stores that are user specific data await DocumentStore.OfflineUploadSync(); await SyncLegalFiles(); } Device.BeginInvokeOnMainThread(async() => { await ToastService.Hide(); }); return(successes.Any(x => !x)); //if any were a failure. }