From 0d2a941a24722e84e935676a6eb3bbea9df9014b Mon Sep 17 00:00:00 2001 From: anon Date: Fri, 26 Apr 2024 16:15:51 +0000 Subject: [PATCH] total academia death --- Program.cs | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 Program.cs diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000..cfdd121 --- /dev/null +++ b/Program.cs @@ -0,0 +1,77 @@ +class Program +{ + public static void Main() + { + Enekesno e1 = new Enekesno("Lady Gaga"); + Enekesno e2 = new Enekesno("Nicki Minaj"); + Rajongo r1 = new Rajongo("János"); + Rajongo r2 = new Rajongo("Patrik"); + Rajongo r3 = new Rajongo("Bogi"); + e1.Subscribe(r1); + e1.Subscribe(r2); + e2.Subscribe(r2); + e2.Subscribe(r3); + e1.SetKovetkezoKoncertHelyszine("Budapest"); + e2.SetKovetkezoKoncertHelyszine("Eger"); + } + class Enekesno : IObservable + { + List> observer = new List>(); + string kovetkezoKoncertHelyszine; + string nev; + public Enekesno(string nev) { this.nev = nev; } + public string SetKovetkezoKoncertHelyszine(string varos) + { + kovetkezoKoncertHelyszine = varos; + this.notify(); + return null; + } + public IDisposable Subscribe(IObserver obs) + { + observer.Add(obs); + return null; + } + private void notify() + { + foreach(var item in observer) + { + try { + item.OnNext("szia"); + item.OnNext("A nevem:"); + item.OnNext(this.nev); + item.OnNext("következő koncert helyszíne:"); + item.OnNext(this.kovetkezoKoncertHelyszine); + item.OnCompleted(); + } + catch (Exception e) { item.OnError(e); } + } + } + } + class Rajongo : IObserver + { + string enekesnoNeve; + bool eneksnoNeveFlag = false; + string kovetkezoKoncertHelyszine; + bool kovetkezoKoncertHelyszineFlag = false; + + string nev; + public Rajongo (string nev) { this.nev = nev; } + public void OnCompleted() + { + Console.WriteLine( nev +" Nagyon boldog mert " + enekesnoNeve + " koncertet ad " + kovetkezoKoncertHelyszine + " city-ben:)"); + } + + public void OnError(Exception error){} + + public void OnNext(string value) + { + if(eneksnoNeveFlag) { enekesnoNeve=value; } + if(kovetkezoKoncertHelyszineFlag) { kovetkezoKoncertHelyszine=value; } + + if (value.Equals("A nevem:")) { eneksnoNeveFlag = true; } + else { eneksnoNeveFlag = false; } + if (value is "következő koncert helyszíne:") { kovetkezoKoncertHelyszineFlag= true; } + else { kovetkezoKoncertHelyszineFlag = false; } + } + } +} \ No newline at end of file