/// <summary> /// Bei Wechsel auf diese Seite wird eine Hinweismeldung ausgegeben (falls man vom Anmelden oder Registrieren kommt). /// Zusätzlich werden die eventuell schon zwischengespeicherten Partys wieder ausgelesen. /// </summary> /// <param name="e"></param> protected async override void OnNavigatedTo(NavigationEventArgs e) { // Sperren der Oberfläche this.IsEnabled = false; this.AppBarButtonEinstellungen.IsEnabled = false; this.AppBarButtonHinzufuegen.IsEnabled = false; this.AppBarButtonInDerNaehe.IsEnabled = false; progressRingInDerNaehe.Visibility = Visibility.Visible; progressRingInDerNaehe.IsActive = true; // Hinweis erscheint nur, wenn man vom Anmelden/Registrieren auf diese Haupansicht kommt PageStackEntry vorherigeSeite = Frame.BackStack.Last(); Type vorherigeSeiteTyp = vorherigeSeite?.SourcePageType; if (vorherigeSeiteTyp == (typeof(FensterAnmelden)) || vorherigeSeiteTyp == (typeof(FensterReg))) { var message = new MessageDialog(Meldungen.Hauptansicht.Nutzungsbedingungen, "Hinweis"); await message.ShowAsync(); } try { // Anzeigen der zwischengespeicherten Partys (falls vorhanden) partyListe = await DatenVerarbeitung.PartysAuslesen(); } catch (Exception) { } UserEinstellungen einst = await DatenVerarbeitung.UserEinstellungenAuslesen(); if (einst.GPSErlaubt == true) { // Anzeigen der Partys in der "normalen" Liste und ggf. in der Liste für die vorgemerkten Partys. if (partyListe != null && partyListe.Any() == true) { anzahlPartys = partyListe.Count(); for (int durchlauf = 0; durchlauf < anzahlPartys; durchlauf++) { // Liste aller Partys in der Nähe werden in der "normalen" ListView angezeigt party = partyListe.ElementAt(durchlauf); listViewSuchErgebnis.Items.Add(party.PartyName); // Auf der Karte anzeigen PartyAufMapAnzeigen(party); // Liste der vorgemerkten Partys werden in einer separaten ListView angezeigt if (party.UserCommitmentState == EventCommitmentState.Noted) { listViewVorgemerkt.Items.Add(party.PartyName); anzahlVorgemerkt++; } // Liste der Partys, bei denen der Nutzer teilnimmt, werden in einer separaten ListView angezeigt if (party.UserCommitmentState == EventCommitmentState.Accepted) { listViewTeilnahme.Items.Add(party.PartyName); anzahlTeilgenommen++; } } } // Aktuelle Position ermitteln und dies als Kartenmittelpunkt setzen var geoLocation = new GeolocationLogik(); Location location = await geoLocation.GetLocation(); BasicGeoposition basis = new BasicGeoposition() { Latitude = location.Latitude, Longitude = location.Longitude }; Geopoint point = new Geopoint(basis); mapControlHauptansicht.Center = point; mapControlHauptansicht.ZoomLevel = 15; mapControlHauptansicht.LandmarksVisible = true; } // Entsperren der Oberfläche progressRingInDerNaehe.Visibility = Visibility.Collapsed; progressRingInDerNaehe.IsActive = false; this.AppBarButtonEinstellungen.IsEnabled = true; this.AppBarButtonHinzufuegen.IsEnabled = true; this.AppBarButtonInDerNaehe.IsEnabled = true; this.IsEnabled = true; }
/// <summary> /// Zeigt die Partys in der Umgebung an. Suchradius wird in UserEinstellungen geändert. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public async void Suchen_abrufenPartys(object sender, RoutedEventArgs e) { // Sperren der Oberfläche SperrenDerAnsicht(); // Listen leeren listViewSuchErgebnis.Items.Clear(); listViewVorgemerkt.Items.Clear(); listViewTeilnahme.Items.Clear(); UserEinstellungen einst = await DatenVerarbeitung.UserEinstellungenAuslesen(); if (einst.GPSErlaubt == true) { // Liste der Partys aus der Nähe partyListe = await btnInDerNaehePartysAbrufen(); // Anzeigen der Partys in der "normalen" Liste und ggf. in der Liste für die vorgemerkten Partys. if (partyListe.Any()) { anzahlPartys = partyListe.Count(); for (int durchlauf = 0; durchlauf < anzahlPartys; durchlauf++) { // Liste aller Partys in der Nähe werden in der "normalen" ListView angezeigt party = partyListe.ElementAt(durchlauf); listViewSuchErgebnis.Items.Add(party.PartyName); // Auf der Karte anzeigen PartyAufMapAnzeigen(party); // Liste der vorgemerkten Partys werden in einer separaten ListView angezeigt if (party.UserCommitmentState == EventCommitmentState.Noted) { listViewVorgemerkt.Items.Add(party.PartyName); anzahlVorgemerkt++; } // Liste der Partys, bei denen der Nutzer teilnimmt, werden in einer separaten ListView angezeigt if (party.UserCommitmentState == EventCommitmentState.Accepted) { listViewTeilnahme.Items.Add(party.PartyName); anzahlTeilgenommen++; } } } else { var message = new MessageDialog(Meldungen.Hauptansicht.KeinePartysInDerNaehe, "Schade!"); await message.ShowAsync(); } } else { var message = new MessageDialog(Meldungen.Hauptansicht.FehlerGPSNoetig, "Achtung!"); await message.ShowAsync(); } // Oberfläche entsperren EntsperrenDerAnsicht(); }