예제 #1
0
        /// <summary>
        /// Hier wird die Teilnahme/Absage für die Party vorgenommen.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void Teilnehmen_CommitmentStateSetzen(object sender, RoutedEventArgs e)
        {
            CommitmentParty teilnehmen = new CommitmentParty();
            bool            zusagen    = false;

            // Hier wird der Status der Teilnahme notiert
            if (uebergebeneParty.UserCommitmentState != EventCommitmentState.Accepted)
            {
                teilnehmen.Teilnahme = EventCommitmentState.Accepted;

                zusagen = true;
            }
            else
            {
                teilnehmen.Teilnahme = EventCommitmentState.Rejected;

                zusagen = false;
            }

            // Sperren der Oberfläche
            SperrenDerAnsicht();

            // Teilnahme/Absage ans BackEnd schicken
            bool teilnahme = await BackEndComPartyLogik.PutPartyCommitmentState(uebergebeneParty, teilnehmen);

            if (teilnahme == true)
            {
                // Abhängig davon, ob der Nutzer teilnehmen oder absagen will, wird ihm eine entsprechende Nachricht ausgegeben.
                if (zusagen == true)
                {
                    var message = new MessageDialog(Meldungen.Anzeige.ErfolgTeilnahme, "Viel Spaß!");
                    await message.ShowAsync();

                    uebergebeneParty.UserCommitmentState = EventCommitmentState.Accepted;
                    this.Frame.Navigate(typeof(FensterHauptansicht));
                }
                else
                {
                    var message = new MessageDialog(Meldungen.Anzeige.ErfolgAbsage, "Schade!");
                    await message.ShowAsync();

                    uebergebeneParty.UserCommitmentState = EventCommitmentState.Rejected;
                }
            }
            else
            {
                var message = new MessageDialog(Meldungen.Anzeige.FehlerTeilnahmeAbsage, "Fehler!");
                await message.ShowAsync();
            }

            // Entsperrung der Oberfläche
            EntsperrenDerAnsicht();

            // Wechsel zur Hauptansicht
            this.Frame.Navigate(typeof(FensterHauptansicht));
        }
예제 #2
0
        /// <summary>
        /// Hier wird die Party für den Nutzer vorgemerkt/nicht mehr vorgemerkt.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void Vormerken_wechselZuHauptansicht(object sender, RoutedEventArgs e)
        {
            CommitmentParty commitment = new CommitmentParty();
            bool            notiert    = false;

            // Sperren der Oberfläche
            SperrenDerAnsicht();

            // Hier wird der Status der Vormerkung notiert
            if (uebergebeneParty.UserCommitmentState != EventCommitmentState.Noted)
            {
                commitment.Teilnahme = EventCommitmentState.Noted;

                notiert = true;
            }
            else
            {
                commitment.Teilnahme = EventCommitmentState.Rejected;

                notiert = false;
            }

            // Vormerkung ans BackEnd schicken
            bool antwort = await BackEndComPartyLogik.PutPartyCommitmentState(uebergebeneParty, commitment);

            // Entsperrung der Oberfläche
            EntsperrenDerAnsicht();


            if (antwort == true)
            {
                // Abhängig davon, ob der Nutzer die Party vormerken will oder nicht, wird ihm eine entsprechende Nachricht ausgegeben.
                if (notiert == true)
                {
                    var message = new MessageDialog(Meldungen.Anzeige.ErfolgVormerken, "Erfolg!");
                    await message.ShowAsync();

                    uebergebeneParty.UserCommitmentState = EventCommitmentState.Noted;
                }
                else
                {
                    var message = new MessageDialog(Meldungen.Anzeige.ErfolgVergessen, "Erfolg!");
                    await message.ShowAsync();

                    uebergebeneParty.UserCommitmentState = EventCommitmentState.Rejected;
                }
            }
            else
            {
                var message = new MessageDialog(Meldungen.Anzeige.FehlerVormerkenVergessen, "Fehler!");
                await message.ShowAsync();
            }

            // Zum Schluss wechselt man zur Hauptansicht
            this.Frame.Navigate(typeof(FensterHauptansicht));
        }
예제 #3
0
        /// <summary>
        /// Post des Teilnahme-Status.
        /// </summary>
        /// <param name="party">Party, bei der sich der Teilnahme-Status ändert.</param>
        /// <param name="teilnahme">Teilnahmestatus</param>
        /// <returns></returns>
        public static async Task <bool> PutPartyCommitmentState(Party party, CommitmentParty teilnahme)
        {
            bool   internetVorhanden = IsInternet();
            bool   teilnehmen        = false;
            string nachricht         = "";

            Login login = await DatenVerarbeitung.LoginAuslesen();

            Token tok = await BackEndComUserLogik.GetToken(login);

            if (internetVorhanden == true)// && erfolg == true)
            {
                HttpClient          client      = GetClientParty();
                HttpResponseMessage httpAntwort = new HttpResponseMessage();
                var json = JsonConvert.SerializeObject(teilnahme);
                client.DefaultRequestHeaders.Add("Authorization", "Bearer " + tok.AccessToken);
                HttpContent content = new StringContent(json, Encoding.UTF8, "application/json");

                try
                {
                    httpAntwort = await client.PutAsync($"UserParty/commitmentState?id={party.PartyId}", content);

                    teilnehmen = httpAntwort.IsSuccessStatusCode;
                    return(teilnehmen);
                }

                catch (Exception ex)
                {
                    nachricht = "Error: " + ex.HResult.ToString("X") + " Message: " + ex.Message;
                    var message = new MessageDialog("Fehler! Bitte versuche es später erneut.");
                    await message.ShowAsync();

                    // Code 21 - Fehler bei Abrufen
                    return(false);
                }
            }
            else
            {
                // Nachricht, dass Internet eingeschaltet werden soll
                // Code 42 - Fehler: Keine Internetverbindung
                var message = new MessageDialog("Fehler! Keiner Internetverbindung.");
                await message.ShowAsync();

                return(false);
            }
        }