예제 #1
0
        private void btnKayitOl_Click(object sender, EventArgs e)
        {
            // Textboxlardan veriler alınıp müşteri nesnesinin nitelikleri doldurulacak oluşan nesne veri tabanına kaydedilecek

            this.ActiveControl = checkBoxKosullar;

            Musteri musteri = new Musteri();

            if (txtSifre.Text.Equals(txtSifreTekrar.Text))
            {
                if (!kullaniciAdiBosMu && !isimBosMu && !soyisimBosMu && !ePostaBosMu && !sifreBosMu && !sifreTekrarBosMu && !telefonNoBosMu && checkBoxKosullar.Checked)
                {
                    //Bu şart gerçekleşirse bütün textboxlar doldurulmuştur ve kayıt için değerlendirmeye alınabilir.

                    musteri.hataKodlari  = "?";
                    musteri.KullaniciAdi = txtKullaniciAdi.Text;
                    musteri.Isim         = txtIsim.Text;
                    musteri.Soyisim      = txtSoyisim.Text;
                    musteri.EPosta       = txtEposta.Text;
                    musteri.Sifre        = txtSifre.Text;
                    musteri.TelefonNo    = txtTelefonNo.Text;
                }

                if (checkBoxKosullar.Checked == false)
                {
                    // checkbox işaretlenmediyse kk6_ hata kodunu hata kodlarına ekler böylece formda uyarı sembolleri hangi textboxun yanında çıkacak belli ediliyor..
                    musteri.hataKodlari += "kk6_";
                }

                if (!musteri.hataKodlari.Equals("?"))
                {
                    // Buradaki şart bloğumuz, hata kodumuz "?" değilse yani hatamız varsa bir hata mesajı yazmak içindir.
                    string hataMesaji = "Kayıt işlemi gerçekleştiremedi :\n";

                    if (musteri.hataKodlari.Contains("ep3"))
                    {
                        hataMesaji += "●Geçersiz e-posta adresi\n";
                    }
                    if (musteri.hataKodlari.Contains("s4"))
                    {
                        hataMesaji += "●Güvenliksiz şifre\n" +
                                      "Şifreniz : büyük/küçük harf rakam ve özel sembollerden en az üçünü birlikte içermeli ve min 6 karakterden oluşmalı. \n(Örn: Password_123) \n";
                    }
                    if (musteri.hataKodlari.Contains("t5"))
                    {
                        hataMesaji += "●Geçersiz telefon numarası\n";
                    }
                    if (musteri.hataKodlari.Contains("kk6"))
                    {
                        hataMesaji += "●Kullanım koşulları kabul edilmedi\n";
                    }
                    MessageBox.Show(hataMesaji, "Kayıt Yapılamadı", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }

                if (musteri.KayitKontrol() && checkBoxKosullar.Checked)
                {
                    // Veritabanında kullanıcı adı kontrolü yapılıp kayıt işlemleri gerçekleştirilecek

                    SqlDatabase database = new SqlDatabase();

                    string BKD        = "Collate SQL_Latin1_General_CP1254_CS_AS"; //Büyük-küçük harf duyarlılığını sağlayan SQL kodu.
                    string commandStr = $"SELECT COUNT(Kullanici_adi) as kontrol FROM Kullanicilar WHERE Kullanici_adi {BKD} = '{musteri.KullaniciAdi}'";

                    SqlDataReader reader = database.Reader(commandStr);

                    while (reader.Read())
                    {
                        if (Convert.ToByte(reader[0]) == 1)
                        {
                            // Kullanıcı adı daha önceden sisteme kayıt olmuştur. Müşteri başka bir kullanıcı adı bulmalıdır.
                            MessageBox.Show("Kullanıcı adı başkası tarafından kullanılıyor. Lütfen başka bir kullanıcı adı deneyiniz.", "Kayıt yapılamadı", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            pnlKullaniciAdi.Visible = true;
                            txtKullaniciAdi.Text    = "Kullanıcı Adı";
                        }
                        else
                        {
                            // Kayıt işlemleri gerçekleşebilir.
                            try
                            {
                                string queryStr = $"INSERT INTO Kullanicilar (Kullanici_adi,Isim,Soyisim,E_posta,Sifre,Telefon_no) VALUES ('{txtKullaniciAdi.Text}','{txtIsim.Text}','{txtSoyisim.Text}','{txtEposta.Text}','{txtSifre.Text}','{txtTelefonNo.Text}')";

                                database.Add_Update_Delete(queryStr); // Ekle metoduna komudumuz göderildi.

                                DialogResult result = MessageBox.Show("KAYIT İŞLEMİNİZ GERÇEKLEŞMİŞTİR", "Kayıt tamamlandı", MessageBoxButtons.OK, MessageBoxIcon.Information);

                                if (result == DialogResult.OK)
                                {
                                    btnBack_Click(sender, e);
                                }
                            }
                            catch (Exception exception)
                            {
                                MessageBox.Show(exception.Message.ToString(), "Kayıt gerçekleştirilemedi", MessageBoxButtons.OK, MessageBoxIcon.Error);
                            }
                        }
                    }
                    database.Disconnect();
                }
            }
            else
            {
                // Şifreler uyuşmuyordur ve hata kodlarına s4_ kodunu ekler böylece formda uyarı sembolleri hangi textboxun yanında çıkacak belli ediliyor.
                musteri.hataKodlari += "s4_";
                MessageBox.Show("Şifreler uyuşmuyor lütfen şifrelerinizi kontrol ediniz.", "Eşleşme Hatası", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            // Aşağıdaki if blokları textboxların boş olması durumunda ya da hata kodunun eşleşmesi durumunda ilgili textbox un yanında uyarı işaretini aktifleştirir.

            if (kullaniciAdiBosMu || musteri.hataKodlari.Contains("ka0"))
            {
                pnlKullaniciAdi.Visible = true;
            }
            if (isimBosMu || musteri.hataKodlari.Contains("i1"))
            {
                pnlIsim.Visible = true;
            }
            if (soyisimBosMu || musteri.hataKodlari.Contains("s2"))
            {
                pnlSoyisim.Visible = true;
            }
            if (ePostaBosMu || musteri.hataKodlari.Contains("ep3"))
            {
                pnlEposta.Visible = true;
            }
            if (sifreBosMu || musteri.hataKodlari.Contains("s4"))
            {
                pnlSifre.Visible = true;
            }
            if (sifreTekrarBosMu || musteri.hataKodlari.Contains("s4"))
            {
                pnlSifreTekrar.Visible = true;
            }
            if (telefonNoBosMu || musteri.hataKodlari.Contains("t5"))
            {
                pnlTelefonNo.Visible = true;
            }
        }