Exemple #1
0
        private void SendLoginToUsers()
        { //2014.12.18.
            var bytes = new List <byte>();

            //var tmpb = Encoding.Unicode.GetBytes(CurrentUser.IP.ToString());
            //bytes.AddRange(BitConverter.GetBytes(tmpb.Length));
            //bytes.AddRange(tmpb);
            for (int i = 0; i < UserInfo.KnownUsers.Count; i++) //Ha a count 0, nem fogja végrehajtani
            {
                bytes.AddRange(BitConverter.GetBytes(UserInfo.KnownUsers[i].UserID));
                bytes.AddRange(BitConverter.GetBytes(UserInfo.KnownUsers[i].LastUpdate));
            }
            //bytes.Add((Storage.Settings["isserver"] == "1") ? (byte)0x01 : (byte)0x00); //Mivel bejelentkezéstől függetlenül menti el, gépfüggő, hogy itt mit küld el
            //Networking.ParseUpdateInfo(Networking.SendUpdate(Networking.UpdateType.LoginUser, bytes.ToArray(), false));
            Networking.SendUpdateInThread(Networking.UpdateType.LoginUser, bytes.ToArray(), new EventHandler <byte[][]>(
                                              (e, resp) => Networking.ParseUpdateInfo(resp)));
        }
        public void SetOnlineState(object sender, EventArgs e)
        {
            int state = 0;

            if (sender == elérhetőToolStripMenuItem)
            {
                state = 1;
            }
            if (sender == elfoglaltToolStripMenuItem)
            {
                state = 2;
            }
            if (sender == nincsAGépnélToolStripMenuItem)
            {
                state = 3;
            }
            if (sender == null)                                                           //2014.08.30. - Erre nagyon sokáig nem volt felkészítve, és ezt kihasználtam a kijelentkezéshez
            {
                if (Networking.SendRequest("setstate", 0 + "", 0, true).Contains("Fail")) //Kijelentkezés - if: 2014.11.15.
                {
                    MessageBox.Show(Language.Translate("error"));
                }
                //byte[] tmpb = Encoding.Unicode.GetBytes(CurrentUser.IP.ToString());
                string str = "";
                foreach (var ip in CurrentUser.IPs)
                {
                    str += ip + ";";
                }
                byte[] tmpb  = Encoding.Unicode.GetBytes(str);
                byte[] sendb = new byte[4 + tmpb.Length];
                Array.Copy(BitConverter.GetBytes(tmpb.Length), sendb, 4);
                Array.Copy(tmpb, 0, sendb, 4, tmpb.Length);
                //Networking.SendUpdate(Networking.UpdateType.LogoutUser, sendb, false);
                Networking.SendUpdateInThread(Networking.UpdateType.LogoutUser, sendb, null);
                CurrentUser.SendChanges = false; //2014.12.31.
            }
            CurrentUser.State = state;           //2014.08.28.
        }