Translate

Yemek Sepeti Otomasyonu


//Firma İşlemlerinin tutulduğu sınıf

using System;

using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace YemekSepeti

{
    public partial class FirmaIslemler : Form
    {
        private DataTable dt;
        private int FirmaID = -1;
        private string EskiKullaniciAdi = "";

        public FirmaIslemler(Form1 frm) // bu formun parent i anaform olacak

        {
            InitializeComponent();
            this.MdiParent = frm;
            GridDoldur();
        }

        private void GridDoldur()

        {
            if (dataGridView1.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    dt.Rows.RemoveAt(i);
                }
            }
            if (Kullanici.firmalar.Count > 0)
            {
                dt = null;
                dt = new DataTable();
                dt.Columns.Add("FirmaID");
                dt.Columns.Add("Firma İl");
                dt.Columns.Add("Firma İlçe");
                dt.Columns.Add("Firma İsim");
                dt.Columns.Add("Firma Tel");
                dt.Columns.Add("Firma Kullanıcı");
                dt.Columns.Add("Firma Şifre");
                for (int i = 0; i < Kullanici.firmalar.Count; i++)
                {
                    DataRow dr = dt.NewRow();
                    for (int j = 0; j < Kullanici.firmalar[i].ToString().Split('#').Length; j++)
                    {
                        dr[j] = Kullanici.firmalar[i].ToString().Split('#')[j];
                    }
                    dt.Rows.Add(dr);
                }
                dataGridView1.DataSource = dt;
                dataGridView1.Columns[0].Visible = false;
                dataGridView1.Columns[6].Visible = false;
            }
        }

        private void btnKaydet_Click(object sender, EventArgs e)

        {
            if (FirmaID < 0) // ekleme kısmı
            {
                if (Kullanici.firmalar.Count > 0)
                    FirmaID = Convert.ToInt32(Kullanici.firmalar[Kullanici.firmalar.Count - 1].ToString().Split('#')[0]) + 1;

                for (int i = 0; i < Kullanici.kullanicilar.Count; i++) // kayıt olurken aynı kullanıcı adı var mı onu kontrol ediyoruz..

                {
                    if (txtKullanici.Text.Trim().Equals(Kullanici.kullanicilar[i].ToString().Split('#')[1]))
                    {
                        MessageBox.Show("Aynı kullanıcı ismi zaten mevcut !!\r\nBaska bir kullanıcı adı deneyiniz !!", "UYARI", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                }

                string FirmaIl = txtIl.Text;

                string FirmaIlce = cmbIlceler.Text;
                string FirmaIsim = txtIsim.Text;
                string FirmaTel = txtTel.Text;
                string FirmaKullanici = txtKullanici.Text;
                string FirmaSifre = txtSifre.Text;
                string firmaEkle = String.Format("{0}#{1}#{2}#{3}#{4}#{5}#{6}",
                                    FirmaID, FirmaIl, FirmaIlce, FirmaIsim, FirmaTel, FirmaKullanici, FirmaSifre);
                Kullanici.firmalar.Add(firmaEkle); // arrayliste ekliyoruz sonra

                int kullaniciID = Convert.ToInt32(Kullanici.kullanicilar[Kullanici.kullanicilar.Count - 1].ToString().Split('#')[0]) + 1;

                string arrayEkle = String.Format("{0}#{1}#{2}#{3}", kullaniciID, FirmaKullanici, FirmaSifre, 2);
                Kullanici.kullanicilar.Add(arrayEkle);

                // firmalar ve kullanıcıları dosyalara yazıyoruz son güncel hallerini

                // yeni firma giriş yaparken sorun çıkmasın diye kullanıcılar dosyasına da ekleme 
                // yapmamız gerekiyor.
                StreamWriter sw = new StreamWriter(Kullanici.yol + "kullanicilar.txt", false, Encoding.GetEncoding("windows-1254"));

                for (int i = 0; i < Kullanici.kullanicilar.Count; i++)

                    sw.WriteLine(Kullanici.kullanicilar[i].ToString());
                sw.Close();

                sw = new StreamWriter(Kullanici.yol + "firmalar.txt", false, Encoding.GetEncoding("windows-1254"));


                for (int i = 0; i < Kullanici.firmalar.Count; i++)

                    sw.WriteLine(Kullanici.firmalar[i].ToString());
                sw.Close();
                MessageBox.Show("Firma Başarıyla Kaydedildi !!", "BİLGİ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                GridDoldur();
                btnKaydet.Text = "Güncelle";
                btnKaydet.Image = YemekSepeti.Properties.Resources.refresh24;
            }
            else // güncelleme kısmı
            {
                string FirmaIl = txtIl.Text;
                string FirmaIlce = cmbIlceler.Text;
                string FirmaIsim = txtIsim.Text;
                string FirmaTel = txtTel.Text;
                string FirmaKullanici = txtKullanici.Text;
                string FirmaSifre = txtSifre.Text;
                string firmaEkle = String.Format("{0}#{1}#{2}#{3}#{4}#{5}#{6}",
                                    FirmaID, FirmaIl, FirmaIlce, FirmaIsim, FirmaTel, FirmaKullanici, FirmaSifre);

                // hangi firmayı güncelleyeceğini buluyoruz sadece onu güncellememiz lazım çünkü

                // bunu da firma ID ile yapabiliyoruz kontrol ederek dosaynın içindeki ile elimizdekini
                for (int i = 0; i < Kullanici.firmalar.Count; i++) 
                {
                    if (Convert.ToInt32(Kullanici.firmalar[i].ToString().Split('#')[0]) == FirmaID)
                        Kullanici.firmalar[i] = firmaEkle;
                }

                // kullanıcı üzerinde de yapılacak değişikliği güncellememiz lazım 

                // onu da kullanıcı adını kontrol ederek yapıyoruz. nasıl gidiyoruz ?
                for (int i = 0; i < Kullanici.kullanicilar.Count; i++) // burası düzeltilecek sorun var burda
                {
                    if (Kullanici.kullanicilar[i].ToString().Split('#')[1] == EskiKullaniciAdi)
                    {
                        int kullaniciID = Convert.ToInt32(Kullanici.kullanicilar[i].ToString().Split('#')[0]);
                        string arrayEkle = String.Format("{0}#{1}#{2}#{3}", kullaniciID, FirmaKullanici, FirmaSifre, 2);
                        Kullanici.kullanicilar[i] = arrayEkle;
                    }
                } 

                StreamWriter sw = new StreamWriter(Kullanici.yol + "kullanicilar.txt", false, Encoding.GetEncoding("windows-1254"));


                for (int i = 0; i < Kullanici.kullanicilar.Count; i++)

                    sw.WriteLine(Kullanici.kullanicilar[i].ToString());
                sw.Close();

                sw = new StreamWriter(Kullanici.yol + "firmalar.txt", false, Encoding.GetEncoding("windows-1254"));


                for (int i = 0; i < Kullanici.firmalar.Count; i++)

                    sw.WriteLine(Kullanici.firmalar[i].ToString());
                sw.Close();
                MessageBox.Show("Firma Başarıyla Güncellendi !!", "BİLGİ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                GridDoldur();
                btnKaydet.Text = "Güncelle";
            }
        }

        private void dataGridView1_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)

        {
            // satırın başına tıklandığında o firmanın bilgileri üstte textbox lara doluyor
            // firmaid de anyı şekilde kaydederken de firmaid yi kontrol ederek acaba
            // yeni firme mi ekliyor yoksa olan firmayı mı güncelliyor anlıyoruz
            // griddeki satırın basına tıkladığımızda bilgileri üste yazıyoruz ya id yi de ayni
            // şekilde alıyoruz 1. sutun id yi veriyor ya
            // kaydetme, güncelleme tamam silmeyi de yapmamız lazım dimi ?
            // beraber yapalım o zaman olmaz mı  :)yani o bzm içn biraz üst düzey butonla yapsak
            // yok yok şimdi mesala buton un click olayı varya aynı şekilde gridin de kendine özel fonksiyonları
            // var onlardan yararlanacağız dataGridView1_RowHeaderMouseClick bunun yerine DoubleClick olacak

            FirmaID = Convert.ToInt32(dt.Rows[e.RowIndex][0]);

            txtIl.Text = dt.Rows[e.RowIndex][1].ToString();
            cmbIlceler.SelectedItem = dt.Rows[e.RowIndex][2].ToString();
            txtIsim.Text = dt.Rows[e.RowIndex][3].ToString();
            txtTel.Text = dt.Rows[e.RowIndex][4].ToString();
            txtKullanici.Text = dt.Rows[e.RowIndex][5].ToString();
            txtSifre.Text = dt.Rows[e.RowIndex][6].ToString();
            btnKaydet.Text = "Güncelle";

            EskiKullaniciAdi = dt.Rows[e.RowIndex][5].ToString();

            btnKaydet.Image = YemekSepeti.Properties.Resources.refresh24;
            //MessageBox.Show(FirmaID.ToString());
        }

        private void btnYeniFirma_Click(object sender, EventArgs e)

        {
            // yeni firma dediği zaman da textbox ları boşaltıyoruz
            // firmaid yi de -1 yapıp kaydet e girmesini sağlıuoruz...
            FirmaID = -1;
            txtIl.Text = "Erzurum";
            cmbIlceler.SelectedIndex = -1;
            txtIsim.Text = "";
            txtKullanici.Text = "";
            txtSifre.Text = "";
            txtTel.Text = "";
            btnKaydet.Text = "Kaydet";
            btnKaydet.Image = YemekSepeti.Properties.Resources.add24;
        }

        private void dataGridView1_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)

        {
            DialogResult dr = MessageBox.Show("Firma Kaydı Silinecektir !!\r\nDevam Etmek İstiyor Musunuz ?", "UYARI", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
            if (dr == DialogResult.Yes)
            {
                StreamWriter sw = null;
                for (int i = 0; i < Kullanici.firmalar.Count; i++)
                {
                    if (FirmaID == Convert.ToInt32(Kullanici.firmalar[i].ToString().Split('#')[0]))
                    {
                        Kullanici.firmalar.RemoveAt(i); // arraylist den sildik

                        sw = new StreamWriter(Kullanici.yol + "firmalar.txt", false, Encoding.GetEncoding("windows-1254"));


                        for (int j = 0; j < Kullanici.firmalar.Count; j++) // burda da dosyadan siliyoruz

                            sw.WriteLine(Kullanici.firmalar[j].ToString());
                        sw.Close();
                    }
                }

                for (int i = 0; i < Kullanici.kullanicilar.Count; i++)

                {
                    if (txtKullanici.Text.Equals(Kullanici.kullanicilar[i].ToString().Split('#')[1]))
                    {
                        Kullanici.kullanicilar.RemoveAt(i);

                        sw = new StreamWriter(Kullanici.yol + "kullanicilar.txt", false, Encoding.GetEncoding("windows-1254"));


                        for (int j = 0; j < Kullanici.kullanicilar.Count;j++)

                            sw.WriteLine(Kullanici.kullanicilar[j].ToString());
                        sw.Close();
                    }
                }

                MessageBox.Show("Firma Başarıyla Silindi !!", "BİLGİ", MessageBoxButtons.OK, MessageBoxIcon.Information);

                GridDoldur();
                btnYeniFirma.PerformClick();
            }
            else
                return;
        }
    }
}



_________________________________________________________________________________

//Form işlemlerinin yapıldığı sınıf



    public partial class Form1 : Form
    {
        public static string FirmaAdi = "";
        public static string FirmaIlce = "";

        public Form1()
        {
            InitializeComponent();

            // lkullanıcı tibine göre bazı menüleri göremeyecek
            // örneğin firma yönetim kısmını göremeyecek
            // veya müşteri firma ya da yönetim kısmını göremeyecek
            if (Kullanici.kullaniciTipi == 1)
            {
                firmaToolStripMenuItem.Visible = false;
                müşteriToolStripMenuItem.Visible = false;
                this.Text = ".. :: YÖNETİCİ :: ..";
            }
            else if(Kullanici.kullaniciTipi == 2)
            {
                yönetimToolStripMenuItem.Visible = false;
                müşteriToolStripMenuItem.Visible = false;
                for (int i = 0; i < Kullanici.firmalar.Count; i++)
                {
                    if (Kullanici.firmalar[i].ToString().Split('#')[5] == Kullanici.kullaniciAdi)
                    {
                        this.Text = String.Format(".. :: {0} :: ..", Kullanici.firmalar[i].ToString().Split('#')[3]);
                        FirmaAdi = Kullanici.firmalar[i].ToString().Split('#')[3];
                    }
                }
            }
            else if (Kullanici.kullaniciTipi == 3)
            {
                yönetimToolStripMenuItem.Enabled = false;
                firmaToolStripMenuItem.Enabled = false;
                this.Text = String.Format(".. :: {0} :: ..", Kullanici.kullaniciAdi);
            }
        }

        private void çıkışToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            Application.Exit();
        }

        private void firmaİşlemleriToolStripMenuItem_Click(object sender, EventArgs e)
        {
            new FirmaIslemler(this).Show(); // form1 i ona yolluyoyoruz
        }

        private void ürünBilgileriToolStripMenuItem_Click(object sender, EventArgs e)
        {
            new UrunIslemler(this).Show();
        }

        private void ürünAramaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            new UrunArama(this).Show();
        }

        private void sepetimToolStripMenuItem_Click(object sender, EventArgs e)
        {
            new Sepetim(this).Show();
        }

        private void siparişListesiToolStripMenuItem_Click(object sender, EventArgs e)
        {
            new SiparisListesi(this).Show();
        }
    }
}




_________________________________________________________________________________

//Kullanıcı ile ilgili işlemlerin tutulduğu sınıf



    public partial class Kullanici : Form
    {
        // her bilgi icin kullanılacak değişkenler
        // arraylist dinamik dizi gibi düşünebiliriz
        // boyut belirtmeden ekleme yapibliyorsun
        // statik olmasının amacı class'ın nesnesini oluşturmadan direk erişebilirsin

        public static ArrayList kullanicilar = new ArrayList();
        public static ArrayList firmalar = new ArrayList();
        public static ArrayList musteriler = new ArrayList();
        public static ArrayList siparisler = new ArrayList();
        public static ArrayList urunler = new ArrayList();

        // dosyaların olduğu dizini yol değişkeninde tuttuk
        public static string yol = Application.StartupPath + "\\dosyalar\\";

        // kullanıcı tipini anaformda kullanıcıya göre görebileceği menüler değişecek 
        // o yüzden tutuyoruz..
        public static int kullaniciTipi = -1;
        public static string kullaniciAdi = "";

        private int id = 1;

        public Kullanici()
        {
            InitializeComponent();
        }

        private void Kullanici_Load(object sender, EventArgs e)
        {
            try
            {
                // kullanıcılar.txt dosyasini okuyoruz..
                kullanicilar.Clear();
                string line = "";
                StreamReader reader = new StreamReader(yol + "kullanicilar.txt", Encoding.GetEncoding("windows-1254"));
                while ((line = reader.ReadLine()) != null)
                {
                    kullanicilar.Add(line);
                }
                reader.Close();

                // firmalar.txt dosyasini okuyoruz..
                firmalar.Clear();
                reader = new StreamReader(yol + "firmalar.txt", Encoding.GetEncoding("windows-1254"));
                while ((line = reader.ReadLine()) != null)
                {
                    firmalar.Add(line);
                }
                reader.Close();

                // siparisler.txt dosyasını okuyoruz
                // encoding i türkçe karakterlerde sorun çıkarmasın diye yapıyoruz..
                siparisler.Clear();
                reader = new StreamReader(yol + "siparisler.txt", Encoding.GetEncoding("windows-1254"));
                while ((line = reader.ReadLine()) != null)
                {
                    siparisler.Add(line);
                }
                reader.Close();

                urunler.Clear();
                reader = new StreamReader(yol + "urunler.txt", Encoding.GetEncoding("windows-1254"));
                while ((line = reader.ReadLine()) != null)
                {
                    urunler.Add(line);
                }
                reader.Close();
                //MessageBox.Show(kullanicilar.Count.ToString());
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private void chkYeniUye_CheckedChanged(object sender, EventArgs e)
        {
            // yeni üye mi yoksa giriş mi yapacak anlamak için yapıyoruz bunları.
            // hani kullanıcı kayıtlarında sifreyi 2 kere yazdırır ya onun için
            if (chkYeniUye.Checked)
            {
                lblSifrreTekrar.Visible = true;
                txtSifreTekrar.Visible = true;
                chkYeniUye.Location = new Point(chkYeniUye.Location.X, chkYeniUye.Location.Y + 30);
                btnGiris.Location = new Point(btnGiris.Location.X, btnGiris.Location.Y + 30);
                this.Height += 40;
                btnGiris.Text = "   Kaydet";
            }
            else
            {
                lblSifrreTekrar.Visible = false;
                txtSifreTekrar.Visible = false;
                chkYeniUye.Location = new Point(chkYeniUye.Location.X, chkYeniUye.Location.Y - 30);
                btnGiris.Location = new Point(btnGiris.Location.X, btnGiris.Location.Y - 30);
                this.Height -= 40;
                btnGiris.Text = "   Giriş";
            }
        }

        private void btnGiris_Click(object sender, EventArgs e)
        {
            if (chkYeniUye.Checked) // giriş mi yapacak yeni üye kaydı mı ?
            {
                id = -1;
                if (txtSifre.Text.Trim().Equals(txtSifreTekrar.Text.Trim()))
                {
                    for (int i = 0; i < kullanicilar.Count; i++) // kayıt olurken aynı kullanıcı adı var mı onu kontrol ediyoruz..
                    {
                        if (txtKullniciAdi.Text.Trim().Equals(kullanicilar[i].ToString().Split('#')[1]))
                        {
                            MessageBox.Show("Aynı kullanıcı ismi zaten mevcut !!\r\nBaska bir kullanıcı adı deneyiniz !!", "UYARI", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                            return;
                        }
                    }

                    if(kullanicilar.Count > 0)
                        id = Convert.ToInt32(kullanicilar[kullanicilar.Count - 1].ToString().Split('#')[0]) + 1;
                    
                    // yeni kayıt için dosyaya yeni üyeyi ekliyoruz...
                    string kullaniciAdi = txtKullniciAdi.Text.Trim();
                    string sifre = txtSifre.Text.Trim();
                    string arrayEkle = String.Format("{0}#{1}#{2}#{3}", id, kullaniciAdi, sifre, 3);
                    kullanicilar.Add(arrayEkle);

                    StreamWriter sw = new StreamWriter(yol + "kullanicilar.txt", false, Encoding.GetEncoding("windows-1254"));
                    
                    for (int i = 0; i < kullanicilar.Count; i++)
                        sw.WriteLine(kullanicilar[i].ToString());

                    sw.Close(); 
                    
                    if (kullanicilar.Count > 0)
                        id = Convert.ToInt32(kullanicilar[kullanicilar.Count - 1].ToString().Split('#')[0]) + 1;

                    // yeni kayıt için dosyaya yeni üyeyi ekliyoruz...
                    kullaniciAdi = txtKullniciAdi.Text.Trim();
                    sifre = txtSifre.Text.Trim();
                    arrayEkle = String.Format("{0}#{1}#{2}#{3}", id, kullaniciAdi, sifre, 3);
                    kullanicilar.Add(arrayEkle);

                    sw = new StreamWriter(yol + "urunler.txt", false, Encoding.GetEncoding("windows-1254"));

                    for (int i = 0; i < kullanicilar.Count; i++)
                        sw.WriteLine(urunler[i].ToString());

                    sw.Close();

                    MessageBox.Show("Bilgiler Başarıyla Kaydedildi", "BİLGİ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                chkYeniUye.CheckState = CheckState.Unchecked;
            }
            else  // eğer giriş yapıyorsa da kullanıcı tipini ve kullanıcı adını alıyoruz..
            {
                for (int i = 0; i < kullanicilar.Count; i++)
                {
                    if(txtKullniciAdi.Text.Trim().Equals(kullanicilar[i].ToString().Split('#')[1]))
                    {
                        kullaniciAdi = kullanicilar[i].ToString().Split('#')[1];
                        kullaniciTipi = Convert.ToInt32(kullanicilar[i].ToString().Split('#')[3]);
                        this.Hide();
                        new Form1().ShowDialog(); // girişi başarılıysa da anaforma geçiyoruz
                    }
                }
                if (kullaniciAdi.Equals(""))
                {
                    MessageBox.Show("Bu isimde bir kullanıcı bulunmamaktadır !!", "UYARI", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }
            }
        }
    }
}




_________________________________________________________________________________

//Sipariş listesi ve diğer işlemlerin gerçekleştirildiği sınıf



    public partial class Sepetim : Form
    {
        private ArrayList sepetim = new ArrayList();
        private ArrayList siparisler = new ArrayList();

        private DataTable dt;

        public Sepetim(Form1 frm)
        {
            InitializeComponent();
            this.MdiParent = frm;

            string yol = Application.StartupPath + "\\dosyalar\\";
            string line = "";
            StreamReader reader = new StreamReader(yol + "siparisler.txt", Encoding.GetEncoding("windows-1254"));
            while ((line = reader.ReadLine()) != null)
            {
                siparisler.Add(line);
            }
            reader.Close();

            for (int i = 0; i < siparisler.Count; i++)
            {
                if (Kullanici.kullaniciAdi.Equals(siparisler[i].ToString().Split('#')[6]))
                    sepetim.Add(siparisler[i]);
            }

            GridDoldur();
        }

        private void GridDoldur()
        {
            if (sepetim.Count > 0)
            {
                dt = null;
                dt = new DataTable();
                dt.Columns.Add("ÜrünID");
                dt.Columns.Add("Ürün Adı");
                dt.Columns.Add("Ürün Fiyatı (TL)", typeof(float));
                dt.Columns.Add("Firma Adi");
                dt.Columns.Add("Firma Kullanıcı");
                dt.Columns.Add("Firma İlçe");
                dt.Columns.Add("Müşteri");
                dt.Columns.Add("Sipariş Tarih");

                for (int i = 0; i < sepetim.Count; i++)
                {
                    DataRow dr = dt.NewRow();
                    for (int j = 0; j < sepetim[i].ToString().Split('#').Length; j++)
                    {
                        dr[j] = sepetim[i].ToString().Split('#')[j];
                    }
                    dt.Rows.Add(dr);
                }
                dataGridView1.Columns.Clear();
                dataGridView1.DataSource = dt;

                dataGridView1.Columns[0].Visible = false;
                dataGridView1.Columns[4].Visible = false;
                //dataGridView1.Columns[4].Visible = false;
                dataGridView1.Columns[6].Visible = false;
            }
        }
    }
}



_________________________________________________________________________________

//Sipariş listesinin oluşturulduğu sınıf



    public partial class SiparisListesi : Form
    {
        private ArrayList siparisler = new ArrayList();
        private DataTable dt;

        public SiparisListesi(Form1 frm)
        {
            InitializeComponent();
            this.MdiParent = frm;

            for (int i = 0; i < Kullanici.siparisler.Count; i++)
            {
                if (Kullanici.kullaniciAdi.Equals(Kullanici.siparisler[i].ToString().Split('#')[4]))
                    siparisler.Add(Kullanici.siparisler[i]);
            }

            GridDoldur();
        }

        private void GridDoldur()
        {
            if (siparisler.Count > 0)
            {
                dt = null;
                dt = new DataTable();
                dt.Columns.Add("ÜrünID");
                dt.Columns.Add("Ürün Adı");
                dt.Columns.Add("Ürün Fiyatı (TL)", typeof(float));
                dt.Columns.Add("Firma Adi");
                dt.Columns.Add("Firma Kullanıcı");
                dt.Columns.Add("Firma İlçe");
                dt.Columns.Add("Müşteri");
                dt.Columns.Add("Sipariş Tarih");

                for (int i = 0; i < siparisler.Count; i++)
                {
                    DataRow dr = dt.NewRow();
                    for (int j = 0; j < siparisler[i].ToString().Split('#').Length; j++)
                    {
                        dr[j] = siparisler[i].ToString().Split('#')[j];
                    }
                    dt.Rows.Add(dr);
                }
                dataGridView1.Columns.Clear();
                dataGridView1.DataSource = dt;

                dataGridView1.Columns[0].Visible = false;
                dataGridView1.Columns[3].Visible = false;
                dataGridView1.Columns[4].Visible = false;
                dataGridView1.Columns[5].Visible = false;
            }
        }
    }
}



_________________________________________________________________________________


//Ürün arama işlemlerinin yapıldığı sınıf



    public partial class UrunArama : Form
    {
        private ArrayList aramaListe = new ArrayList();
        private DataTable dt;
        private int SiparisID = 1;

        public UrunArama(Form1 frm)
        {
            InitializeComponent();
            this.MdiParent = frm;
        }

        private void GridDoldur()
        {
            if (aramaListe.Count > 0)
            {
                dt = null;
                dt = new DataTable();
                dt.Columns.Add("ÜrünID");
                dt.Columns.Add("Ürün Adı");
                dt.Columns.Add("Ürün Fiyatı (TL)", typeof(float));
                dt.Columns.Add("Firma Adi");
                dt.Columns.Add("Firma Kullanıcı");
                dt.Columns.Add("Firma İlçe");

                for (int i = 0; i < aramaListe.Count; i++)
                {
                    DataRow dr = dt.NewRow();
                    for (int j = 0; j < aramaListe[i].ToString().Split('#').Length; j++)
                    {
                        dr[j] = aramaListe[i].ToString().Split('#')[j];
                    }
                    dt.Rows.Add(dr);
                }
                dataGridView1.Columns.Clear();
                dataGridView1.DataSource = dt;
                dataGridView1.Columns.Insert(0, new DataGridViewCheckBoxColumn());

                dataGridView1.Columns[0].Width = 10;

                dataGridView1.Columns[1].ReadOnly = true;
                dataGridView1.Columns[2].ReadOnly = true;
                dataGridView1.Columns[3].ReadOnly = true;
                dataGridView1.Columns[4].ReadOnly = true;
                dataGridView1.Columns[5].ReadOnly = true;
                dataGridView1.Columns[6].ReadOnly = true;

                dataGridView1.Columns[1].Visible = false;
                //dataGridView1.Columns[4].Visible = false;
                dataGridView1.Columns[5].Visible = false;
                //dataGridView1.Columns[5].Visible = false;
            }
        }

        private void btnArama_Click(object sender, EventArgs e)
        {
            aramaListe = null;
            aramaListe = new ArrayList();

            if (cmbIlceler.SelectedIndex == -1)
            {
                if (txtUrunAdi.Text.Equals(""))
                    aramaListe = Kullanici.urunler;
                else
                {
                    for (int i = 0; i < Kullanici.urunler.Count; i++)
                    {
                        if (txtUrunAdi.Text.Equals(Kullanici.urunler[i].ToString().Split('#')[1]))
                            aramaListe.Add(Kullanici.urunler[i]);
                    }
                }
            }
            else
            {
                if (txtUrunAdi.Text.Equals(""))
                {
                    for (int i = 0; i < Kullanici.urunler.Count; i++)
                    {
                        if (cmbIlceler.Text.Equals(Kullanici.urunler[i].ToString().Split('#')[5]))
                            aramaListe.Add(Kullanici.urunler[i]);
                    }
                }
                else
                {
                    for (int i = 0; i < Kullanici.urunler.Count; i++)
                    {
                        if (cmbIlceler.Text.Equals(Kullanici.urunler[i].ToString().Split('#')[5]) &&
                            txtUrunAdi.Text.Equals(Kullanici.urunler[i].ToString().Split('#')[1]))
                            aramaListe.Add(Kullanici.urunler[i]);
                    }
                }
            }
            GridDoldur();
        }

        private void btnSiparis_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                //MessageBox.Show(Convert.ToBoolean(dataGridView1.Rows[i].Cells[0].Value).ToString());
                if (Convert.ToBoolean(dataGridView1.Rows[i].Cells[0].Value))
                {
                    if (Kullanici.siparisler.Count > 0)
                        SiparisID = Convert.ToInt32(Kullanici.siparisler[Kullanici.siparisler.Count - 1].ToString().Split('#')[0]) + 1;
                    string UrunAdi = dataGridView1.Rows[i].Cells[2].Value.ToString();
                    string UrunFiyat = dataGridView1.Rows[i].Cells[3].Value.ToString();
                    string FirmaAdi = dataGridView1.Rows[i].Cells[4].Value.ToString();
                    string FirmaKullanici = dataGridView1.Rows[i].Cells[5].Value.ToString();
                    string FirmaIlce = dataGridView1.Rows[i].Cells[6].Value.ToString();
                    string SiparisGun = DateTime.Today.ToShortDateString();

                    string siparisEkle = String.Format("{0}#{1}#{2}#{3}#{4}#{5}#{6}#{7}",
                                    SiparisID, UrunAdi, UrunFiyat, FirmaAdi, FirmaKullanici, FirmaIlce, Kullanici.kullaniciAdi, SiparisGun);

                    Kullanici.siparisler.Add(siparisEkle);
                }
            }

            StreamWriter sw = new StreamWriter(Kullanici.yol + "siparisler.txt", false, Encoding.GetEncoding("windows-1254"));

            for (int i = 0; i < Kullanici.siparisler.Count; i++)
                sw.WriteLine(Kullanici.siparisler[i].ToString());
            sw.Close();

            MessageBox.Show("Sipariş kaydı başarıyla gerçekleşti !!", "BAŞARILI", MessageBoxButtons.OK, MessageBoxIcon.Information);
        }
    }
}




_________________________________________________________________________________


//Ürünle ilgili gerçekleştirileceklerin tutulduğu sınıf



    public partial class UrunIslemler : Form
    {
        private DataTable dt;
        private int UrunID = -1;
        private string FirmaAdi = "";
        private string FirmaIlce = "";

        public UrunIslemler(Form1 frm)
        {
            InitializeComponent();
            this.MdiParent = frm;
            GridDoldur();
        }

        private void GridDoldur()
        {
            if (dataGridView1.Rows.Count > 0)
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    dt.Rows.RemoveAt(i);
                }
            }
            if (Kullanici.firmalar.Count > 0)
            {
                dt = null;
                dt = new DataTable();
                dt.Columns.Add("ÜrünID");
                dt.Columns.Add("Ürün Adı");
                dt.Columns.Add("Ürün Fiyatı (TL)", typeof(float));
                dt.Columns.Add("Firma Adi");
                dt.Columns.Add("Firma Kullanıcı");
                dt.Columns.Add("Firma İlçe");

                for (int i = 0; i < Kullanici.urunler.Count; i++)
                {
                    if (Kullanici.kullaniciAdi.Equals(Kullanici.urunler[i].ToString().Split('#')[4]))
                    {
                        FirmaAdi = Kullanici.urunler[i].ToString().Split('#')[3];
                        DataRow dr = dt.NewRow();
                        for (int j = 0; j < Kullanici.urunler[i].ToString().Split('#').Length; j++)
                        {
                            dr[j] = Kullanici.urunler[i].ToString().Split('#')[j];
                        }
                        dt.Rows.Add(dr);
                    }
                }
                dataGridView1.DataSource = dt;

                dataGridView1.Columns[0].Visible = false;
                dataGridView1.Columns[3].Visible = false;
                dataGridView1.Columns[4].Visible = false;
                dataGridView1.Columns[5].Visible = false;
            }
        }

        private void btnKaydet_Click(object sender, EventArgs e)
        {
            // ilk olarak boş birşey girilmemesini test ediyoruz..
            if (txtUrunAdi.Text.Equals("") || txtUrunFiyat.Text.Equals(""))
            {
                MessageBox.Show("Bilgileri eksik girmeyiniz !!", "UYARI", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return;
            }

            if (UrunID < 0)
            {
                for (int i = 0; i < Kullanici.urunler.Count; i++)
                {
                    if (txtUrunAdi.Text.Trim().Equals(Kullanici.urunler[i].ToString().Split('#')[1]) &&
                        Kullanici.urunler[i].ToString().Split('#')[1].Equals(Kullanici.kullaniciAdi))
                    {
                        MessageBox.Show("Aynı ürün ismi zaten mevcut !!\r\nBaska bir ürün giriniz !!", "UYARI", 
                            MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        return;
                    }
                }

                for (int i = 0; i < Kullanici.firmalar.Count; i++)
                {
                    if (Kullanici.firmalar[i].ToString().Split('#')[5].Equals(Kullanici.kullaniciAdi))
                        FirmaIlce = Kullanici.firmalar[i].ToString().Split('#')[2];
                }

                if (Kullanici.urunler.Count > 0)
                    UrunID = Convert.ToInt32(Kullanici.urunler[Kullanici.urunler.Count - 1].ToString().Split('#')[0]) + 1;

                string UrunAdi = txtUrunAdi.Text;
                string UrunFiyat = txtUrunFiyat.Text.Replace('.', ',');
                string urunekle = String.Format("{0}#{1}#{2}#{3}#{4}#{5}",
                                    UrunID, UrunAdi, UrunFiyat, FirmaAdi, Kullanici.kullaniciAdi, FirmaIlce);
                Kullanici.urunler.Add(urunekle); // arrayliste ekliyoruz sonra

                StreamWriter sw = new StreamWriter(Kullanici.yol + "urunler.txt", false, Encoding.GetEncoding("windows-1254"));

                for (int i = 0; i < Kullanici.urunler.Count; i++)
                    sw.WriteLine(Kullanici.urunler[i].ToString());
                sw.Close();

                MessageBox.Show("Ürün kaydı başarıyla gerçekleşti !!", "BAŞARILI", MessageBoxButtons.OK, MessageBoxIcon.Information);
                GridDoldur();
                btnKaydet.Text = "Güncelle";
                btnKaydet.Image = YemekSepeti.Properties.Resources.refresh24;
            }
            else
            {
                string UrunAdi = txtUrunAdi.Text;
                string UrunFiyat = txtUrunFiyat.Text.Replace('.', ',');
                string urunekle = String.Format("{0}#{1}#{2}#{3}#{4}#{5}",
                                    UrunID, UrunAdi, UrunFiyat, FirmaAdi, Kullanici.kullaniciAdi, FirmaIlce);
                Kullanici.urunler.Add(urunekle); // arrayliste ekliyoruz sonra

                for (int i = 0; i < Kullanici.urunler.Count; i++)
                {
                    if (Convert.ToInt32(Kullanici.urunler[i].ToString().Split('#')[0]) == UrunID)
                        Kullanici.urunler[i] = urunekle;
                }

                StreamWriter sw = new StreamWriter(Kullanici.yol + "urunler.txt", false, Encoding.GetEncoding("windows-1254"));

                for (int i = 0; i < Kullanici.urunler.Count; i++)
                    sw.WriteLine(Kullanici.urunler[i].ToString());
                sw.Close();

                MessageBox.Show("Ürün bilgileri güncellendi !!", "BAŞARILI", MessageBoxButtons.OK, MessageBoxIcon.Information);
                GridDoldur();
                btnKaydet.Text = "Güncelle";
                btnKaydet.Image = YemekSepeti.Properties.Resources.refresh24;
            }
        }

        private void dataGridView1_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            UrunID = Convert.ToInt32(dt.Rows[e.RowIndex][0]);
            txtUrunAdi.Text = dt.Rows[e.RowIndex][1].ToString();
            txtUrunFiyat.Text = dt.Rows[e.RowIndex][2].ToString();
            FirmaAdi = dt.Rows[e.RowIndex][3].ToString();
            FirmaIlce = dt.Rows[e.RowIndex][5].ToString();
            //MessageBox.Show(FirmaIlce);
            btnKaydet.Text = "Güncelle";
            btnKaydet.Image = YemekSepeti.Properties.Resources.refresh24;
        }

        private void btnYeniUrun_Click(object sender, EventArgs e)
        {
            UrunID = -1;
            txtUrunAdi.Text = "";
            txtUrunFiyat.Text = "";
            btnKaydet.Text = "Kaydet";
            btnKaydet.Image = YemekSepeti.Properties.Resources.add24;
        }

        private void dataGridView1_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            DialogResult dr = MessageBox.Show("Ürün Kaydı Silinecektir !!\r\nDevam Etmek İstiyor Musunuz ?", "UYARI", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
            if (dr == DialogResult.Yes)
            {
                StreamWriter sw = null;
                for (int i = 0; i < Kullanici.urunler.Count; i++)
                {
                    if (UrunID == Convert.ToInt32(Kullanici.urunler[i].ToString().Split('#')[0]))
                    {
                        Kullanici.urunler.RemoveAt(i); // arraylist den sildik

                        sw = new StreamWriter(Kullanici.yol + "urunler.txt", false, Encoding.GetEncoding("windows-1254"));

                        for (int j = 0; j < Kullanici.urunler.Count; j++) // burda da dosyadan siliyoruz
                            sw.WriteLine(Kullanici.urunler[j].ToString());
                        sw.Close();
                    }
                }

                MessageBox.Show("Ürün Başarıyla Silindi !!", "BİLGİ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                GridDoldur();
                btnYeniUrun.PerformClick();// 
            }
            else
                return;
        }
    }
}



_________________________________________________________________________________
_________________________________________________________________________________


_________________________________________________________________________________