示例#1
0
 public frmBakiyeEkle(Bakiye bakiye, BakiyeManager bakiyeManager)
 {
     // parametre olarak gelen değişkenlerin referansı yerel değişkenlerin referanslarına aktarılır
     _bakiye        = bakiye;
     _bakiyeManager = bakiyeManager;
     InitializeComponent();
 }
示例#2
0
        private void button1_Click(object sender, EventArgs e)
        {
            // ilgili nesneler oluşturuluyor
            Kullanici   kullanici = new Kullanici();
            Bakiye      bakiye    = new Bakiye();
            List <Urun> uruns     = new List <Urun>();

            // ilgili manager nesneleri oluşturuluyor
            KullaniciManager kullaniciManager = new KullaniciManager(new EfKullaniciDal());
            BakiyeManager    bakiyeManager    = new BakiyeManager(new EfBakiyeDal());
            UrunManager      urunManager      = new UrunManager(new EfUrunDal());
            StokManager      stokManager      = new StokManager(new EfStokDal());

            // girilen bilgiler kullanıcı nesnesine aktarılıyor
            kullanici.Ad             = txtAd.Text;
            kullanici.Soyad          = txtSoyad.Text;
            kullanici.TelNo          = txtTel.Text;
            kullanici.KullaniciAd    = txtKullaniciAd.Text;
            kullanici.KullaniciSifre = txtSifre.Text;
            kullanici.TcNo           = txtTcNo.Text;
            kullanici.eMail          = txtEmail.Text;
            kullanici.Adres          = rchAdres.Text;

            var result = kullaniciManager.Add(kullanici);

            bakiye.KullaniciId     = kullaniciManager.Get(kullanici).KullaniciId;
            bakiye.MevcutBakiye    = 0;
            bakiye.EklenecekBakiye = 0;
            bakiye.DovizId         = 1;
            bakiye.BakiyeOnay      = true;
            var result2 = bakiyeManager.Add(bakiye);

            kullanici = kullaniciManager.Get(kullanici);
            uruns     = urunManager.GetAll();

            // ürün tablosuna kullanıcının boş stokları ekleniyor
            foreach (var urun in uruns)
            {
                Stok stok = new Stok();
                stok.KullaniciId = kullanici.KullaniciId;
                stok.UrunId      = urun.UrunId;
                stok.UrunMiktar  = 0;
                stok.UrunOnay    = false;
                stokManager.Add(stok);
            }


            if (result)
            {
                MessageBox.Show("Kayıt Tamamlandı");
            }
            else
            {
                MessageBox.Show("Kullanıcı eklenemedi.");
            }
        }
示例#3
0
        private void frmAdmin_Load(object sender, EventArgs e)
        {
            lblAdminKullaniciAd.Text = _admin.KullaniciAd;
            lblAdminBakiye.Text      = Math.Round(Convert.ToDecimal(_admin.Bakiye), 2) + " TL";
            grpBakiyeOnay.Visible    = false;
            grpStokOnay.Visible      = false;
            KullaniciManager kullaniciManager = new KullaniciManager(new EfKullaniciDal());
            BakiyeManager    bakiyeManager    = new BakiyeManager(new EfBakiyeDal());

            _kullanicilar = kullaniciManager.GetAll();
        }
示例#4
0
        public void alSat()
        {
            // Kullanılacak nesneler ilgili sınıflardan türetildi
            List <Ilan>     tumIlanlar   = new List <Ilan>();
            List <AlisEmir> alicilar     = new List <AlisEmir>();
            Kullanici       alici        = new Kullanici();
            Bakiye          aliciBakiye  = new Bakiye();
            Bakiye          saticiBakiye = new Bakiye();
            Stok            aliciStok    = new Stok();
            Admin           admin        = new Admin();

            // Kullanılacak manager nesneler ilgili sınıflardan türetildi
            IlanManager      ilanManager      = new IlanManager(new EfIlanDal());
            AlisEmirManager  alisEmirManager  = new AlisEmirManager(new EfAlisEmirDal());
            KullaniciManager kullaniManager   = new KullaniciManager(new EfKullaniciDal());
            BakiyeManager    bakiyeManager    = new BakiyeManager(new EfBakiyeDal());
            StokManager      stokManager      = new StokManager(new EfStokDal());
            AlimSatimManager alimSatimManager = new AlimSatimManager(new EfAlimSatimDal());
            AdminManager     adminManager     = new AdminManager(new EfAdminDal());

            // tüm alıcılar veritabanından bir listeye çekildi
            alicilar = alisEmirManager.GetAll().Where(p => p.Durum == false).ToList();

            // admin bilgisi çekildi
            admin = adminManager.Get(new Admin {
                AdminId = 1
            });

            // alıcı varsa aşağıdaki if şartına girilir, yok ise algoritma yorulmaz, çıkılır
            if (alicilar.Count != 0)
            {
                // her alıcı için aşağıdaki foreach döngüsü dönüyor
                foreach (var mevcutalici in alicilar)
                {
                    int toplamsatilanstok = 0;


                    tumIlanlar = ilanManager.GetAll().Where(p => p.Durum == false && p.UrunId == mevcutalici.UrunId).OrderBy(p => p.BirimFiyat).ToList();

                    foreach (var ilan in tumIlanlar)
                    {
                        toplamsatilanstok += ilan.Miktar;
                    }

                    // alıcının bilgi ve bakiyeleri alici ve alicibakiye değişkenlerine aktarılıyor
                    alici = kullaniManager.getById(new Kullanici {
                        KullaniciId = mevcutalici.AliciId
                    });
                    aliciBakiye = bakiyeManager.Get(new Bakiye {
                        KullaniciId = mevcutalici.AliciId
                    });

                    bool uygunUrunKontrol = true;

                    // alıcının alacağı ürün olduğu sürece while döngüsü dönüyor
                    while (mevcutalici.Miktar > 0 && toplamsatilanstok != 0 && uygunUrunKontrol)
                    {
                        // her ilan için aşağıdaki foreach döngüsü dönüyor
                        foreach (var gecerliIlan in tumIlanlar)
                        {
                            // alıcının stok bilgisi alicistok değişkenine aktarılıyor
                            aliciStok = stokManager.GetAll().SingleOrDefault(p =>
                                                                             p.KullaniciId == mevcutalici.AliciId && p.UrunId == mevcutalici.UrunId);

                            // satıcının bakiyesi saticibakiye değişkenine aktarılıyor
                            saticiBakiye = bakiyeManager.Get(new Bakiye {
                                KullaniciId = gecerliIlan.SaticiId
                            });
                            AlimSatim alimSatim = new AlimSatim();
                            // eğer alıcının verdiği teklife uygun bir satış emri yok ise
                            if (mevcutalici.TeklifFiyat < gecerliIlan.BirimFiyat)
                            {
                                uygunUrunKontrol = false;
                            }

                            decimal adminYuzdesi = 0.01m;
                            // eğer alıcının bakiyesi geçerli ilanın toplam fiyatından büyükse ve alıcıyla satıcı aynı kişi değilse aşağıdaki if şartına giriliyor
                            if (aliciBakiye.MevcutBakiye >= ((gecerliIlan.Miktar * gecerliIlan.BirimFiyat) * (1.01m)) && alici.KullaniciId != gecerliIlan.SaticiId && gecerliIlan.Durum == false && uygunUrunKontrol)
                            {
                                int alinanmiktar;
                                // eğer alıcının alacağı miktar geçerli ilanın miktarından fazla ise aşağıdaki döngü çalışır
                                if (mevcutalici.Miktar >= gecerliIlan.Miktar)
                                {
                                    // ilgili aktarımlar gerçekleştirilir
                                    alinanmiktar               = gecerliIlan.Miktar;
                                    toplamsatilanstok         -= gecerliIlan.Miktar;
                                    mevcutalici.Miktar        -= alinanmiktar;
                                    aliciBakiye.MevcutBakiye  -= (alinanmiktar * gecerliIlan.BirimFiyat);
                                    aliciBakiye.MevcutBakiye  -= (alinanmiktar * gecerliIlan.BirimFiyat) * adminYuzdesi;
                                    admin.Bakiye              += (alinanmiktar * gecerliIlan.BirimFiyat) * adminYuzdesi;
                                    saticiBakiye.MevcutBakiye += (alinanmiktar * gecerliIlan.BirimFiyat);
                                    aliciStok.UrunMiktar      += alinanmiktar;
                                    aliciStok.UrunOnay         = true;
                                    gecerliIlan.Miktar         = 0;
                                    gecerliIlan.Durum          = true;

                                    // alıcının alacağı miktar sıfıra eşitse yani bittiyse, alım emri kapatılır
                                    if (mevcutalici.Miktar == 0)
                                    {
                                        mevcutalici.Durum = true;
                                    }


                                    alimSatim.Miktar = alinanmiktar;

                                    // admin bakiyesi güncellenir
                                    adminManager.Update(admin);


                                    // alıcı ve satıcının bakiye ve stok bilgileri, ilgili ilan ve alım emirleri güncellenir
                                    bakiyeManager.Update(aliciBakiye);
                                    bakiyeManager.Update(saticiBakiye);
                                    stokManager.Update(aliciStok);
                                    ilanManager.Update(gecerliIlan);
                                    alisEmirManager.Update(mevcutalici);

                                    alimSatim.AliciId     = alici.KullaniciId;
                                    alimSatim.SaticiId    = gecerliIlan.SaticiId;
                                    alimSatim.UrunId      = gecerliIlan.UrunId;
                                    alimSatim.ToplamFiyat = (alinanmiktar * gecerliIlan.BirimFiyat);
                                    alimSatim.Tarih       = DateTime.Today;
                                    alimSatimManager.Add(alimSatim);
                                }
                                // alıcının alacağı ürün miktarı ilgili ilan miktarından fazla değilse else bloğu çalışır
                                else
                                {
                                    // ilgili aktarımlar gerçekleştirilir

                                    alinanmiktar              = mevcutalici.Miktar;
                                    toplamsatilanstok        -= mevcutalici.Miktar;
                                    gecerliIlan.Miktar       -= alinanmiktar;
                                    aliciBakiye.MevcutBakiye -= (alinanmiktar * gecerliIlan.BirimFiyat);
                                    aliciBakiye.MevcutBakiye -= (alinanmiktar * gecerliIlan.BirimFiyat) * adminYuzdesi;
                                    // aracı olan admine komisyon ödemesi işlemi
                                    admin.Bakiye += (alinanmiktar * gecerliIlan.BirimFiyat) * adminYuzdesi;
                                    saticiBakiye.MevcutBakiye += (alinanmiktar * gecerliIlan.BirimFiyat);
                                    aliciStok.UrunMiktar      += alinanmiktar;
                                    aliciStok.UrunOnay         = true;
                                    mevcutalici.Miktar         = 0;
                                    mevcutalici.Durum          = true;


                                    alimSatim.Miktar = alinanmiktar;

                                    // admin bakiyesi güncellenir
                                    adminManager.Update(admin);


                                    // alıcı ve satıcının bakiye ve stok bilgileri, ilgili ilan ve alım emirleri güncellenir
                                    bakiyeManager.Update(aliciBakiye);
                                    bakiyeManager.Update(saticiBakiye);
                                    stokManager.Update(aliciStok);
                                    ilanManager.Update(gecerliIlan);
                                    alisEmirManager.Update(mevcutalici);


                                    alimSatim.AliciId     = alici.KullaniciId;
                                    alimSatim.SaticiId    = gecerliIlan.SaticiId;
                                    alimSatim.UrunId      = gecerliIlan.UrunId;
                                    alimSatim.ToplamFiyat = (alinanmiktar * gecerliIlan.BirimFiyat);
                                    alimSatim.Tarih       = DateTime.Today;
                                    alimSatimManager.Add(alimSatim);
                                }
                            }
                        }
                    }
                }
            }
        }