public void PobierzDaneCzytelnika(Czytelnik czytelnik, KartaCzytelnika karta, IEnumerable<Wypozyczenie> wypozyczenia, int flag = 0) { this.usunButton.Visible = true; this.statusKartyButton.Visible = true; this.czytelnikTabControl.TabPages.Add(wypozyczeniaTabPage); this.Text = "Edycja czytelnika"; if (flag == 1) this.czytelnikTabControl.SelectedTab = wypozyczeniaTabPage; if (karta.Status.Equals("aktywna")) this.statusKartyButton.Text = "Dezaktywuj"; this.czytelnik = czytelnik; this.karta = karta; this.wypozyczenia = wypozyczenia; foreach (var obj in wypozyczenia) { DataGridViewRow row = this.wypozyczeniaGridView.RowTemplate.Clone() as DataGridViewRow; row.CreateCells(this.wypozyczeniaGridView); row.Cells[0].Value = obj.Tytul(); row.Cells[1].Value = obj.Sygnatura(); row.Cells[2].Value = obj.DataWypozyczenia.ToShortDateString(); row.Cells[3].Value = obj.TerminZwrotu.ToShortDateString(); row.Cells[4].Value = obj.Id(); //Kolumna ukryta. Wartość potrzebna to operacji dodawania/edycji/usuwania row.Cells[5].Value = obj.GetType().Name; //Kolumna ukryta. Wartość potrzebna to operacji dodawania/edycji/usuwania this.wypozyczeniaGridView.Rows.Add(row); } //Dane czytelnika this.imieTextBox.Text = czytelnik.Imie; this.nazwiskoTextBox.Text = czytelnik.Nazwisko; this.peselTextBox.Text = czytelnik.Pesel; this.dataTimePicker.Value = czytelnik.DataUrodzenia; if (czytelnik.Plec.ToString().Equals("K")) this.kobietaRadioButton.Checked = true; //Adres czytelnika this.adresTextBox.Text = czytelnik.Adres.Ulica; this.kodPocztowyTextBox.Text = czytelnik.Adres.KodPocztowy; this.miejscowoscTextBox.Text = czytelnik.Adres.Miejscowosc; this.telefonTextBox.Text = czytelnik.Adres.Telefon; //Karta czytelnika this.statusLabel.Text = karta.Status; this.dataLabel.Text = karta.DataWystawienia.ToShortDateString(); this.terminLabel.Text = karta.TerminWaznosci.ToShortDateString(); }
//Zapisujemy edytowanego czytelnika lub dodajemy nowego //Trzeba by to rodzielić dla większej przejrzystości ale skoro działa? to niech tak zostanie private void ZapiszButtonClick(object sender, EventArgs e) { CzytelnikRepository czytelnikRepository = new CzytelnikRepository(); AdresRepository adresRepository = new AdresRepository(); KartaCzytelnikaRepository kartaCzytelnikaRepository = new KartaCzytelnikaRepository(); Czytelnik edited; Adres adres; KartaCzytelnika kartaCzyt; if (czytelnik == null) { edited = new Czytelnik(); adres = new Adres(); kartaCzyt = new KartaCzytelnika(); //Domyślne dane nowo dodawanej karty czytelnika kartaCzyt.Status = "aktywna"; kartaCzyt.DataWystawienia = DateTime.Now; kartaCzyt.TerminWaznosci = DateTime.Now.AddYears(5); } else { edited = czytelnik; adres = czytelnik.Adres; kartaCzyt = karta; } //Przypisujemy wartości z textboxów do obiektów edited.Imie = this.imieTextBox.Text; edited.Nazwisko = this.nazwiskoTextBox.Text; edited.Pesel = this.peselTextBox.Text; edited.DataUrodzenia = this.dataTimePicker.Value; if (kobietaRadioButton.Checked) edited.Plec = 'K'; else edited.Plec = 'M'; adres.Ulica = this.adresTextBox.Text; adres.Miejscowosc = this.miejscowoscTextBox.Text; adres.KodPocztowy = this.kodPocztowyTextBox.Text; adres.Telefon = this.telefonTextBox.Text; //Ustalamy domyślny kolor textbox'ów this.imieTextBox.BackColor = SystemColors.Window; this.nazwiskoTextBox.BackColor = SystemColors.Window; this.peselTextBox.BackColor = SystemColors.Window; this.adresTextBox.BackColor = SystemColors.Window; this.kodPocztowyTextBox.BackColor = SystemColors.Window; this.miejscowoscTextBox.BackColor = SystemColors.Window; this.telefonTextBox.BackColor = SystemColors.Window; this.errorProvider.Clear(); //Zapisujemy nowego czytelnika if (czytelnik == null) { if (this.CzyDanePoprawne() && MessageBox.Show("Zapisać czytelnika?", "Ostrzeżenie", MessageBoxButtons.YesNo) == DialogResult.Yes) { edited.Haslo = RandomString(8); adresRepository.Dodaj(adres); //Dodajemy najpierw adres do bazy adres.Id = BazaSQLite.LastId(); //Pobieramy jego id edited.Adres = adres; czytelnikRepository.Dodaj(edited); //Znając id adresu dodajemy czytelnika edited.Id = BazaSQLite.LastId(); //id czytelnika dodanego do bazy kartaCzyt.Czytelnik = edited; kartaCzytelnikaRepository.Dodaj(kartaCzyt); //Ostatecznie zapisujemy kartę czytelnika MessageBox.Show("Tymczasowe hasło: " + edited.Haslo); this.DialogResult = DialogResult.OK; } } else //Edytujemy obecnego czytelnika { if (this.CzyDanePoprawne() && MessageBox.Show("Zaktualizować dane czytelnika?", "Ostrzeżenie", MessageBoxButtons.YesNo) == DialogResult.Yes) { adresRepository.Edytuj(adres); czytelnikRepository.Edytuj(edited); this.DialogResult = DialogResult.OK; } } }
private void ObliczButtonClick(object sender, EventArgs e) { string zapytanie = "", zapytanieNieaktywne = "", zapytanieLiczbaWypKsiazki = "", zapytanieLiczbaWypCzasopism = "", rodzajZbioru = ""; double liczbaNieaktywnych = 0, liczbaWszystkich = 0, liczbaWypKsiazek = 0, liczbaWypCzasopism = 0, liczbaWypOgolem = 0; DateTime dataPocz = this.dateTimePicker5.Value; DateTime dataKon = this.dateTimePicker6.Value; List<KartaCzytelnika> listaKartCzytelnika = new List<KartaCzytelnika>(); List<KartaCzytelnika> listaNieaktywnychKartCzytelnika = new List<KartaCzytelnika>(); List<LiczbaWypozyczen> listaWypozyczenKsiazek = new List<LiczbaWypozyczen>(); List<LiczbaWypozyczen> listaWypozyczenCzasopism = new List<LiczbaWypozyczen>(); BazaSQLite baza = new BazaSQLite(); DataTable dt1 = new DataTable(); DataTable dt2 = new DataTable(); DataTable dt3 = new DataTable(); DataTable dt4 = new DataTable(); zapytanie = String.Format("select id_karty as pom from Karty"); zapytanieNieaktywne = String.Format("select id_karty as pom from Karty as k where k.status = \"nieaktywna\""); zapytanieLiczbaWypKsiazki = String.Format("select id_egzemplarza + id_karty as pom from Karty_Wypozyczen_Ksiazki as kwk where data_wypozyczenia between date(\"" + dataPocz + "\") and date(\"" + dataKon + "\")"); zapytanieLiczbaWypCzasopism = String.Format("select id_egzemplarza + id_karty as pom from Karty_Wypozyczen_Czasopisma as kwc where data_wypozyczenia between date(\"" + dataPocz + "\") and date(\"" + dataKon + "\")"); dt1 = baza.GetDataTable(zapytanie); dt2 = baza.GetDataTable(zapytanieNieaktywne); dt3 = baza.GetDataTable(zapytanieLiczbaWypKsiazki); dt4 = baza.GetDataTable(zapytanieLiczbaWypCzasopism); foreach (DataRow row in dt1.Rows) { KartaCzytelnika rekord = new KartaCzytelnika(); rekord.Id = Convert.ToInt32(row["pom"]); listaKartCzytelnika.Add(rekord); } foreach (DataRow row in dt2.Rows) { KartaCzytelnika rekord = new KartaCzytelnika(); rekord.Id = Convert.ToInt32(row["pom"]); listaNieaktywnychKartCzytelnika.Add(rekord); } foreach (DataRow row in dt3.Rows) { LiczbaWypozyczen rekord = new LiczbaWypozyczen(); rekord.Id = Convert.ToInt32(row["pom"]); listaWypozyczenKsiazek.Add(rekord); } foreach (DataRow row in dt4.Rows) { LiczbaWypozyczen rekord = new LiczbaWypozyczen(); rekord.Id = Convert.ToInt32(row["pom"]); listaWypozyczenCzasopism.Add(rekord); } liczbaNieaktywnych = listaNieaktywnychKartCzytelnika.Count(); liczbaWszystkich = listaKartCzytelnika.Count(); liczbaWypKsiazek = listaWypozyczenKsiazek.Count(); liczbaWypCzasopism = listaWypozyczenCzasopism.Count(); liczbaWypOgolem = liczbaWypKsiazek + liczbaWypCzasopism; if ((liczbaWszystkich != 0)) { udzialOsobNieaktywnychLabel.Text = String.Format("{0}%", Math.Round(liczbaNieaktywnych / liczbaWszystkich, 3).ToString()); } if (string.IsNullOrEmpty(rodzajZbioruComboBox.Text)) { MessageBox.Show("Proszę wybrać rodzaj zbiorów bibliotecznych.", "Analiza stanu czytelnictwa"); } else { rodzajZbioru = this.rodzajZbioruComboBox.SelectedItem.ToString(); } switch (rodzajZbioru) { case "książki": this.calkowitaLiczbaWypLabel.Text = Convert.ToString(liczbaWypKsiazek); break; case "czasopisma": this.calkowitaLiczbaWypLabel.Text = Convert.ToString(liczbaWypCzasopism); break; case "wszystkie": this.calkowitaLiczbaWypLabel.Text = Convert.ToString(liczbaWypOgolem); break; } }