/// <summary>
        /// Gibt die aktuellen Partys aus der Umgebung zurück.
        /// </summary>
        /// <returns></returns>
        private static async Task <IEnumerable <Party> > btnInDerNaehePartysAbrufen()
        {
            IEnumerable <Party> partyListe = null;
            Location            pos;

            try
            {
                // Aktuelle Position ermitteln
                var geoLocation = new GeolocationLogik();
                pos = await geoLocation.GetLocation();
            }
            catch (Exception)
            {
                var message = new MessageDialog(Meldungen.Hauptansicht.FehlerGPSNoetig, "Achtung!");
                await message.ShowAsync();

                return(null);
            }

            // Radius aus UserEinstellungen
            UserEinstellungen einst = await DatenVerarbeitung.UserEinstellungenAuslesen();

            float radius = einst.Radius;

            // Liste der Partys vom BackEnd erhalten
            partyListe = await BackEndComPartyLogik.GetParties(pos, radius);

            // Zwischenspeichern der aktuell angezeigten Partys
            bool erfolg = await ListViewAuslesenUndZwischenspeichern(partyListe);

            if (erfolg == false)
            {
                var message = new MessageDialog(Meldungen.Hauptansicht.FehlerZwischenSpeichern, "Fehler beim Speichern für Offline-Nutzung!");
            }

            return(partyListe);
        }
        /// <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;
        }