/// <summary> /// Metoda LogInButtonClick jest wywoływana po naciśnięciu przez użytkownika przycisku "LogInButton". /// Metoda ta wyszukuje użytkownika w bazie danych po jego identyfikatorze (IDCzytelnika). /// Jeżeli logowanie się powiodło to metoda ustawia zawartość MainFrame na panel aplikacji (ApplicationPage). /// Jeżeli logowanie się nie powiodło w programie wyrzucany jest wyjątek, a metoda wyświetla użytkownikowi stosowny komunikat. /// </summary> private void LogInButtonClick(object sender, RoutedEventArgs e) { using (var dbContext = new BibliotekaDBContext()) { int target; bool success = Int32.TryParse(this.ReaderID.Text, out target); var login = dbContext.Czytelnicy .Where(reader => reader.IDCzytelnika == target); if (success) { try { if (login.Count() == 1) { ApplicationPage app = new ApplicationPage(target); Mw.MainFrame.Content = app; app.GenerateUserPage(); } else { throw new LogInException(); } } catch { LogInExceptionComunicate.Text = "Brak użytkownika w bazie."; } } else { LogInExceptionComunicate.Text = "Błędny login."; } } }
/// <summary> /// Metoda SignUpButtonClick jest wywoływana po naciśnięciu przez użytkownika przycisku "SignUpButton". /// Metoda ta próbuje: /// - wywołać dla wartości pól formularza rejestracji metodę ValidateSignUpForm /// - utworzyć kontekst bazy danych i obiekt repezentujący nowego czytelnika z przypisanymi zwalidowanymi wartościami z formularza rejestracji. /// - dodać użytkownika do bazy danych i zapisać zmiany /// - zapisać w zmiennej newUserID identyfikator nowo dodanego użytkownika. /// - pokazać użytkownikowi jego nowe id poprzez zmianę zawartości obiektu MainFrame na stonę prezentacji ID (IDPage) /// Jeżeli którakolwiek z powyższych czynności się nie powiodła w programie wyrzucany jest wyjątek, a metoda wyświetla użytkownikowi stosowny komunikat. /// </summary> /// /// <seealso cref="ValidateSignUpForm(string, string, string, string, string, string, string, string, string)"> /// Metoda walidująca dane wprowadzone w formularzu rejestracji. /// </seealso> private void SignUpButtonClick(object sender, RoutedEventArgs e) { int newUserID = 0; try { ValidateSignUpForm( this.NameBox.Text, this.SurnameBox.Text, this.GenderBoxes, this.CityBox.Text, this.PostalCodeBox.Text, this.StreetBox.Text, this.HouseNumberBox.Text, this.LocalNumberBox.Text, this.EmailBox.Text ); using (var dbContext = new BibliotekaDBContext()) { var czytelnik = new Czytelnicy() { ImieCzytelnika = this.NameBox.Text, NazwiskoCzytelnika = this.SurnameBox.Text, Plec = this.GenderBoxes, DataPrzystapienia = DateTime.Now, Miasto = this.CityBox.Text, KodPocztowy = this.PostalCodeBox.Text, Ulica = this.StreetBox.Text, NumerDomu = this.HouseNumberBox.Text, NumerLokalu = this.LocalNumberBox.Text, EMail = this.EmailBox.Text }; dbContext.Czytelnicy.Add(czytelnik); dbContext.SaveChanges(); newUserID = czytelnik.IDCzytelnika; } Mw.MainFrame.Content = new IDPage(newUserID); } catch (SignUpException exception) { string Comunicate = null; switch (exception.Message) { case "email": Comunicate = "Błędny email."; break; case "numer domu": Comunicate = "Błędny numer domu."; break; case "numer lokalu": Comunicate = "Błędny numer lokalu."; break; case "ulica": Comunicate = "Błędna nazwa ulicy."; break; case "kod pocztowy": Comunicate = "Format kodu pocztowego: 00-000"; break; case "miasto": Comunicate = "Błędna nazwa miasta."; break; case "płeć": Comunicate = "Wybierz płeć."; break; case "nazwisko": Comunicate = "Niepoprawne nazwisko."; break; case "imię": Comunicate = "Niepoprawne imię."; break; default: Comunicate = "Nieznany błąd."; break; } ComunicateBanner.Text = Comunicate; } }