Clear        


                
                    using _25_HasArelationship._1_GokCisimleri.Entities.Bases;
using _25_HasArelationship._1_GokCisimleri.Entities;
using _25_HasArelationship._1_GokCisimleri.Repositories;

namespace _25_HasArelationship._1_GokCisimleri
{
    public class GokCisimleriDemo
    {
        private static GokCismiRepo _repo = new GokCismiRepo();



        public void Calistir()
        {
            string giris = MenuGetir();

            while (giris != "0")
            {
                switch (giris)
                {
                    case "1":
                        TipeGoreYazdir();
                        break;
                    case "2":
                        AdaVeAdEsitligineGoreYazdir();
                        break;
                }
                giris = MenuGetir();
            }
        }



        private static string MenuGetir()
        {
            Console.WriteLine("\nİşlem seçiniz\n" +
                "0: Çıkış\n" +
                "1: Tipe göre gök cisimlerini yazdır\n" +
                "2: Ada ve ad eşitliğine göre gök cisimlerini ara");
            return Console.ReadLine();
        }



        private static void TipeGoreYazdir()
        {
            Console.WriteLine("\nGök cismi tipi seçiniz\n" +
                "1: Tümü\n" +
                "2: Yıldız\n" +
                "3: Gezegen\n" +
                "4: Uydu");
            int tip = Convert.ToInt32(Console.ReadLine());
            List<GokCismiBase> gokCisimleri = _repo.Getir((GokCismiTipi)tip);
            Console.WriteLine("\nTipe göre gök cisimleri: " + gokCisimleri.Count + " kayıt bulundu.");
            _repo.Yazdir(gokCisimleri);
        }



        private static void AdaVeAdEsitligineGoreYazdir()
        {
            Console.Write("\nGök cismi adı giriniz: ");
            string adi = Console.ReadLine();
            Console.WriteLine("Arama tipi seçiniz:\n" +
                "1: Eşit\n" +
                "2: İçeren");
            string aramaTipi = Console.ReadLine();

            // 1. yöntem:
            //List<GokCismiBase> gokCisimleri = _repo.Getir(adi, aramaTipi == "1" ? true : false);
            // 2. yöntem:
            List<GokCismiBase> gokCisimleri = _repo.Getir(adi, aramaTipi == "1");

            Console.WriteLine("\nAda ve ad eşitliğine göre gök cisimleri: " + gokCisimleri.Count + " kayıt bulundu.");
            _repo.Yazdir(gokCisimleri);
        }
    }
}