Ejemplo n.º 1
0
        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);
                }
            }
        }