using _27_DemoKopeklerimConsoleApp.Data;
using _27_DemoKopeklerimConsoleApp.Entities;
using _27_DemoKopeklerimConsoleApp.Entities.Bases;
using _27_DemoKopeklerimConsoleApp.Repositories.Bases;
namespace _27_DemoKopeklerimConsoleApp.Repositories
{
public class KopekRepo : IRepo
{
private IrkRepo _irkRepo = new IrkRepo();
public List<Kopek> KopekleriGetir()
{
return Veriler.Kopekler;
}
public List<Kopek> KopekleriGetir(string adi)
{
List<Kopek> kopekler = new List<Kopek>();
List<Kopek> mevcutKopekler = KopekleriGetir();
foreach (Kopek mevcutKopek in mevcutKopekler)
{
if (!string.IsNullOrWhiteSpace(adi) && mevcutKopek.Adi.Contains(adi, StringComparison.OrdinalIgnoreCase))
{
kopekler.Add(mevcutKopek);
}
}
return kopekler;
}
private Kopek KopekGetir(string adi, int id = 0)
{
Kopek kopek = null;
List<Kopek> mevcutKopekler = KopekleriGetir();
foreach (Kopek mevcutKopek in mevcutKopekler)
{
if (id == 0 && mevcutKopek.Adi.Equals(adi, StringComparison.OrdinalIgnoreCase))
{
kopek = mevcutKopek;
break;
}
else if (id != mevcutKopek.Id && mevcutKopek.Adi.Equals(adi, StringComparison.OrdinalIgnoreCase))
{
kopek = mevcutKopek;
break;
}
}
return kopek;
}
public Kayit KayitGetir(int id)
{
Kayit kayit = null;
List<Kopek> kopekler = KopekleriGetir();
foreach (Kopek kopek in kopekler)
{
if (kopek.Id == id)
{
kayit = kopek;
break;
}
}
return kayit;
}
public string KopekEkle(string adi, DateTime dogumTarihi, bool erkekMi, int irkId, double boyu, double kilosu)
{
if (KopekGetir(adi) is not null)
return "Girilen ada sahip köpek bulunmaktadır!";
Kayit irk = _irkRepo.KayitGetir(irkId);
if (irk is null)
return Veriler.KayitBulunamadiMesaji;
Kopek kopek = new Kopek()
{
Id = Veriler.EnSonId++,
Adi = adi.Trim(),
DogumTarihi = dogumTarihi,
ErkekMi = erkekMi,
Irki = irk as Irk,
Boyu = boyu,
Kilosu = kilosu
};
Veriler.Kopekler.Add(kopek);
return "Köpek başarıyla eklendi.";
}
public string KopekEkle(Kopek kopek)
{
if (KopekGetir(kopek.Adi) is not null)
return "Girilen ada sahip köpek bulunmaktadır!";
kopek.Id = Veriler.EnSonId++;
Veriler.Kopekler.Add(kopek);
return "Köpek başarıyla eklendi.";
}
public string KopekGuncelle(int id, string adi, DateTime dogumTarihi, bool erkekMi, int irkId, double boyu, double kilosu)
{
if (KopekGetir(adi, id) is not null)
return "Girilen ada sahip köpek bulunmaktadır!";
Kayit irk = _irkRepo.KayitGetir(irkId);
if (irk is null)
return Veriler.KayitBulunamadiMesaji;
Kayit mevcutKopekKaydi = KayitGetir(id);
if (mevcutKopekKaydi is null)
return Veriler.KayitBulunamadiMesaji;
Kopek mevcutKopek = (Kopek)mevcutKopekKaydi;
mevcutKopek.Adi = adi.Trim();
mevcutKopek.DogumTarihi = dogumTarihi;
mevcutKopek.ErkekMi = erkekMi;
mevcutKopek.Irki = (Irk)irk;
mevcutKopek.Boyu = boyu;
mevcutKopek.Kilosu = kilosu;
return "Köpek başarıyla güncellendi.";
}
public string KopekGuncelle(Kopek kopek)
{
if (KopekGetir(kopek.Adi, kopek.Id) is not null)
return "Girilen ada sahip köpek bulunmaktadır!";
Kopek mevcutKopek = KayitGetir(kopek.Id) as Kopek;
if (mevcutKopek is null)
return Veriler.KayitBulunamadiMesaji;
mevcutKopek.Adi = kopek.Adi.Trim();
mevcutKopek.DogumTarihi = kopek.DogumTarihi;
mevcutKopek.ErkekMi = kopek.ErkekMi;
mevcutKopek.Irki = kopek.Irki;
mevcutKopek.Boyu = kopek.Boyu;
mevcutKopek.Kilosu = kopek.Kilosu;
return "Köpek başarıyla güncellendi.";
}
public string KopekSil(int id)
{
Kopek mevcutKopek = KayitGetir(id) as Kopek;
if (mevcutKopek is null)
return Veriler.KayitBulunamadiMesaji;
Veriler.Kopekler.Remove(mevcutKopek);
return "Köpek başarıyla silindi.";
}
}
}