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. } }
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(); }