private async Task <List <School> > GetListContent() { db.DatabaseManagerAsync database = new db.DatabaseManagerAsync(); InitializeComponent(); var progressBar = this.FindByName <ProgressBar>("progressBar"); progressBar.IsVisible = true; if (!await db.DatabaseManagerAsync.TableExists <School>(database.connection) || !await db.DatabaseManagerAsync.TableExists <CalendarDay>(database.connection)) { await progressBar.ProgressTo(0.3, 100, Easing.Linear); database.CreateNewDatabase(); skolerute.db.CSVParser parser = new db.CSVParser(Constants.URL, database); await parser.RetrieveSchools(); await progressBar.ProgressTo(0.7, 250, Easing.Linear); } List <School> allSchools = new List <School>(); try { allSchools = await database.GetSchools(); await progressBar.ProgressTo(1, 250, Easing.Linear); schools.ItemsSource = allSchools; progressBar.IsVisible = false; GetCoords.IsEnabled = true; return(allSchools); } catch (System.Net.WebException e) { await DisplayAlert("Internett problemer", "Kunne ikke hente ned skolene, prøv igjen senere.", "Ok"); return(null); } catch (Exception e) { await DisplayActionSheet("Feil", "En feil oppstod, prøv igjen.", "Ok"); progressBar.IsVisible = false; return(null); } }
// Event triggered when a school in the list is selected public async void OnSelection(object sender, SelectedItemChangedEventArgs e) { if (e.SelectedItem == null) { return; //ItemSelected is called on deselection, which results in SelectedItem being set to null } string skolenavn = ""; School school = null; if ((e.SelectedItem).GetType() == typeof(string)) { skolenavn = (string)(e.SelectedItem); int index = skolenavn.IndexOf(':'); skolenavn = skolenavn.Remove(index, (skolenavn.Length) - index); school = allSchools.Find(y => y.name == skolenavn); } else { school = (School)e.SelectedItem; skolenavn = school.name; } var action = await DisplayActionSheet("Du valgte: " + skolenavn, "Legg til", "Avbryt"); if (action != null) { string actionNavn = action.ToString(); if (actionNavn == "Legg til") { // Get calendar for chosen school if (!mySchools.Contains(skolenavn)) { mySchools.Add(skolenavn); mineskoler.ItemsSource = mySchools; if (SettingsManager.GetPreference("i") == null) { await SettingsManager.SavePreferenceAsync("i", true); foreach (School x in allSchools) { await SettingsManager.SavePreferenceAsync(x.ID.ToString(), false); } await SettingsManager.SavePreferenceAsync(school.ID.ToString(), true); } else { await SettingsManager.SavePreferenceAsync(school.ID.ToString(), true); } } MessagingCenter.Send(this, "newSchoolSelected"); db.DatabaseManagerAsync database = new db.DatabaseManagerAsync(); db.CSVParser parser = new db.CSVParser(Constants.URL, database); ((ListView)sender).SelectedItem = null; try { await parser.RetrieveCalendar(school); MessagingCenter.Send(this, "choosenSch", school); } catch (System.Net.WebException exception) { await DisplayAlert("Problem med internett", "Kunne ikke laste ned skoleruten, prøv igjen senere", "Ok"); } } } ((ListView)sender).SelectedItem = null; }