private void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e) { try { Stream data = e.Result; StreamReader httpReader = new StreamReader(data); string xml = httpReader.ReadToEnd(); data.Close(); httpReader.Close(); XmlSerializer xmlReader = new XmlSerializer(typeof(VersionInfo)); StringReader stringReader = new StringReader(xml); VersionInfo versionInfo = (VersionInfo)xmlReader.Deserialize(stringReader); MainModule = (UpdateInfo)Xml.CheckIfNull(typeof(UpdateInfo), versionInfo.MainModule, MainModule); stringReader.Close(); } catch (Exception ex) { if (showMsg) { System.Windows.Forms.MessageBox.Show("Unable to connect to server:\n\n" + ex.Message, "Update", MessageBoxButtons.OK, MessageBoxIcon.Error); } } finally { ((WebClient)sender).Dispose(); } // Check modules for new versions List <Modules> newUpdates = new List <Modules>(); // Check MainModule version if (new Version(MainModule.LatestVersion).CompareTo(MainModule.CurrentVersion) > 0 && MainModule.Urls.Count > 0) { newUpdates.Add(Modules.MainModule); } // If any module has an update if (newUpdates.Count > 0) { if (showMsg) { UpdateForm form = new UpdateForm(this); DialogResult result = form.ShowDialog(); if (result == DialogResult.Yes) { Update(); } } if (UpdateAvailableEvent != null) { UpdateAvailableEvent(this, new UpdateEventArgs(newUpdates)); } } else { if (showMsg) { MessageBox.Show("No update available. You already have the latest version (" + MainModule.CurrentVersion.ToString() + ").", "Update", MessageBoxButtons.OK, MessageBoxIcon.Information); } } }