Пример #1
0
        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);
            }
        }
Пример #2
0
        // 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;
        }