public void CheckForNewFirmwareAsync(P3bbleFirmwareVersion version, bool useNightlyBuild = false) { string url = version.GetFirmwareServerUrl(useNightlyBuild); WebClient wc = new WebClient(); wc.DownloadStringAsync(new Uri(url)); wc.DownloadStringCompleted += (sender, e) => { byte[] byteArray = Encoding.UTF8.GetBytes(e.Result); MemoryStream stream = new MemoryStream(byteArray); var serializer = new DataContractJsonSerializer(typeof(P3bbleFirmwareLatest)); P3bbleFirmwareLatest info = serializer.ReadObject(stream) as P3bbleFirmwareLatest; stream.Close(); CheckForNewFirmwareVersionEventArgs eventArgs = new CheckForNewFirmwareVersionEventArgs(false, null); if (Util.IsNewerVersionAvailable(FirmwareVersion.Version, info.Normal.FriendlyVersion)) { eventArgs = new CheckForNewFirmwareVersionEventArgs(true, info); } if (CheckForNewFirmwareCompleted != null) { CheckForNewFirmwareCompleted(this, eventArgs); } }; }
public CheckForNewFirmwareVersionEventArgs(bool newVersionAvail, P3bbleFirmwareLatest newVersionInfo) { NewVersionAvailable = newVersionAvail; NewVersionInfo = newVersionInfo; }