private void sunucu_ClientdenYeniMesajAlindi(ClientdanMesajAlmaArgumanlari e) { Invoke(new dgClientdanYeniMesajAlindi(mesajAlindi), e); }
// Bir clientden mesaj alındığında ilgili olay bu fonksyonu çağırır private void mesajAlindi(ClientdanMesajAlmaArgumanlari e) { //Gelen mesajı & ve = işaretlerine göre ayrıştır NameValueCollection parametreler = mesajCoz(e.Mesaj); //Ayrıştırma başarısızsa çık if (parametreler == null || parametreler.Count < 1) { return; } //Ayrıştırma sonucunda komuta göre gerekli işlemleri yap try { switch (parametreler["komut"]) { case "siparis": komut_siparis(parametreler["masa"], parametreler["departmanAdi"], parametreler["miktar"], parametreler["yemekAdi"], parametreler["siparisiGirenKisi"], parametreler["dusulecekDeger"], e.Client, parametreler["adisyonNotu"], parametreler["sonSiparisMi"], parametreler["porsiyon"], parametreler["tur"], parametreler["ilkSiparis"], parametreler["porsiyonSinifi"]); break; case "iptal": // ürün iptal edildiği bilgisini dağıtmak için komut_iptal(parametreler["masa"], parametreler["departmanAdi"], parametreler["miktar"], parametreler["yemekAdi"], parametreler["siparisiGirenKisi"], parametreler["dusulecekDeger"], e.Client, parametreler["adisyonNotu"], parametreler["ikramYeniMiEskiMi"], parametreler["porsiyon"], parametreler["tur"], parametreler["iptalNedeni"]); break; case "hesapOdeniyor": // yeni masa açıldığı bilgisi geldiğinde komut_hesapOdeniyor(parametreler["masa"], parametreler["departmanAdi"]); break; case "OdemeBitti": // yeni masa açıldığı bilgisi geldiğinde komut_hesapOdemeBitti(parametreler["masa"], parametreler["departmanAdi"], parametreler["odenmeyenSiparisVarMi"]); break; case "AdisyonYazdir": // ikramın iptal edildiği bilgisini dağıtmak için komut_adisyonYazdir(parametreler["masa"], parametreler["departmanAdi"], parametreler["garson"], parametreler["yazdirilacakIndirim"], parametreler["acilisZamani"], parametreler["firmaAdi"], parametreler["firmaAdresTelefon"], parametreler["yaziciWindowsAdi"], parametreler["odenenMiktar"]); break; case "Indirim": // yeni masa açıldığı bilgisi geldiğinde komut_hesapIndirim(parametreler["masa"], parametreler["departmanAdi"], parametreler["odemeTipi"], parametreler["odemeMiktari"], e.Client, parametreler["indirimYapanKisi"]); break; case "bildirim": komut_bildirim(parametreler["masalar"], e.Client); break; case "bildirimGoruldu": komut_bildirimGoruldu(parametreler["masa"], parametreler["departmanAdi"], parametreler["yemekAdi"], parametreler["adedi"], parametreler["porsiyonu"]); break; case "GarsonIstendi": case "HesapIstendi": case "TemizlikIstendi": komut_OzelBildirim(parametreler["masa"], parametreler["departmanAdi"], parametreler["komut"], e.Client, parametreler["kalanHesap"]); break; case "GarsonGoruldu": case "HesapGoruldu": case "TemizlikGoruldu": komut_OzelBildirimGoruldu(parametreler["masa"], parametreler["departmanAdi"], parametreler["komut"]); break; case "masaGirilebilirMi": komut_masaGirilebilirMi(parametreler["masa"], parametreler["departmanAdi"], e.Client); break; case "masaDegistirTablet": case "masaDegistir": // Masa değiştirmek ve bu bilgiyi diğer kullanıcılara bildirmek için komut_masaDegistir(parametreler["yeniMasa"], parametreler["yeniDepartmanAdi"], parametreler["eskiMasa"], parametreler["eskiDepartmanAdi"], parametreler["yapilmasiGereken"], parametreler["komut"], e.Client); break; case "ikram": // ürün ikram edildiği bilgisini dağıtmak için komut_ikram(parametreler["masa"], parametreler["departmanAdi"], parametreler["miktar"], parametreler["yemekAdi"], parametreler["siparisiGirenKisi"], parametreler["dusulecekDeger"], e.Client, parametreler["adisyonNotu"], parametreler["porsiyon"], parametreler["tur"]); break; case "ikramIptal": // ikramın iptal edildiği bilgisini dağıtmak için komut_ikramIptal(parametreler["masa"], parametreler["departmanAdi"], parametreler["miktar"], parametreler["yemekAdi"], parametreler["siparisiGirenKisi"], parametreler["dusulecekDeger"], e.Client, parametreler["adisyonNotu"], parametreler["ikramYeniMiEskiMi"], parametreler["porsiyon"], parametreler["tur"]); break; case "urunuTasiTablet": case "urunuTasi": komut_urunuTasi(parametreler["masa"], parametreler["departmanAdi"], parametreler["yeniMasa"], parametreler["yeniDepartmanAdi"], parametreler["siparisiGirenKisi"], parametreler["aktarmaBilgileri"], e.Client); break; case "OdemeYapildi": // herhangi bir ödeme yapıldığında komut_OdemeYapildi(parametreler["masa"], parametreler["departmanAdi"], parametreler["odemeTipi"], parametreler["odemeMiktari"], e.Client, parametreler["secilipOdenenSiparisBilgileri"], parametreler["odemeyiAlanKisi"]); break; case "OdemeGuncelle": // Ödeme güncellendiğinde komut_OdemeGuncelle(parametreler["masa"], parametreler["departmanAdi"], parametreler["odemeler"], parametreler["gelenOdemeler"], e.Client, parametreler["siparisiGirenKisi"]); break; case "masayiAc": komut_masayiAc(parametreler["masa"], parametreler["departmanAdi"]); break; case "giris": // bir kullanıcı servera bağlandığında komut_giris(e.Client, parametreler["nick"]); break; case "YaziciIstegi": // bir kullanıcı servera bağlandığında komut_yaziciGonder(e.Client, parametreler["masa"], parametreler["departmanAdi"]); break; case "LoadSiparis": // bir kullanıcı menü ekranını açmak istediğinde masada verilen siparişleri aktarmak için komut_loadSiparis(e.Client, parametreler["masa"], parametreler["departmanAdi"]); break; case "OdenenleriGonder": // bir kullanıcı menü ekranını açmak istediğinde masada verilen siparişleri aktarmak için komut_OdenenleriGonder(e.Client, parametreler["masa"], parametreler["departmanAdi"]); break; case "OdemeBilgileriGuncelleTablet": case "OdemeBilgileriTablet": komut_OdemeBilgileriTablet(e.Client, parametreler["masa"], parametreler["departmanAdi"], parametreler["komut"]); break; case "AdisyonNotu": // adisyon notu değiştirileceğinde eski adisyon notunu göstermek için komut_adisyonNotu(e.Client, parametreler["masa"], parametreler["departmanAdi"]); break; case "departmanMasaSecimiIcin": // ürün taşıma için case "departman"://departmanın masaları hakkında bilgi case "departmanMasaTasimaIcin": komut_departman(e.Client, parametreler["departmanAdi"], parametreler["komut"], parametreler["masaDepartman"]); break; case "anketIstegi":// anket isteği geldiğinde komut_anketIstegi(e.Client); break; case "anketCevaplari": // anket cevapları geldiğinde komut_anketCevaplari(parametreler["kullaniciBilgileri"], parametreler["cevapBilgileri"], parametreler["soruBilgileri"]); // anket cevapları ve kullanıcı bilgileri break; case "cikis": // bir kullanıcı serverdan çıktığında komut_cikis(e.Client); break; case "masaAcildi": // yeni bir masa açıldığı bilgisini dağıtmak için komut_masaAcildi(parametreler["masa"], parametreler["departmanAdi"]); break; case "masaKapandi": // bir masa kapandığı bilgisini dağıtmak için komut_masaKapandi(parametreler["masa"], parametreler["departmanAdi"]); break; case "listeBos": komut_listeBos(parametreler["masa"], parametreler["departmanAdi"]); break; case "adisyonNotunuGuncelle": komut_adisyonNotunuGuncelle(parametreler["masa"], parametreler["departmanAdi"], parametreler["adisyonNotu"]); break; case "masaGirilebilir": komut_masaGirilebilir(parametreler["masa"], parametreler["departmanAdi"]); break; case "veriGonder": komut_veriGonder(e.Client, parametreler["kacinci"], parametreler["sadeceXML"]); break; } } catch { //parametre hatalı istenilen işlem yapılamadı hatası ver if (e.Client != null) { komut_IslemHatasi(e.Client, "İstenilen işlem gerçekleştirilemedi, lütfen tekrar deneyiniz"); } } //Mesajı 'Son Gelen 50 Mesaj' listesinde en başa ekle son50Mesaj.Insert(0, "" + e.Mesaj); //Listedeki mesaj sayısı 50'i geçmişse sondan sil. if (son50Mesaj.Count > 50) { son50Mesaj.RemoveAt(50); } }