public void info3a(Loader loader, NewTextMessage ntmess, NewMessage mess, TextBox tbWiad, ListBox lbWiadomosci)
 {
     ibox.writeInfo(con, tsslInfo, "Wiadomości odebrane!");
     ntmess.write(con, tbWiad, "OSTATNIE WIADOMOŚCI DO CIEBIE");
     ntmess.write(con, tbWiad, "(zostaną automatycznie usunięte z bazy danych)");
     ntmess.write(con, tbWiad, "====================================");
     mess.show(con, lbWiadomosci, "OSTATNIE WIADOMOSCI DO CIEBIE", "Zostaną automatycznie usunięte z bazy danych", 3);
     loader.loadFriends();
 }
 public FriendsChanger(MainWindow c, ListView lv, TcpClient tcpc, Stream stm, Label tssl)
 {
     lvZnajomi = lv;
     con = c;
     tcpclnt = tcpc;
     stream = stm;
     tsslInfo = tssl;
     loader = new Loader(con, tcpclnt, stream, tsslInfo);
 }
 public void switch_(MainWindow con, String typ, Label tsslInfo, Dictionary<String, dynamic> values,
     String wersja, HidePanel panel, Loader loader, StartClient client, String ip_adress, Action nasluch,
     Button btnLoguj, ListBox lbWiadomosci, TextBox tbDo, TextBox tbWiad, ListView lvZnajomi,
     NewTextMessage ntmess, NewMessage mess, FriendsChanger fchanger, System.Media.SoundPlayer player)
 {
     Packets packet = new Packets(tsslInfo, con, values, wersja);
     switch (typ)
     {
         //POLACZENIE I ZAPYTANIE O LOGOWANIE
         case "serv1":
             packet.serv1();
             break;
         //LOGOWANIE
         case "l1":
             ibox.writeInfo(con, tsslInfo, "Zalogowano");
             panel.hide(true);
             loader.loadMessages();
             break;
         case "l2":
             MessageBox.Show("Ktoś był zalogowany! " + Environment.NewLine + " Trwa zamykanie poprzedniej sesji "
                 + Environment.NewLine + "i wykonywanie ponownego połączenia do serwera.");
             client.reconnect(ip_adress, nasluch, tsslInfo, btnLoguj);
             //tcpclnt1 = client.retClient();
             break;
         case "l3":
             ibox.writeInfo(con, tsslInfo, "Nieprawidłowe dane lub login nie istnieje");
             break;
         case "l4":
             ibox.writeInfo(con, tsslInfo, "Jesteś już zalogowany!");
             break;
         //WIADOMOSCI
         case "wiad":
             packet.wiad(ntmess, mess, player, tbWiad, lbWiadomosci, tbDo);
             //client.reconnect(ip_adress, nasluch, tsslInfo, btnLoguj);
             //tcpclnt1 = client.retClient();
             break;
         case "wiad2":
             packet.wiad2(ntmess, mess, tbWiad, lbWiadomosci);
             break;
         //INFO
         case "info1":
             packet.info1(ntmess, mess, tbWiad, lbWiadomosci);
             break;
         case "info2":
             ibox.writeInfo(con, tsslInfo, "Wiadomość wysłana!");
             break;
         case "info3a":
             packet.info3a(loader, ntmess, mess, tbWiad, lbWiadomosci);
             break;
         case "info3b":
             ibox.writeInfo(con, tsslInfo, "Brak nowych wiadomości!");
             loader.loadFriends();
             break;
         case "znajomi":
             packet.znajomi(lvZnajomi, fchanger, loader);
             break;
         case "online":
             packet.online(ntmess, mess, tbWiad, lbWiadomosci, fchanger);
             break;
         case "wylacz":
             client.reconnect(ip_adress, nasluch, tsslInfo, btnLoguj);
             //tcpclnt1 = client.retClient();
             break;
         default:
             ibox.writeInfo(con, tsslInfo, "Nieznany pakiet z serwera!" + typ);
             break;
     }
 }
 public void znajomi(ListView lvZnajomi, FriendsChanger fchanger, Loader loader)
 {
     ListViewCleaner lvCleaner = new ListViewCleaner();
     lvCleaner.clear(con, lvZnajomi);
     ibox.writeInfo(con, tsslInfo, "Pobrano listę znajomych");
     int ilosc = 0;
     foreach (string ele in values["text1"])
     {
         ilosc++;
     }
     for (int i = 0; i < ilosc; i++)
     {
         fchanger.add(values["text1"][i].ToString(), values["text2"][i].ToString());
     }
     loader.isOnline();
 }
        private void nasluch()
        {
            try
            {

                stm = tcpclnt.GetStream();
                FriendsChanger fchanger = new FriendsChanger(this, lvZnajomi, tcpclnt, stm, tsslInfo);
                loader = new Loader(this, tcpclnt, stm, tsslInfo);

                byte[] bb = new byte[2048];
                int k;
                while (tcpclnt.Connected)
                {
                    k = stm.Read(bb, 0, 2048);

                    char[] fla = new char[k];
                    for (int i = 0; i < k; i++)
                    {
                        fla[i] = Convert.ToChar(bb[i]);
                    }

                    data = new string(fla);
                    Dictionary<string, dynamic> values = JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(data);
                    string typ = values["typ"].ToString();
                    packetSwitch.switch_(this, typ, tsslInfo, values, wersja, panel, loader, client, IP_ADRES, nasluch,
                        btnLoguj, lbWiadomosci, tbDo, tbWiad, lvZnajomi, ntmess, mess, fchanger, player);
                }
            }
            catch (Exception ex)
            {
                ibox.writeInfo(this, tsslInfo, "Błąd odpowiedzi servera");

                log.nextLog();
                log.write("Dane: " + data + Environment.NewLine + ex.ToString());
                panel.hide(false);
                tcpclnt.Close();
                client.start(IP_ADRES, nasluch, tsslInfo, btnLoguj);
                tcpclnt = client.retClient();
            }
        }