public void Guncelle(ISikayet sikayet) { Thread thread = new Thread(() => Git(sikayet.Konum)); // Git(sikayet.Konum); thread.Start(); }
// observer metodudur sikayet geldiginde calisir public void Guncelle(ISikayet sikayet) { // polis asenkron olarak gezdigi icin ilk once polisin devriyesini durdurur sonra olay yerine gider devriyeGez.Suspend(); SetOlayYerineGit(sikayet); olayYerineGit.Start(); Form1.RaporEkle(string.Format("[polis] [ihbar alindi] [{0},{1}] -> [{2},{3}] | {4} {5}", Konum.X, Konum.Y, sikayet.Konum.X, sikayet.Konum.Y, Ad, Soyad)); }
public void SikayetKaydi(ISikayet sikayet) { // sistemin calismasi buna bagli bunun sirasinin degismesi durumunda ornegin, sikayeti eklemeden once haberver cagirilirsa hataya dusecek. bu yuzden template uygulayip bu siranin bozulmamasini sagliyoruz. SikayetEkle(sikayet); // rapora ekle RaporaEkle(sikayet); // sikayet alindiginda kesin haber verilecek ama polis merkezi olursa polislere haber verilecek, ambulans merkezi olursa saglikcilara haber verilecek HaberVer(); }
// asenkron olarak gidilecek konumu ayarlar void SetOlayYerineGit(ISikayet sikayet) { MesgulMu = true; olayYerineGit = new Thread(() => { Git(sikayet.Konum); MesgulMu = false; Form1.RaporEkle(string.Format("[{2}] - [{0},{1}] sorun cozuldu", sikayet.Konum.X, sikayet.Konum.Y, sikayet.GetType().Name)); DevriyeGez(); PolisMerkezi.GetInstance().HaberVer(); }); }
public abstract void RaporaEkle(ISikayet sikayet);
private void SikayetEkle(ISikayet sikayet) { _sikayetler.Enqueue(sikayet); }
public override void RaporaEkle(ISikayet sikayet) { // polis raporuna ekler Form1.RaporEkle(string.Format("[{0}] [{1},{2}] sikayeti alindi", sikayet.GetType().Name, sikayet.Konum.X, sikayet.Konum.Y)); }
public void SikayetEt(ISikayet sikayet) { Console.WriteLine("Sikayet edildi. [{0}]", sikayet.GetType().Name); Merkez.SikayetKaydi(sikayet); }
// polis merkezi singleton mu degil mi bu tür alt sistemleri dusunmeye ihtiyac kalmiyor. public void SikayetEt(ISikayet sikayet) { polisMerkezi.SikayetKaydi(sikayet); }
public void SikayetKaydi(ISikayet sikayet) { _sikayetler.Enqueue(sikayet); Console.WriteLine("Sikayet kaydi alindi. [{0}]", sikayet.GetType().Name); HaberVer(); }
public void SikayetEt(ISikayet sikayet) { merkez.SikayetKaydi(sikayet); }