// Sefer listesinin sonuna sefer ekler. public void SeferEkle(int koltukSayi, string guzergah, string otobus_adi, string plaka, string kaptan, DateTime tarih, int Koltukfiyat) { KoltukList <T> k = new KoltukList <T>(); SeferNode current = Shead; SeferNode newNode = new SeferNode(); int sonsefer = 1; if (current == null) { newNode.sefer_n = 1; newNode.guzergah = guzergah; newNode.otobus_adi = otobus_adi; newNode.plaka = plaka; newNode.kaptan = kaptan; newNode.seferTarih = tarih; //newNode.next = null; Console.Write("\n- Sefer " + newNode.sefer_n + " Güzergah: " + newNode.guzergah + " " + newNode.otobus_adi + " Plaka: " + newNode.plaka + " Kaptan: " + newNode.kaptan + " Sefer Saati: " + newNode.seferTarih + " " + newNode.seferTarih.DayOfWeek + " \n"); newNode.Khead = k.KoltukEkle(koltukSayi, Koltukfiyat); //newNode.Khead.KoltukEkle(koltukSayi); //for (int i = 1; i <= koltukSayi; i++) //{ // // Koltuk sayısı kadar koltuk ekliyoruz // newNode.koltuklar.KoltukEkle(i); //} Shead = newNode; } else if (current != null) { sonsefer = 2; while (current.next != null) { current = current.next; sonsefer++; } newNode.sefer_n = sonsefer; newNode.guzergah = guzergah; newNode.otobus_adi = otobus_adi; newNode.plaka = plaka; newNode.kaptan = kaptan; newNode.seferTarih = tarih; Console.Write("\n- Sefer " + newNode.sefer_n + " Güzergah: " + newNode.guzergah + " " + newNode.otobus_adi + " Plaka: " + newNode.plaka + " Kaptan: " + newNode.kaptan + " Sefer Saati: " + newNode.seferTarih + " " + newNode.seferTarih.DayOfWeek + "\n"); newNode.Khead = k.KoltukEkle(koltukSayi, Koltukfiyat); //for (int i = 1; i <= koltukSayi; i++) //{ // // Koltuk sayısı kadar koltuk ekliyoruz // newNode.koltuklar.KoltukEkle(i); //} // YEni node liste sonuna ekliyoruz current.next = newNode; } }
public void SatisIptal(int seferNo, int koltukNo) { SeferNode current = Shead; KoltukList <T> .KoltukNode Kcurrent = Shead.Khead; KoltukList <T> .KoltukNode K = new KoltukList <T> .KoltukNode(); SeferNode arananSefer = SeferBul(seferNo); K.yolcu_adi = ""; K.yolcu_soyadi = ""; K.cinsiyet = ""; K.koltuk_durum = "Boş"; // Seferleri sırayla gezme while (current.next != null) { // Satılan koltuk ilk seferden ise if (Shead.sefer_n == arananSefer.sefer_n) { while (Kcurrent.next != null) { // İlk sefer İlk koltuk ** Çalışıyor ** if (Shead.Khead.koltuk_n == koltukNo) { // Koltuk Bilgileri sıfırlanıcak K.koltuk_n = Shead.Khead.koltuk_n; K.koltuk_fiyat = Shead.Khead.koltuk_fiyat; K.next = Shead.Khead.next; Shead.Khead = K; break; } // Son koltuğu bulduk ** Çalışıyor ** else if (Kcurrent.next.next == null) { K.koltuk_n = Kcurrent.next.koltuk_n; K.koltuk_fiyat = Kcurrent.koltuk_fiyat; K.next = Kcurrent.next.next; Kcurrent.next = K; break; } // ilk sefer aradaki koltuktan koltuk satma else if (Kcurrent.next.koltuk_n == koltukNo && Kcurrent.next.next != null) { K.koltuk_n = Kcurrent.next.koltuk_n; K.koltuk_fiyat = Kcurrent.koltuk_fiyat; K.next = Kcurrent.next.next; Kcurrent.next = K; break; } Kcurrent = Kcurrent.next; } } // Herhangi seferden koltuk satılırsa else if (current.next.sefer_n == arananSefer.sefer_n && current.next.next != null) { current = current.next; // Seçilen seferin ilk Koltuğunu atadık Kcurrent = current.Khead; while (Kcurrent.next != null /*&& Kcurrent.next.next != null*/) { // İlk koltuk ** çalışıyor ** if (current.Khead.koltuk_n == koltukNo) { K.koltuk_n = current.Khead.koltuk_n; K.koltuk_fiyat = current.Khead.koltuk_fiyat; K.next = current.Khead.next; current.Khead = K; } // Son koltuğu bulduk ** çalışıyor ** else if (Kcurrent.next.koltuk_n == koltukNo && Kcurrent.next.next == null) { K.koltuk_n = Kcurrent.next.koltuk_n; K.koltuk_fiyat = Kcurrent.koltuk_fiyat; K.next = null; Kcurrent.next = K; break; } // aradaki koltuktan koltuk satma ** çalışıyor ** else if (Kcurrent.next.koltuk_n == koltukNo && Kcurrent.next.next != null) { K.koltuk_n = Kcurrent.next.koltuk_n; K.koltuk_fiyat = Kcurrent.koltuk_fiyat; K.next = Kcurrent.next.next; Kcurrent.next = K; break; } Kcurrent = Kcurrent.next; } } current = current.next; } // Satılan koltuk son seferden ise if (current != null && current.sefer_n == seferNo) { //Seçilen seferin ilk Koltuğunu atadık Kcurrent = current.Khead; while (Kcurrent.next != null) { // İlk koltuk ** çalışıyor ** if (current.Khead.koltuk_n == koltukNo) { K.koltuk_n = current.Khead.koltuk_n; K.koltuk_fiyat = current.Khead.koltuk_fiyat; K.next = current.Khead.next; current.Khead = K; } // Son koltuğu bulduk ** çalışıyor ** else if (Kcurrent.next.koltuk_n == koltukNo && Kcurrent.next.next == null) { K.koltuk_n = Kcurrent.next.koltuk_n; K.koltuk_fiyat = Kcurrent.koltuk_fiyat; K.next = null; Kcurrent.next = K; break; } // aradaki koltuktan koltuk satma ** çalışıyor ** else if (Kcurrent.next.koltuk_n == koltukNo && Kcurrent.next.next != null) { K.koltuk_n = Kcurrent.next.koltuk_n; K.koltuk_fiyat = Kcurrent.koltuk_fiyat; K.next = Kcurrent.next.next; Kcurrent.next = K; break; } Kcurrent = Kcurrent.next; } } }