private void checkForUpdate()
{
string xmlURL = "http://openbve-project.net/version.xml";
HttpWebRequest hwRequest = (HttpWebRequest)WebRequest.Create(xmlURL);
hwRequest.Timeout = 5000;
HttpWebResponse hwResponse = null;
XmlTextReader reader = null;
string url = null;
string date = null;
Version newVersion = new Version();
try
{
hwResponse = (HttpWebResponse)hwRequest.GetResponse();
reader = new XmlTextReader(hwResponse.GetResponseStream());
reader.MoveToContent();
string elementName = "";
if ((reader.NodeType == XmlNodeType.Element) &&
(reader.Name == "openBVE"))
{
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
elementName = reader.Name.ToLowerInvariant();
else
{
if ((reader.NodeType == XmlNodeType.Text) && (reader.HasValue))
{
switch (elementName)
{
case "version":
newVersion = new Version(reader.Value);
break;
case "url":
url = reader.Value;
break;
case "date":
date = reader.Value;
break;
}
}
}
}
}
}
finally
{
if (reader != null) reader.Close();
if (hwResponse != null) hwResponse.Close();
}
Version curVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
bool newerVersion = curVersion.CompareTo(newVersion) < 0;
if (url == null)
{
//The internet connection is broken.....
MessageBox.Show(Interface.GetInterfaceString("panel_updates_invalid"));
return;
}
if (newerVersion)
{
string question = Interface.GetInterfaceString("panel_updates_new");
question = question.Replace("[version]", newVersion.ToString());
question = question.Replace("[date]", date);
if (DialogResult.OK == MessageBox.Show(this, question, Interface.GetInterfaceString("panel_updates"), MessageBoxButtons.OKCancel, MessageBoxIcon.Question))
{
System.Diagnostics.Process.Start(url);
}
}
else
{
MessageBox.Show(Interface.GetInterfaceString("panel_updates_old"));
}
}