示例#1
0
        public void GetImageFromNetwork(int receivedupdate)
        {     //Most már elvileg csak akkor hívja meg, amikor feldolgozza a kapott adatokat, tehát nem a Main Thread-ban
            if (this.PicUpdateTime >= receivedupdate)
            { //2015.06.06.
                LoadImageFromFile();
                return;
            }

            //2014.08.16. - A képeket azért nem menti felhasználónként, mert úgyis le tudja tölteni mindenkinek a képét szinte bárki, és amúgy is UserID-val van azonosítva
            var pfs = new Networking.PacketSender(
                new Networking.PDGetImage(UserID, (Image != null ? PicUpdateTime : 0))).Send(); //Image!=null: 2015.06.06.

            if (pfs == null || pfs.All(entry => !((Networking.PDGetImage)entry.EData).RSuccess))
            {
                LoadImageFromFile(); //2015.06.06.
                return;
            }
            IEnumerable <double> picupdatetimes = pfs.Select(entry => ((Networking.PDGetImage)entry.EData).RPicUpdateTime);

            byte[] bytes = null;
            double max   = picupdatetimes.Max(); //2015.06.06.

            foreach (var entry in pfs)
            {
                if (((Networking.PDGetImage)entry.EData).RPicUpdateTime == max)
                {
                    bytes = ((Networking.PDGetImage)entry.EData).RImageData;
                    break;
                }
            }

            if (bytes == null || bytes[0] == 0x00) //Nincs kép, vagy hiba történt
            {
                this.Image = null;                 //2015.05.30.
            }
            else if (bytes[0] == 0x01)
            {
                LoadImageFromFile(); //2015.06.06.
            }
            else
            {                                                              //Mentse el a képet
                File.WriteAllBytes("pictures\\" + UserID + ".png", bytes); //2015.06.06. - Először a fogadott formátumban menti el, majd legközelebb már PNG-ként
                LoadImageFromFile();                                       //2015.06.06.
            }
        }
示例#2
0
        public static void SendUpdate()
        { //2014.08.30.
            if (!SendChanges)
            {
                return;
            }
            List <string> retstr = new List <string>();

            retstr.Add(UserID + "_name=" + Name);
            retstr.Add(UserID + "_message=" + Message);
            retstr.Add(UserID + "_state=" + State);
            retstr.Add(UserID + "_username="******"_email=" + Email);
            retstr.Add(UserID + "_ispartner=" + false); //Ellenőrizze le, amikor megkapja
            retstr.Add(UserID + "_lastupdate=" + Program.DateTimeToUnixTime(DateTime.Now));
            retstr.Add(UserID + "_picupdatetime=" + PicUpdateTime);
            var task = new Networking.PacketSender(new Networking.PDListUpdate(retstr.ToArray())).SendAsync();
        }