using _27_DemoKopeklerimConsoleApp.Data;
using _27_DemoKopeklerimConsoleApp.Entities;
using _27_DemoKopeklerimConsoleApp.Entities.Bases;
using _27_DemoKopeklerimConsoleApp.Repositories;
using System.Globalization;
namespace _27_DemoKopeklerimConsoleApp
{
internal class Program
{
static KopekRepo _kopekRepo;
static IrkRepo _irkRepo;
static void Main(string[] args)
{
_irkRepo = new IrkRepo();
_kopekRepo = new KopekRepo();
string giris = MenuGetir();
while (giris != "0")
{
switch (giris)
{
case "1":
KopekleriListele();
break;
case "2":
AdaGoreKopekleriListele();
break;
case "3":
IdyeGoreKopegiGoster();
break;
case "4":
KopekEkle2();
break;
case "5":
KopekGuncelle2();
break;
case "6":
KopekSil();
break;
default:
Console.WriteLine("Geçersiz işlem!");
break;
}
giris = MenuGetir();
}
}
static string MenuGetir()
{
Console.WriteLine("\nİşlem seçiniz\n" +
"0: Çıkış\n" +
"1: Tüm köpeklerimi listele\n" +
"2: Ada göre köpeklerimi listele\n" +
"3: ID'ye göre köpeğimi göster\n" +
"4: Köpek ekle\n" +
"5: Köpek güncelle\n" +
"6: Köpek sil");
return Console.ReadLine().Trim();
}
static void Yazdir(Kopek kopek)
{
string kopekText;
string irkText;
kopekText = $"\nKöpeğim\n" +
$"ID: {kopek.Id}\n" +
$"Adı: {kopek.Adi}\n" +
$"Doğum Tarihi: {kopek.DogumTarihi.ToString("dd.MM.yyyy HH:mm:ss")}\n" +
$"Cinsiyeti: {(kopek.ErkekMi ? "Erkek" : "Dişi")}\n" +
$"Boyu: {kopek.Boyu.ToString("N1", new CultureInfo("tr-TR"))} cm\n" +
$"Kilosu: {kopek.Kilosu.ToString("N1", new CultureInfo("tr-TR"))} kg";
irkText = $"\nIrk\n" +
$"Adı: {kopek.Irki.Adi}\n" +
$"Ülkesi: {kopek.Irki.Ulkesi}";
Console.WriteLine(kopekText + irkText);
}
static void Yazdir(List<Kopek> kopekler)
{
Console.WriteLine("\n" + Veriler.KayitSayisiMesajiGetir(kopekler.Count));
foreach (Kopek kopek in kopekler)
{
Yazdir(kopek);
}
}
static void Yazdir(List<Irk> irklar)
{
string irkText;
foreach (Irk irk in irklar)
{
irkText = $"\nIrk\n" +
$"ID: {irk.Id}\n" +
$"Adı: {irk.Adi}\n" +
$"Ülkesi: {irk.Ulkesi}";
Console.WriteLine(irkText);
}
}
static void KopekleriListele()
{
Yazdir(_kopekRepo.KopekleriGetir());
}
static void AdaGoreKopekleriListele()
{
Console.Write("\nKöpek Adı: ");
string adi = Console.ReadLine().Trim();
Yazdir(_kopekRepo.KopekleriGetir(adi));
}
static void IdyeGoreKopegiGoster()
{
try
{
Console.Write("\nKöpek ID: ");
int kopekId = Convert.ToInt32(Console.ReadLine());
Kayit kopek = _kopekRepo.KayitGetir(kopekId);
if (kopek != null)
Yazdir((Kopek)kopek);
else
Console.WriteLine(Veriler.KayitBulunamadiMesaji);
}
catch
{
Console.WriteLine(Veriler.HataMesaji);
}
}
static Kopek KopekOlustur(int id = 0)
{
if (id > 0)
{
Kayit mevcutKopek = _kopekRepo.KayitGetir(id);
if (mevcutKopek == null)
{
Console.WriteLine(Veriler.KayitBulunamadiMesaji);
return null;
}
}
Console.Write("\nAdı: ");
string adi = Console.ReadLine();
Console.Write("Doğum Tarihi (gün.ay.yıl saat:dakika:saniye): ");
DateTime dogumTarihi = DateTime.Parse(Console.ReadLine(), new CultureInfo("tr-TR"));
Console.Write("Cinsiyeti (1: dişi, 2: erkek): ");
string cinsiyeti = Console.ReadLine();
if (!(cinsiyeti == "1" || cinsiyeti == "2"))
{
Console.WriteLine("Geçersiz cinsiyet!");
return null;
}
bool erkekMi = cinsiyeti == "1" ? false : true;
Console.Write("Boyu (cm): ");
double boyu = Convert.ToDouble(Console.ReadLine(), new CultureInfo("tr-TR"));
Console.Write("Kilosu (kg): ");
double kilosu = double.Parse(Console.ReadLine(), new CultureInfo("tr-TR"));
Yazdir(_irkRepo.IrklariGetir());
Console.Write("Irk ID: ");
int irkId = int.Parse(Console.ReadLine());
Kayit irk = _irkRepo.KayitGetir(irkId);
if (irk == null)
{
Console.WriteLine(Veriler.KayitBulunamadiMesaji);
return null;
}
return new Kopek()
{
Id = id,
Adi = adi.Trim(),
DogumTarihi = dogumTarihi,
ErkekMi = erkekMi,
Boyu = boyu,
Kilosu = kilosu,
Irki = irk as Irk
};
}
static void KopekEkle1()
{
try
{
Console.WriteLine("\nKöpek Ekleme");
Console.Write("\nAdı: ");
string adi = Console.ReadLine();
Console.Write("Doğum Tarihi (gün.ay.yıl saat:dakika:saniye): ");
DateTime dogumTarihi = DateTime.Parse(Console.ReadLine(), new CultureInfo("tr-TR"));
Console.Write("Cinsiyeti (1: dişi, 2: erkek): ");
string cinsiyeti = Console.ReadLine();
if (!(cinsiyeti == "1" || cinsiyeti == "2"))
{
Console.WriteLine("Geçersiz cinsiyet!");
}
else
{
bool erkekMi = cinsiyeti == "1" ? false : true;
Console.Write("Boyu (cm): ");
double boyu = Convert.ToDouble(Console.ReadLine(), new CultureInfo("tr-TR"));
Console.Write("Kilosu (kg): ");
double kilosu = double.Parse(Console.ReadLine(), new CultureInfo("tr-TR"));
Yazdir(_irkRepo.IrklariGetir());
Console.Write("Irk ID: ");
int irkId = int.Parse(Console.ReadLine());
Console.WriteLine(_kopekRepo.KopekEkle(adi, dogumTarihi, erkekMi, irkId, boyu, kilosu));
}
}
catch
{
Console.WriteLine(Veriler.HataMesaji);
}
}
static void KopekEkle2()
{
try
{
Console.WriteLine("\nKöpek Ekleme");
Kopek kopek = KopekOlustur();
Console.WriteLine(_kopekRepo.KopekEkle(kopek));
}
catch
{
Console.WriteLine(Veriler.HataMesaji);
}
}
static void KopekGuncelle1()
{
try
{
Console.WriteLine("\nKöpek Güncelleme");
Yazdir(_kopekRepo.KopekleriGetir());
Console.Write("\nKöpek ID: ");
int kopekId = int.Parse(Console.ReadLine());
Kayit mevcutKopek = _kopekRepo.KayitGetir(kopekId);
if (mevcutKopek == null)
{
Console.WriteLine(Veriler.KayitBulunamadiMesaji);
}
else
{
Console.Write("\nAdı: ");
string adi = Console.ReadLine();
Console.Write("Doğum Tarihi (gün.ay.yıl saat:dakika:saniye): ");
DateTime dogumTarihi = DateTime.Parse(Console.ReadLine(), new CultureInfo("tr-TR"));
Console.Write("Cinsiyeti (1: dişi, 2: erkek): ");
string cinsiyeti = Console.ReadLine();
if (!(cinsiyeti == "1" || cinsiyeti == "2"))
{
Console.WriteLine("Geçersiz cinsiyet!");
}
else
{
bool erkekMi = cinsiyeti == "1" ? false : true;
Console.Write("Boyu (cm): ");
double boyu = Convert.ToDouble(Console.ReadLine(), new CultureInfo("tr-TR"));
Console.Write("Kilosu (kg): ");
double kilosu = double.Parse(Console.ReadLine(), new CultureInfo("tr-TR"));
Yazdir(_irkRepo.IrklariGetir());
Console.Write("Irk ID: ");
int irkId = int.Parse(Console.ReadLine());
Console.WriteLine(_kopekRepo.KopekGuncelle(kopekId, adi, dogumTarihi, erkekMi, irkId, boyu, kilosu));
}
}
}
catch
{
Console.WriteLine(Veriler.HataMesaji);
}
}
static void KopekGuncelle2()
{
try
{
Console.WriteLine("\nKöpek Güncelleme");
Yazdir(_kopekRepo.KopekleriGetir());
Console.Write("\nKöpek ID: ");
int kopekId = int.Parse(Console.ReadLine());
Kopek kopek = KopekOlustur(kopekId);
Console.WriteLine(_kopekRepo.KopekGuncelle(kopek));
}
catch
{
Console.WriteLine(Veriler.HataMesaji);
}
}
static void KopekSil()
{
try
{
Console.WriteLine("\nKöpek Silme");
Yazdir(_kopekRepo.KopekleriGetir());
Console.Write("\nKöpek ID: ");
int kopekId = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(_kopekRepo.KopekSil(kopekId));
}
catch
{
Console.WriteLine(Veriler.HataMesaji);
}
}
}
}