예제 #1
0
        /// <summary>
        /// Mehr Beiträge laden. Zeitraum wird immer um 7 Tage addiert, wenn kein Beitrag vorhanden ist
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void LoadMore(object sender, EventArgs e)
        {
            loadMoreBtn.IsVisible = false;
            vonDatum  = DateTime.Now.AddDays(-days * (multiplikator + 1)).AddDays(1);
            bisDatum  = DateTime.Now.AddDays(-days * multiplikator);
            CacheList = AllVM.Datenbank.Feed.Get(AllVM.ConvertToUser(), vonDatum, bisDatum);

            if (CacheList == null)
            {
                DependencyService.Get <IMessage>().ShortAlert("Fehler beim Abruf der Liste");
            }
            else
            {
                multiplikator++;
                foreach (var item in CacheList)
                {
                    FitFeedVM.ListNews.Add(item);
                }
            }

            while (CacheList != null && CacheList.Count == 0 && vonDatum > DateTime.Now.AddMonths(-3))
            {
                vonDatum  = DateTime.Now.AddDays(-days * (multiplikator + 1)).AddDays(1);
                bisDatum  = DateTime.Now.AddDays(-days * multiplikator);
                CacheList = AllVM.Datenbank.Feed.Get(AllVM.ConvertToUser(), vonDatum, bisDatum);

                CacheList = CacheList.OrderByDescending(o => o.ErstelltAm).ToList();
                foreach (var item in CacheList)
                {
                    FitFeedVM.ListNews.Add(item);
                }

                multiplikator++;
            }
        }
예제 #2
0
        /// <summary>
        /// Plan als Favorit kennzeichnen
        /// </summary>
        void FavoritePlan(System.Object sender, System.EventArgs e)
        {
            Image image = (sender as Image);

            if (image != null)
            {
                string key = "E;" + image.ClassId;
                if ((image.Source as FileImageSource).File == "Herz_Unfilled")
                {
                    if (AllVM.Datenbank.User.AddFavo(key, AllVM.ConvertToUser()))
                    {
                        image.Source = ImageSource.FromFile("Herz_Filled");
                    }
                    else
                    {
                        DependencyService.Get <IMessage>().ShortAlert("Fehler beim Favorisieren");
                    }
                }
                else if ((image.Source as FileImageSource).File == "Herz_Filled")
                {
                    if (AllVM.Datenbank.User.DeleteFavo(key, AllVM.ConvertToUser()))
                    {
                        image.Source = ImageSource.FromFile("Herz_Unfilled");
                    }
                    else
                    {
                        DependencyService.Get <IMessage>().ShortAlert("Fehler beim Favorisieren");
                    }
                }
            }
        }
예제 #3
0
        /// <summary>
        /// Abonnieren des Nutzers ohne auf das Profil gehen zu müssen
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void FollowOrUnFollow(System.Object sender, System.EventArgs e)
        {
            Button button = (sender as Button);

            if (button != null && !string.IsNullOrWhiteSpace(button.Text))
            {
                Like like = (button.Parent.Parent as ViewCell).BindingContext as Like;

                if (button.Text == "Entfolgen")
                {
                    AllVM.Datenbank.User.UnFollow(new User()
                    {
                        Nutzername = button.ClassId
                    }, AllVM.ConvertToUser());
                    ListLikes[ListLikes.IndexOf(like)].IsSub = false;
                }
                else
                {
                    AllVM.Datenbank.User.Follow(new User()
                    {
                        Nutzername = button.ClassId
                    }, AllVM.ConvertToUser());
                    ListLikes[ListLikes.IndexOf(like)].IsSub = true;
                }

                //Aktualisierung der Liste
                listView.ItemsSource = null;
                listView.ItemsSource = ListLikes;
            }
        }
예제 #4
0
        /// <summary>
        /// Überprüfen, ob der aktuelle Nutzer den Beitrag geliked hat.
        /// </summary>
        /// <param name="id">ID des Beitrages</param>
        /// <returns></returns>
        public bool CheckIfLiked(int id)
        {
            User user = AllVM.ConvertToUser();

            try
            {
                string     com     = $"SELECT Feed_ID FROM Feed_Likes WHERE Feed_ID = '{id}' AND [User] = '{user.Nutzername}'";
                SqlCommand command = new SqlCommand(com, StaticDB.Connection);
                StaticDB.Connection.Open();
                object r = command.ExecuteScalar();
                StaticDB.Connection.Close();

                if (r != null)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex)
            {
                _ = ex.Message;
                if (StaticDB.Connection != null)
                {
                    if (StaticDB.Connection.State != System.Data.ConnectionState.Closed)
                    {
                        StaticDB.Connection.Close();
                    }
                }
                return(false);
            }
        }
예제 #5
0
        /// <summary>
        /// Prüfen der Daten für die Registrierung und dann speichern der Daten lokal wie in der Datenbank
        /// Voreinstellung einer Benutzerdaten, sodass ein bessere Userfeeling entsteht
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        async void Registrieren(System.Object sender, System.EventArgs e)
        {
            if (!string.IsNullOrWhiteSpace(RegVM.User.Nutzername))
            {
                RegVM.User.Nutzername = RegVM.User.Nutzername.ToLower();
                if (!string.IsNullOrWhiteSpace(RegVM.PW))
                {
                    if (!string.IsNullOrWhiteSpace(RegVM.PW2))
                    {
                        if (RegVM.PW == RegVM.PW2)
                        {
                            string hashedpw = AllVM.HashPassword(RegVM.PW);

                            RegVM.User.ErstelltAm = DateTime.Now;
                            RegVM.User.Passwort   = hashedpw;
                            RegVM.User.InfoText   = "Hi, ich bin neu hier!";

                            using (var webClient = new WebClient())
                                RegVM.User.ProfilBild = webClient.DownloadData("https://cdn.pixabay.com/photo/2016/11/11/09/59/white-male-1816195_1280.jpg");

                            if (AllVM.Datenbank.User.Insert(RegVM.User))
                            {
                                AllVM.User = AllVM.ConvertFromUser(RegVM.User);
                                Application.Current.Properties.Add("userid", RegVM.User.Nutzername);
                                Application.Current.Properties.Add("userpw", RegVM.User.Passwort);
                                await Application.Current.SavePropertiesAsync();

                                App.Current.MainPage = new AppShell();
                            }
                            else
                            {
                                DependencyService.Get <IMessage>().ShortAlert("Fehler beim Speichern!");
                            }
                        }
                        else
                        {
                            DependencyService.Get <IMessage>().ShortAlert("Passwörter stimmen nicht überein");
                        }
                    }
                    else
                    {
                        DependencyService.Get <IMessage>().ShortAlert("Bitte Bestätigung eingeben");
                    }
                }
                else
                {
                    DependencyService.Get <IMessage>().ShortAlert("Bitte Passwort eingeben");
                }
            }
            else
            {
                DependencyService.Get <IMessage>().ShortAlert("Nutzername eingeben!");
            }
        }
예제 #6
0
 /// <summary>
 /// Methode, die erst nach dem Laden der Seite aufgerufen wird
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void Loaded(object sender, EventArgs e)
 {
     if (isOther == false)
     {
         user = AllVM.ConvertToUser();
     }
     ProfilVM = new ProfilShowVM(user);
     GetFitFeed();
     BindingContext = ProfilVM;
     SetButton();
 }
예제 #7
0
 /// <summary>
 /// Entfolgen eines Nutzers
 /// </summary>
 private void UnFollow()
 {
     if (AllVM.Datenbank.User.UnFollow(ProfilVM.User, AllVM.ConvertToUser()))
     {
         DependencyService.Get <IMessage>().ShortAlert("Erfolgreich entfolgt!");
         ProfilVM.AboBtnText = "Folgen";
     }
     else
     {
         DependencyService.Get <IMessage>().ShortAlert("Fehler beim Speichern");
     }
 }
예제 #8
0
        /// <summary>
        /// Plan mit Hilfe der ID aus der Datenbank
        /// </summary>
        /// <param name="id">ID des Plans</param>
        void GetByID(int id)
        {
            TPlan = AllVM.Datenbank.Trainingsplan.GetByID(id);

            if (TPlan != null)
            {
                TPlan.UebungList = AllVM.Datenbank.Trainingsplan.GetUebungen(TPlan.ID);
                IsFavorite       = AllVM.Datenbank.User.CheckIfFavo($"T;{TPlan.ID}", AllVM.ConvertToUser());
            }
            else
            {
                DependencyService.Get <IMessage>().ShortAlert("Es ist ein Fehler aufgetreten");
            }
        }
예제 #9
0
 /// <summary>
 /// Nutzer komplett löschen
 /// </summary>
 async void DeleteUser(System.Object sender, System.EventArgs e)
 {
     if (await DisplayAlert("Löschen?", "Möchtest du deinen Account wirklich löschen?\nAlle deine Daten werden nicht mehr zugänglich sein!", "Ja", "Nein"))
     {
         if (AllVM.Datenbank.User.Delete(AllVM.ConvertToUser()))
         {
             Application.Current.MainPage = new Login();
             DependencyService.Get <IMessage>().ShortAlert("Erfolgreich gelöscht");
         }
         else
         {
             DependencyService.Get <IMessage>().ShortAlert("Fehler beim Löschen");
         }
     }
 }
예제 #10
0
        /// <summary>
        /// Beitrag aus den Favoriten löschen
        /// </summary>
        private void Delete(object sender, EventArgs e)
        {
            var menuitem = (sender as MenuItem);

            if (AllVM.Datenbank.User.DeleteFavo(menuitem.ClassId, AllVM.ConvertToUser()))
            {
                DependencyService.Get <IMessage>().ShortAlert("Erfolgreich entfernt");
                GetList();
                FavoPlansVM.AnzeigeListe = FavoPlansVM.ListTrPlan.ToList <object>();
            }
            else
            {
                DependencyService.Get <IMessage>().ShortAlert("Fehler beim Entfernen");
            }
        }
예제 #11
0
        /// <summary>
        /// Änderungen des Profils speichern und an die Datenbank senden
        /// </summary>
        private void Save(object sender, EventArgs e)
        {
            ProfilVM.User.OnlyCustomName = onlyCustomName.IsChecked;
            ProfilVM.User.CustomName     = customName.Text;
            ProfilVM.User.InfoText       = infoText.Text;

            if (AllVM.Datenbank.User.Update(ProfilVM.User))
            {
                AllVM.User = AllVM.ConvertFromUser(ProfilVM.User);
                saved      = true;
                OnBackButtonPressed();
                DependencyService.Get <IMessage>().ShortAlert("Erfolgreich gespeichert");
            }
            else
            {
                DependencyService.Get <IMessage>().ShortAlert("Fehler beim Speichern");
            }
        }
예제 #12
0
        /// <summary>
        /// Plan in die Datenbank speichern
        /// </summary>
        private void Save(object sender, EventArgs e)
        {
            //Übergabe von User, Mahlzeittitel und aktuellen Datum an Instanz "plan" von der Klasse Trainingsplan
            try
            {
                if (!string.IsNullOrEmpty(TrainingName))
                {
                    if (!string.IsNullOrEmpty(TrainingCategorie))
                    {
                        plan.Ersteller  = AllVM.ConvertToUser();
                        plan.ErstelltAm = DateTime.Now;
                        plan.Titel      = TrainingName.Replace("\n", "");
                        plan.Kategorie  = TrainingCategorie;

                        //Die Instanz "plan" von Trainingsplan wird zur Speicherung in der Datenbank an die Methode "AddTrainingsplan" übergeben
                        if (AllVM.Datenbank.Trainingsplan.AddTrainingsplan(plan))
                        {
                            //Rückkehr zur Ansicht "AddNew"
                            OnBackButtonPressed();
                            //Anzeige einer Meldung für die erfolgreiche Speicherung
                            DependencyService.Get <IMessage>().ShortAlert("Training wurde gespeichert!");
                        }
                        else
                        {
                            //Anzeige einer Meldung für die fehlerhafte Speicherung
                            DependencyService.Get <IMessage>().ShortAlert("Fehler beim Speichern");
                        }
                    }
                    else
                    {
                        DependencyService.Get <IMessage>().ShortAlert("Kategorie auswählen!");
                    }
                }
                else
                {
                    DependencyService.Get <IMessage>().ShortAlert("Namen eingeben!");
                }
            }
            catch
            {
                //Anzeige einer Meldung eine fehlgeschlagene Speicherung
                DependencyService.Get <IMessage>().ShortAlert("Ein unbekannter Fehler ist aufgetreten!");
            }
        }
예제 #13
0
        /// <summary>
        /// Daten aus der Datenbank bereitstellen
        /// </summary>
        private void GetList()
        {
            CacheList = AllVM.Datenbank.Feed.Get(AllVM.ConvertToUser(), vonDatum);

            if (CacheList != null)
            {
                FitFeedVM.ListNews.Clear();
                CacheList = CacheList.OrderByDescending(o => o.ErstelltAm).ToList();
                foreach (var item in CacheList)
                {
                    FitFeedVM.ListNews.Add(item);
                }
                multiplikator++;
            }
            else
            {
                DependencyService.Get <IMessage>().ShortAlert("Fehler beim Abruf der Liste");
            }
        }
예제 #14
0
        /// <summary>
        /// Anmeldedaten prüfen, lokal speichern und an den Server melden
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        async void Save(object sender, EventArgs e)
        {
            if (!string.IsNullOrWhiteSpace(Nutzername))
            {
                Nutzername = Nutzername.ToLower();
                bool?exists = AllVM.Datenbank.User.Exists(Nutzername);

                if (exists == true)
                {
                    string pw  = AllVM.Datenbank.User.GetPasswort(Nutzername);
                    string hpw = AllVM.HashPassword(Passwort);
                    if (hpw == pw)
                    {
                        AllVM.Initial(Nutzername);
                        Application.Current.Properties.Clear();
                        Application.Current.Properties.Add("userid", Nutzername);
                        Application.Current.Properties.Add("userpw", pw);
                        await Application.Current.SavePropertiesAsync();

                        App.Current.MainPage = new AppShell();
                    }
                    else
                    {
                        DependencyService.Get <IMessage>().ShortAlert("Passwort stimmt nicht!");
                    }
                }
                else if (exists == false)
                {
                    DependencyService.Get <IMessage>().ShortAlert("Nutzername unbekannt");
                }
                else
                {
                    DependencyService.Get <IMessage>().ShortAlert("Fehler beim Prüfen");
                }
            }
            else
            {
                DependencyService.Get <IMessage>().ShortAlert("Nutzername eingeben!");
            }
        }
예제 #15
0
        /// <summary>
        /// Gefällt mir bei einem bestimmten Beitrag eintragen und dann Like-Symbol anzeigen
        /// </summary>
        /// <param name="id">ID des Beitrages</param>
        void Liken(string id)
        {
            bool?result = AllVM.Datenbank.Feed.Like(id, AllVM.ConvertToUser());

            if (result == true)
            {
                idCache = id;
                FitFeedVM.ListNews.First(s => s.ID.ToString() == id).LikedTimer = true;
                FitFeedVM.ListNews.First(s => s.ID.ToString() == id).Liked      = true;
                FitFeedVM.ListNews.First(s => s.ID.ToString() == id).Likes     += 1;
                timer.Start();
            }
            else if (result == false)
            {
                FitFeedVM.ListNews.First(s => s.ID.ToString() == id).Liked  = false;
                FitFeedVM.ListNews.First(s => s.ID.ToString() == id).Likes -= 1;
            }
            else
            {
                DependencyService.Get <IMessage>().ShortAlert("Fehler beim Liken");
            }
        }
예제 #16
0
        /// <summary>
        /// Die aktuelle Bewertung speichern
        /// </summary>
        private void Save(object sender, EventArgs e)
        {
            int  bewert  = 0;
            bool correct = false;

            foreach (Image item in bewGrid.Children)
            {
                if ((item.Source as FileImageSource).File == "Star_Filled")
                {
                    bewert++;
                }
            }

            Bewertung bewertung = new Bewertung()
            {
                Bewerter = AllVM.ConvertToUser(),
                Rating   = bewert
            };

            if (type == typeof(Trainingsplan))
            {
                correct = AllVM.Datenbank.Trainingsplan.AddBewertung(bewertung, TPlan);
            }
            else if (type == typeof(Ernährungsplan))
            {
                correct = AllVM.Datenbank.Ernährungsplan.AddBewertung(bewertung, EPlan);
            }

            if (correct)
            {
                OnBackButtonPressed();
                DependencyService.Get <IMessage>().ShortAlert("Erfolgreich bewertet");
            }
            else
            {
                DependencyService.Get <IMessage>().ShortAlert("Fehler bei Bewertung");
            }
        }
예제 #17
0
        /// <summary>
        /// Beitrag liken
        /// </summary>
        void Like(System.Object sender, System.EventArgs e)
        {
            string id     = (sender as Frame).ClassId;
            bool?  result = AllVM.Datenbank.Feed.Like(id, AllVM.ConvertToUser());

            if (result == true)
            {
                idCache = id;
                ProfilVM.FitFeed.First(s => s.ID.ToString() == id).LikedTimer = true;
                ProfilVM.FitFeed.First(s => s.ID.ToString() == id).Liked      = true;
                ProfilVM.FitFeed.First(s => s.ID.ToString() == id).Likes     += 1;
                timer.Start();
            }
            else if (result == false)
            {
                ProfilVM.FitFeed.First(s => s.ID.ToString() == id).Liked  = false;
                ProfilVM.FitFeed.First(s => s.ID.ToString() == id).Likes -= 1;
            }
            else
            {
                DependencyService.Get <IMessage>().ShortAlert("Fehler beim Liken");
            }
        }
예제 #18
0
        /// <summary>
        /// Status speichern und zur Datenbank übertragen
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Save(object sender, EventArgs e)
        {
            //Prüfen, damit keine NULL-Werte in die Datenbank geschrieben werden
            if (!string.IsNullOrWhiteSpace(beschreibung.Text))
            {
                StatusVM.Status.ErstelltVon = AllVM.ConvertToUser();
                StatusVM.Status.ErstelltAm  = DateTime.Now;

                //Prüfen, ob das Speichern in die Datenbank erfolgreich ist
                if (AllVM.Datenbank.Status.Insert(StatusVM.Status))
                {
                    OnBackButtonPressed();
                    DependencyService.Get <IMessage>().ShortAlert("Erfolgreich gespeichert");
                }
                else
                {
                    DependencyService.Get <IMessage>().ShortAlert("Fehler beim Speichern");
                }
            }
            else
            {
                DependencyService.Get <IMessage>().ShortAlert("Beschreibung ausfüllen");
            }
        }
예제 #19
0
        /// <summary>
        /// Lokale Variablen prüfen und ggf. automatisch Anmelden
        /// </summary>
        private void AutoLogin()
        {
            string user = null, passwort = null;

            try
            {
                var current = Connectivity.NetworkAccess;
                if (current == NetworkAccess.Internet)
                {
                    if (Current.Properties.ContainsKey("userid"))
                    {
                        if (Current.Properties["userid"] != null)
                        {
                            user = Current.Properties["userid"].ToString();
                        }
                    }

                    if (Current.Properties.ContainsKey("userpw"))
                    {
                        if (Current.Properties["userpw"] != null)
                        {
                            passwort = Current.Properties["userpw"].ToString();
                        }
                    }

                    if (!string.IsNullOrWhiteSpace(user) && !string.IsNullOrWhiteSpace(passwort))
                    {
                        bool?exists = AllVM.Datenbank.User.Exists(user);
                        if (exists == true)
                        {
                            string pw = AllVM.Datenbank.User.GetPasswort(user);

                            if (user != null && (passwort == pw))
                            {
                                AllVM.Initial(user);
                                MainPage = new AppShell();
                            }
                            else
                            {
                                DependencyService.Get <IMessage>().ShortAlert("Passwort stimmt nicht");
                                MainPage = new NavigationPage(new Login());
                            }
                        }
                        else if (exists == false)
                        {
                            DependencyService.Get <IMessage>().ShortAlert("Nutzer existiert nicht");
                            MainPage = new NavigationPage(new Login());
                        }
                        else
                        {
                            DependencyService.Get <IMessage>().ShortAlert("Fehler beim Prüfen");
                            MainPage = new NavigationPage(new Login());
                        }
                    }
                    else
                    {
                        MainPage = new NavigationPage(new Login());
                    }
                }
            }
            catch (Exception ex)
            {
                _        = ex.Message;
                MainPage = new NavigationPage(new Login());
            }
        }
예제 #20
0
        /// <summary>
        /// Bestimmten Plan mit Hilfe der ID bereitstellen
        /// </summary>
        void GetByID(int id)
        {
            EPlan = AllVM.Datenbank.Ernährungsplan.GetByID(id);

            if (EPlan != null)
            {
                EPlan.MahlzeitenList = AllVM.Datenbank.Ernährungsplan.GetMahlzeiten(EPlan.ID);
                IsFavorite           = AllVM.Datenbank.User.CheckIfFavo($"E;{EPlan.ID}", AllVM.ConvertToUser());
            }
            else
            {
                DependencyService.Get <IMessage>().ShortAlert("Es ist ein Fehler aufgetreten");
            }
        }
예제 #21
0
        /// <summary>
        /// Prüfen und Speichern des neuen Passworts
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Save(object sender, EventArgs e)
        {
            //Passwort muss bestimmte Kriterien haben
            var hasNumber        = new Regex(@"[0-9]+");
            var hasUpperChar     = new Regex(@"[A-Z]+");
            var hasLowerChar     = new Regex(@"[a-z]+");
            var hasMinimum8Chars = new Regex(@".{8,}");

            string chpw = AllVM.HashPassword(cPWVM.CurPW);

            if (curPW == chpw)
            {
                if (!string.IsNullOrWhiteSpace(cPWVM.NewPW1))
                {
                    if (!string.IsNullOrWhiteSpace(cPWVM.NewPW1))
                    {
                        if (hasMinimum8Chars.IsMatch(cPWVM.NewPW1))
                        {
                            if (hasLowerChar.IsMatch(cPWVM.NewPW1))
                            {
                                if (hasUpperChar.IsMatch(cPWVM.NewPW1))
                                {
                                    if (hasNumber.IsMatch(cPWVM.NewPW1))
                                    {
                                        if (cPWVM.NewPW1 == cPWVM.NewPW2)
                                        {
                                            string hpw = AllVM.HashPassword(cPWVM.NewPW1);

                                            if (AllVM.Datenbank.User.ChangePW(cPWVM.User.Nutzername, hpw))
                                            {
                                                AllVM.User.Passwort = hpw;
                                                OnBackButtonPressed();
                                                DependencyService.Get <IMessage>().ShortAlert("Passwort erfolgreich geändert");
                                            }
                                            else
                                            {
                                                DependencyService.Get <IMessage>().ShortAlert("Fehler beim Ändern");
                                            }
                                        }
                                        else
                                        {
                                            DependencyService.Get <IMessage>().ShortAlert("Passwörter stimmen nicht überein");
                                        }
                                    }
                                    else
                                    {
                                        DependencyService.Get <IMessage>().ShortAlert("Passwort muss mindestens eine Nummer enthalten");
                                    }
                                }
                                else
                                {
                                    DependencyService.Get <IMessage>().ShortAlert("Passwort muss mindestens einen Großbuchstaben enthalten");
                                }
                            }
                            else
                            {
                                DependencyService.Get <IMessage>().ShortAlert("Passwort muss mindestens einen Kleinbuchstaben enthalten");
                            }
                        }
                        else
                        {
                            DependencyService.Get <IMessage>().ShortAlert("Passwort muss mindestens 8 Zeichen lang sein");
                        }
                    }
                    else
                    {
                        DependencyService.Get <IMessage>().ShortAlert("Passwort wiederholen!");
                    }
                }
                else
                {
                    DependencyService.Get <IMessage>().ShortAlert("Neues Passwort muss gefüllt werden");
                }
            }
            else
            {
                DependencyService.Get <IMessage>().ShortAlert("Aktuelles Passwort ist nicht korrekt!");
            }
        }
예제 #22
0
 public ProfilEdit()
 {
     InitializeComponent();
     ProfilVM = new ProfilEditVM(AllVM.ConvertToUser());
     Start();
 }