public static void KategoriBulSil(KategoriDugumu ana, string isim) { foreach (var c in ana.Cocuklar) { if (c.Turu != DugumTuru.Kategori) { continue; } KategoriDugumu cocuk = (KategoriDugumu)c; if (cocuk.Isim.ToLower() == isim.ToLower()) { KategoriSil(cocuk); return; } } //Kategorlerde bulunamadı, altındaki kategorilere bak for (int i = 0; i < ana.Cocuklar.Count; i++) { if (ana.Cocuklar[i].Turu == DugumTuru.Kategori) { KategoriBulSil((KategoriDugumu)ana.Cocuklar[i], isim); } } }
public static bool KategoriBulYazdir(KategoriDugumu ana, string isim) { foreach (var c in ana.Cocuklar) { if (c.Turu != DugumTuru.Kategori) { continue; } KategoriDugumu cocuk = (KategoriDugumu)c;//türü bilindiği için cast et if (cocuk.Isim.ToLower() == isim.ToLower()) { AgacYazdir(cocuk); return(true); } } //Kategorlerde bulunamadı, altındaki kategorilere bak for (int i = 0; i < ana.Cocuklar.Count; i++) { if (ana.Cocuklar[i].Turu == DugumTuru.Kategori) { if (KategoriBulYazdir((KategoriDugumu)ana.Cocuklar[i], isim)) { return(true); } } } return(false); }
public static void KategoriSil(KategoriDugumu dugum) { foreach (var cocuk in dugum.Cocuklar) { if (cocuk.Turu == DugumTuru.Kategori) { //Tasi cocuk.Ana = dugum.Ana; dugum.Ana.Cocuklar.Add(cocuk); } } dugum.Cocuklar.Clear(); dugum.Ana.Cocuklar.Remove(dugum); }
public static KategoriDugumu KategoriBulYoksaEkle(KategoriDugumu ana, string text) { string org_text = text; string eslesme; if (!text.Contains(':'))//: nokta yoksa { eslesme = text; text = null; } else { eslesme = text.Split(new char[] { ':' })[0]; int index = text.IndexOf(':'); text = text.Remove(0, index + 1); } foreach (var c in ana.Cocuklar) { if (c.Turu == DugumTuru.Kategori) { KategoriDugumu cocuk = (KategoriDugumu)c; if (cocuk.Isim.ToLower() == eslesme.ToLower()) { if (string.IsNullOrEmpty(text)) { return(cocuk); } else { return(KategoriBulYoksaEkle(cocuk, text)); } } } } ana.CocukEkle(new KategoriDugumu(eslesme)); return(KategoriBulYoksaEkle(ana, org_text)); }
static void Main(string[] args) { //Agaci olusturma kokDugum = new KategoriDugumu("Rezervasyon"); //kök dügüm ataması //Dosyadan okuma string[] satirlar = File.ReadAllLines("rezervasyon.txt"); //satirlarin diziler halinde alınması foreach (var satir in satirlar) //satirlari satira at { SatirIsle(satir); } AgacYazdir(kokDugum); Console.ReadLine(); Console.Clear(); Bastan: Console.Write("Bulmak İstediginiz Kategori Giriniz:"); string kategori = Console.ReadLine(); if (!KategoriBulYazdir(kokDugum, kategori)) { Console.WriteLine("Aradığınız kategori bulunamadı...\n"); goto Bastan; } Secim: int yeni; Console.WriteLine("\n1.Alt kategori ekle" + "\n2.Mevcut kategoriyi silmek\n3.Geri gel"); Console.Write("Seçim:"); yeni = Convert.ToInt32(Console.ReadLine()); if (yeni == 1) { var kategoritut = KategoriBul(kokDugum, kategori); Console.WriteLine(kategoritut.GetYol()); Console.Write("Alt kategori giriniz:"); string altkategori = Console.ReadLine(); bool varmi = false; foreach (var c in kategoritut.Cocuklar) { if (c.Turu == DugumTuru.Kategori) { if (altkategori.ToLowerInvariant() == ((KategoriDugumu)c).Isim.ToLowerInvariant()) { varmi = true; } } } if (varmi) { Console.WriteLine("Alt kategori zaten var!"); } else { var yeniKategori = new KategoriDugumu(altkategori); kategoritut.CocukEkle(yeniKategori); AgacYazdir(kokDugum); } Console.WriteLine("Başka işlem yaptıracak mısınız? (e/h)"); char tercih = (char)Console.Read(); if (tercih == 'e') { goto Bastan; } } if (yeni == 2) { KategoriBulSil(kokDugum, kategori); AgacYazdir(kokDugum); Console.WriteLine("Başka işlem yaptıracak mısınız? (e/h)"); char tercih = (char)Console.Read(); if (tercih == 'e') { goto Bastan; } } if (yeni == 3) { goto Bastan; } if (yeni > 3 || yeni <= 0) { Console.WriteLine("Yanlış seçim yaptınız! Lütfen tekrar giriniz;"); goto Secim; } Console.ReadLine(); }