async void GetStats(bool autoUpdate) { ProgressBar = 0; DatabaseProgressBar.IsVisible = false; BindingContext = this; _errors = false; SettingsData settings = new SettingsData(); AsicStandardStatsObject statsObject = new AsicStandardStatsObject(); await Task.Run(() => { settings = Settings.Get(ProfileManagement.GlobalSelectedProfile, XamarinPatch).Result; }); AsicStats asicStats = new AsicStats(settings); if (settings.DataBase == true) { try { BlockButtons("Getting from DataBase"); await Task.Run(() => { statsObject = asicStats.GetDataBase(); }); } catch (Exception exception) { ShowMessage("DataBase Error"); _errors = true; } } else { try { BlockButtons("Getting from Localhost"); await Task.Run(() => { statsObject = asicStats.GetLocalhost(); }); } catch (Exception exception) { ShowMessage("Localhost Error"); _errors = true; } if (settings.Server == true & _errors == false) { BlockButtons("Update Database"); DatabaseProgressBar.IsVisible = true; Result res = Result.ErrorExist; int progress = 0; bool update = true; new Thread(() => { do { Thread.Sleep(500); ProgressBar = Convert.ToDouble(progress) / 100; } while (update == true); }).Start(); await Task.Run(() => { res = asicStats.SetDataBase(statsObject, ref progress); }); if (res == Result.ErrorExist) { ShowMessage("DataBase Error"); _errors = true; } DatabaseProgressBar.IsVisible = false; update = false; } } if (autoUpdate == false | ButtonStats.Text == "GET") { UnlockButtons(_errors, "AntStats Xamarin"); } else { ProgressLabel.Text = default; } if (_errors == false) { SetAsicColumnTable(statsObject); } }