示例#1
0
        /// <summary>
        /// Schickt die neuen Informationen einer bereits erstellten Party an den Server.
        /// </summary>
        /// <param name="id">ID der zu aktualisierenden Party</param>
        /// <param name="party">Party mit neuen Werten</param>
        /// <returns>Erfolg</returns>
        public static async Task <bool> UpdatePartyByID(Party party)
        {
            bool internetVorhanden = IsInternet();
            bool erfolg            = false;
            // Umspeichern der Daten für BackEnd
            CreateParty partyZuErstellen = new CreateParty();

            partyZuErstellen.PartyName   = party.PartyName;
            partyZuErstellen.PartyDate   = party.PartyDate;
            partyZuErstellen.MusicGenre  = party.MusicGenre;
            partyZuErstellen.CountryName = "Deutschland";
            partyZuErstellen.CityName    = party.Location.CityName;
            partyZuErstellen.StreetName  = party.Location.StreetName;
            partyZuErstellen.HouseNumber = party.Location.HouseNumber;
            partyZuErstellen.Zipcode     = party.Location.ZipCode;
            partyZuErstellen.PartyType   = party.PartyType;
            partyZuErstellen.Description = party.Description;
            partyZuErstellen.Price       = party.Price;

            bool aktuellerToken = await DatenVerarbeitung.aktuellerToken();

            Token token = await DatenVerarbeitung.TokenAuslesen();

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

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

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

                catch (Exception)
                {
                    var message = new MessageDialog("Fehler! Bitte versuche es später erneut.");
                    await message.ShowAsync();

                    return(false);
                }
            }
            else
            {
                // Nachricht, dass Internet eingeschaltet werden soll
                var message = new MessageDialog("Fehler! Keiner Internetverbindung.");
                await message.ShowAsync();

                return(false);
            }
        }
示例#2
0
        /// <summary>
        /// UserID wird geholt und in File für Login geschrieben.
        /// </summary>
        /// <returns>Erfolg</returns>
        public static async Task <bool> GetUserInfo()
        {
            string stringFromServer = "";
            Login  id;
            bool   internetVorhanden = BackEndComPartyLogik.IsInternet();
            Login  login             = await DatenVerarbeitung.LoginAuslesen();

            // aktueller Token wird benötigt
            bool erfolg = await DatenVerarbeitung.aktuellerToken();

            Token tok = await DatenVerarbeitung.TokenAuslesen();

            if (internetVorhanden == true && erfolg == true)
            {
                HttpClient          client      = GetClientUser();
                HttpResponseMessage httpAntwort = new HttpResponseMessage();
                client.DefaultRequestHeaders.Add("Authorization", "Bearer " + tok.AccessToken);

                try
                {
                    httpAntwort = await client.GetAsync("connect/userinfo");

                    stringFromServer = await httpAntwort.Content.ReadAsStringAsync();

                    id           = JsonConvert.DeserializeObject <Login>(stringFromServer);
                    login.userID = id.userID;

                    // ID in die Datei schreiben
                    await DatenVerarbeitung.LoginSpeichern(login);

                    return(true);
                }
                catch (Exception)
                {
                    var message = new MessageDialog("Fehler! Bitte versuche es später erneut.");
                    await message.ShowAsync();

                    return(false);
                }
            }
            else
            {
                // Nachricht, dass Internet eingeschaltet werden soll
                var message = new MessageDialog("Fehler! Keiner Internetverbindung.");
                await message.ShowAsync();

                return(false);
            }
        }
示例#3
0
        /// <summary>
        /// Gibt Partys zurueck.
        /// </summary>
        /// <returns>Partys</returns>
        public static async Task <IEnumerable <Party> > GetParties(Location aktuellePosition, float radius)
        {
            string stringFromServer        = "";
            bool   internetVorhanden       = IsInternet();
            IEnumerable <Party> partyListe = null;

            bool erfolg = await DatenVerarbeitung.aktuellerToken();

            Token tok = await DatenVerarbeitung.TokenAuslesen();

            if (internetVorhanden == true && erfolg == true)
            {
                HttpClient          client      = GetClientParty();
                HttpResponseMessage httpAntwort = new HttpResponseMessage();
                double latitude  = aktuellePosition.Latitude;
                double longitude = aktuellePosition.Longitude;

                client.DefaultRequestHeaders.Add("Authorization", "Bearer " + tok.AccessToken);

                string anfrage = $"Party?lat={latitude}&lon={longitude}&radius={radius}";
                // durch das Speichern in den String wird aus einem Punkt ein Komma, deshalb muss das danach ausgebessert werden
                anfrage = anfrage.Replace(',', '.');

                try
                {
                    httpAntwort = await client.GetAsync(anfrage);

                    stringFromServer = await httpAntwort.Content.ReadAsStringAsync();

                    partyListe = JsonConvert.DeserializeObject <IEnumerable <Party> >(stringFromServer);
                }
                catch (Exception)
                {
                    var message = new MessageDialog("Fehler! Bitte versuche es später erneut.");
                    await message.ShowAsync();
                }
            }
            else
            {
                // Nachricht, dass Internet eingeschaltet werden soll
                var message = new MessageDialog("Fehler! Keiner Internetverbindung.");
                await message.ShowAsync();
            }

            return(partyListe);
        }
示例#4
0
        /// <summary>
        /// Validiert die eingegebene Adresse und gibt die Adresse laut Google zurueck.
        /// </summary>
        /// <param name="location">Zu pruefende Adresse</param>
        /// <returns>Location laut Google</returns>
        public static async Task <string> ValidateLocation(Location location)
        {
            bool   internetVorhanden = IsInternet();
            string adresseLautGoogle = "";

            location.CountryName = "Deutschland";

            bool aktuellerToken = await DatenVerarbeitung.aktuellerToken();

            Token token = await DatenVerarbeitung.TokenAuslesen();

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

                try
                {
                    httpAntwort = await client.PostAsync("Party/validate", content);

                    adresseLautGoogle = await httpAntwort.Content.ReadAsStringAsync();

                    return(adresseLautGoogle);
                }

                catch (Exception)
                {
                    var message = new MessageDialog("Fehler! Bitte versuche es später erneut.");
                    await message.ShowAsync();

                    return("21");
                }
            }
            else
            {
                // Nachricht, dass Internet eingeschaltet werden soll
                var message = new MessageDialog("Fehler! Keiner Internetverbindung.");
                await message.ShowAsync();

                return("42");
            }
        }
示例#5
0
        /// <summary>
        /// Post des Votings.
        /// </summary>
        /// <param name="party">Party, bei der gevotet wird.</param>
        /// <param name="voting">Voting</param>
        /// <returns></returns>
        public static async Task <bool> PutPartyRating(Party party, PartyVoting voting)
        {
            bool internetVorhanden   = IsInternet();
            bool erfolgreichesVoting = false;

            bool erfolg = await DatenVerarbeitung.aktuellerToken();

            Token tok = await DatenVerarbeitung.TokenAuslesen();

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

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

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

                catch (Exception)
                {
                    var message = new MessageDialog("Fehler! Bitte versuche es später erneut.");
                    await message.ShowAsync();

                    return(false);
                }
            }
            else
            {
                // Nachricht, dass Internet eingeschaltet werden soll
                var message = new MessageDialog("Fehler! Keiner Internetverbindung.");
                await message.ShowAsync();

                return(false);
            }
        }
示例#6
0
        /// <summary>
        /// Loescht eine bestimmte Party (ID) vom Server.
        /// </summary>
        /// <param name="id">Zu loeschende Party</param>
        /// <returns>Erfolg</returns>
        public static async Task <bool> DeletePartyByID(Party party)
        {
            bool internetVorhanden = IsInternet();
            bool status            = false;

            bool erfolg = await DatenVerarbeitung.aktuellerToken();

            Token token = await DatenVerarbeitung.TokenAuslesen();

            if (internetVorhanden == true && erfolg == true)
            {
                HttpClient          client      = GetClientParty();
                HttpResponseMessage httpAntwort = new HttpResponseMessage();
                client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token.AccessToken);

                try
                {
                    httpAntwort = await client.DeleteAsync($"Party/?id={party.PartyId}");

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

                catch (Exception)
                {
                    var message = new MessageDialog("Fehler! Bitte versuche es später erneut.");
                    await message.ShowAsync();

                    return(false);
                }
            }
            else
            {
                // Nachricht, dass Internet eingeschaltet werden soll
                var message = new MessageDialog("Fehler! Keiner Internetverbindung.");
                await message.ShowAsync();

                return(false);
            }
        }