public PanelAdministratora()
        {
            InitializeComponent();

            czytelnikRepository = new CzytelnikRepository();
            kartaCzytelnikaRepository = new KartaCzytelnikaRepository();
            ksiazkaRepository = new KsiazkaRepository();
            czasopismoRepository = new CzasopismoRepository();
            wcRepository = new WCRepository();
            wkRepository = new WKRepository();
            ecRepository = new ECRepository();
            ekRepository = new EKRepository();

            PobierzDaneRepozytorium(); //Pobieramy dane wszystkich repozytoriów

            //Pobieramy dane do kontrolek
            LoadKsiazkiGridView();
            LoadCzasopismaGridView();
            LoadCzytelnicyGridView();
            LoadWypozyczeniaGridView();
            LoadNajczesciejWybieraneGridView();

            LoadKategoriaComboBox();
            LoadTematykaComboBox();
            LoadCzestotliwoscComboBox();
            LoadOdbiorcaComboBox();
            LoadCzestotliwoscUkazywaniaSieComboBox();
            LoadOdbiorcaComboBox2();

            LoadGrupaWiekowaComboBox();
            LoadPlecComboBox();

            this.toolStripStatusLabel.Text = "Zalogowano jako administrator";
        }
        public PanelCzytelnika(Czytelnik czytelnik)
        {
            InitializeComponent();

            ksiazkaRepository = new KsiazkaRepository();
            czasopismoRepository = new CzasopismoRepository();
            kartaCzytelnikaRepository = new KartaCzytelnikaRepository();
            wcRepository = new WCRepository();
            wkRepository = new WKRepository();
            ecRepository = new ECRepository();
            ekRepository = new EKRepository();

            PobierzDane();

            KartaCzytelnika karta = kartaCzytelnikaRepository.PoCzytelniku(czytelnik);
            this.Karta = karta;

            //Pobieramy dane do kontrolek
            LoadKsiazkiGridView();
            LoadCzasopismaGridView();
            LoadWypozyczeniaGridView();

            LoadKategoriaComboBox();
            LoadTematykaComboBox();
            LoadCzestotliwoscComboBox();
            LoadOdbiorcaComboBox();

            this.toolStripStatusLabel2.Text = String.Format("Zalogowano jako {0}", czytelnik.Imie);

            //Dane czytelnika
            this.imieLabel.Text = czytelnik.Imie;
            this.nazwiskoLabel.Text = czytelnik.Nazwisko;
            this.peselLabel.Text = czytelnik.Pesel;
            if (czytelnik.Plec.ToString().Equals("M"))
                this.plecLabel.Text = "Mężczyzna";
            else
                this.plecLabel.Text = "Kobieta";
            this.dataUrodzeniaLabel.Text = Convert.ToString(czytelnik.DataUrodzenia.ToShortDateString());

            //Dane dot. adresu czytelnika
            Adres adresCzytelnika = czytelnik.Adres;
            this.ulicaLabel.Text = adresCzytelnika.Ulica;
            this.kodPocztowyLabel.Text = adresCzytelnika.KodPocztowy;
            this.miejscowoscLabel.Text = adresCzytelnika.Miejscowosc;
            this.telefonLabel.Text = adresCzytelnika.Telefon;
            this.statusLabel.Text = karta.Status;
            this.dataWystawieniaLabel.Text = Convert.ToString(karta.DataWystawienia.ToShortDateString());
            this.terminWaznosciLabel.Text = Convert.ToString(karta.DataWystawienia.ToShortDateString());

            this.label6.Visible = false;
        }
        public PanelCzytelnika(string gosc)
        {
            InitializeComponent();

            ksiazkaRepository = new KsiazkaRepository();
            czasopismoRepository = new CzasopismoRepository();
            kartaCzytelnikaRepository = new KartaCzytelnikaRepository();
            wcRepository = new WCRepository();
            wkRepository = new WKRepository();
            ecRepository = new ECRepository();
            ekRepository = new EKRepository();

            PobierzDane(); //Pobieramy dane wszystkich repozytoriów

            //Pobieramy dane do kontrolek
            LoadKsiazkiGridView();
            LoadCzasopismaGridView();

            LoadKategoriaComboBox();
            LoadTematykaComboBox();
            LoadCzestotliwoscComboBox();
            LoadOdbiorcaComboBox();

            this.toolStripStatusLabel2.Text = String.Format("Zalogowano jako {0}", gosc);
            this.imieLabel.Text = "Gość";
            this.nazwiskoLabel.Text = "Gość";
            this.peselLabel.Text = "";
            this.plecLabel.Text = "";
            this.dataUrodzeniaLabel.Text = Convert.ToString(DateTime.Today.ToShortDateString()); //ustawione na dziś że niby gość sie urodził w tej chwili
            this.label5.Visible = false;
            this.label4.Visible = false;

            this.groupBox2.Visible = false;
            this.groupBox3.Visible = false;
            this.szczegolyKsiazkiButton.Visible = false;
            this.szczegolyCzasopismaButton.Visible = false;
            this.zmianaHaslaMenuItem.Visible = false;

            this.wypozyczeniaGridView.Visible = false; // ukrywa data griedView z wypozyczeniami
            this.label6.Text = @"Gość nie może mieć wypożyczonych ksiażek i czasopism,
            musisz być zalogowany aby to uczynić"; //ustawia text
            this.label6.Font = new Font(this.Font.FontFamily, 20); // ustawia czcionke labela
            this.label6.Location = new Point(150, 55); //ustawia na jakiej pozycji ma się znajdować label6
        }
        //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;
                }
            }
        }
        //Usuwamy czytelnika
        private void UsunButtonClick(object sender, EventArgs e)
        {
            WKRepository wkRepository = new WKRepository();
            WCRepository wcRepository = new WCRepository();
            KartaCzytelnikaRepository kartaCzytelnikaRepository = new KartaCzytelnikaRepository();

            if (MessageBox.Show("Usunąć czytelnika?", "Ostrzeżenie", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                foreach (var obj in wypozyczenia)
                {
                    if (obj.GetType().Name.Equals("WypozyczenieKsiazki"))
                    {
                        obj.DataZwrotu = DateTime.Now;
                        wkRepository.Edytuj((WypozyczenieKsiazki)obj);
                    }
                    else
                    {
                        obj.DataZwrotu = DateTime.Now;
                        wcRepository.Edytuj((WypozyczenieCzasopisma)obj);
                    }
                }

                karta.Status = "RIP";
                kartaCzytelnikaRepository.Edytuj(karta);

                this.DialogResult = DialogResult.OK;
            }
        }
        private void StatusKartyButtonClick(object sender, EventArgs e)
        {
            KartaCzytelnikaRepository kartaCzytelnikaRepository = new KartaCzytelnikaRepository();
            KartaCzytelnika aktywuj = karta;

            if (this.statusKartyButton.Text.Equals("Aktywuj"))
            {
                aktywuj.Status = "aktywna";
                this.statusLabel.Text = "aktywna";
            }
            else
            {
                aktywuj.Status = "nieaktywna";
                this.statusLabel.Text = "nieaktywna";
            }

            kartaCzytelnikaRepository.Edytuj(aktywuj);
        }