-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSecenekler.cs
155 lines (143 loc) · 4.68 KB
/
Secenekler.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
using System;
using System.Collections.Generic;
using System.Linq;
namespace telefon_rehberi;
class Secenekler : Yardimci
{
private string[] bilgiler;
private List<Kisi> bulunanlar;
private Kisi kisi;
protected void Ekle()
{
string[] bilgiler = base.BilgiAl();
kisiler.Add(new Kisi(bilgiler[0], bilgiler[1], bilgiler[2]));
Console.WriteLine("Kişi eklendi!");
}
protected void Sil()
{
Tekrar:
Console.WriteLine("Silinecek kişinin isim ve soyisim bilgilerini arada boşluk olacak şekilde giriniz!");
bilgiler = BilgiAl();
bulunanlar = Ara(bilgiler[0], bilgiler[1]);
switch (bulunanlar.BosMu())
{
case true:
Yazdir(Sabitler.Bulunamadi);
if (EvetHayir())
goto Tekrar;
break;
case false:
kisi = bulunanlar[0];
Console.WriteLine($"{kisi.Isim} {kisi.Soyisim} rehberden silinsin mi?");
switch (EvetHayir())
{
case true:
kisiler.Remove(kisi);
Console.WriteLine("Kişi silindi!");
break;
case false:
Yazdir(Sabitler.Iptal);
break;
}
break;
}
}
protected void Guncelle()
{
Tekrar:
bilgiler = BilgiAl();
bulunanlar = Ara(bilgiler[0], bilgiler[1]);
switch (bulunanlar.BosMu())
{
case true:
Yazdir(Sabitler.Bulunamadi);
if (EvetHayir())
goto Tekrar;
break;
case false:
kisi = bulunanlar[0];
Console.WriteLine("Güncellemek istediğiniz bilgileri doldurunuz. Güncellemek istemediklerinizi boş bırakabilirsiniz!");
bilgiler = base.BilgiAl();
kisi.Isim = !string.IsNullOrEmpty(bilgiler[0]) ? bilgiler[0] : kisi.Isim;
kisi.Soyisim = !string.IsNullOrEmpty(bilgiler[1]) ? bilgiler[1] : kisi.Soyisim;
kisi.TelefonNo = !string.IsNullOrEmpty(bilgiler[1]) ? bilgiler[2] : kisi.TelefonNo;
int i = kisiler.IndexOf(bulunanlar[0]);
kisiler[i] = kisi;
Console.WriteLine("Kişi güncellendi!");
break;
}
}
protected void Listele()
{
Tekrar:
Console.WriteLine("(1) A - Z sıralı listele");
Console.WriteLine("(2) Z - A sıralı listele");
switch (Console.ReadLine())
{
case "1":
kisiler = kisiler.OrderBy(I => I.Isim + I.Soyisim + I.TelefonNo).ToList();
break;
case "2":
kisiler = kisiler.OrderByDescending(I => I.Isim + I.Soyisim + I.TelefonNo).ToList();
break;
default:
Yazdir(Sabitler.Gecersiz);
goto Tekrar;
}
Console.WriteLine("Telefon Rehberi");
Yazdir(Sabitler.Cizgi);
kisiler.ForEach(I => Console.WriteLine(I));
Console.WriteLine("Kişiler listelendi!");
}
protected void KisiAra()
{
Tekrar:
Console.WriteLine("(1) İsim ve soyisim ile ara / (2) Numara ile ara");
switch (Console.ReadLine())
{
case "1":
bilgiler = BilgiAl();
bulunanlar = base.Ara(bilgiler[0], bilgiler[1]);
break;
case "2":
Console.Write("Telefon No: ");
bulunanlar = base.Ara(Console.ReadLine());
break;
default:
Yazdir(Sabitler.Gecersiz);
goto Tekrar;
}
if (bulunanlar.BosMu())
{
Yazdir(Sabitler.Bulunamadi);
switch (EvetHayir())
{
case true:
goto Tekrar;
}
}
else
{
Console.WriteLine("Arama Sonuçlarınız:");
Yazdir(Sabitler.Cizgi);
bulunanlar.ForEach(I => Console.WriteLine(I));
}
}
// Kalıtımla gelip düzenlenen sanal metotlar
protected override string[] BilgiAl()
{
Tekrar:
Console.Write("İsim - Soyisim: ");
bilgiler = Console.ReadLine().DiziYap();
if (bilgiler.Length != 2)
{
Yazdir(Sabitler.Gecersiz);
goto Tekrar;
}
return bilgiler;
}
protected override List<Kisi> Ara(string isim, string soyisim)
{
return kisiler.FindAll(I => I.Isim == isim && I.Soyisim == soyisim);
}
}