private void CheckVersionCallBack(HttpWebResponse Reponse) { sVersion Actual = Outils.GetVersion(); XmlDocument xmlDoc = new XmlDocument(); xmlDoc = pm.GetResultXml(ref Reponse); XmlNode Version = pm.GetFirstElement(ref xmlDoc, "version"); if (Version != null) { int SiteMajor = Convert.ToInt32(Version.Attributes["major"].Value); int SiteMinor = Convert.ToInt32(Version.Attributes["minor"].Value); int SiteBuild = Convert.ToInt32(Version.Attributes["build"].Value); Byte Beta = Convert.ToByte(Version.Attributes["beta"].Value); bool maj = false; bool compat = true; string Message = ""; if (Beta == 1) { Message = "!!! Attention, Nouvelle Version Bêta disponible !!!" + Environment.NewLine + Environment.NewLine; } if (SiteMajor > Actual.Major) { Message += "Cette version de FFS2Play n'est pas supportée par le site. souhaitez vous procéder à la mise à jour ?"; maj = true; compat = false; } else if ((SiteMinor > Actual.Minor) || ((SiteMinor == Actual.Minor) && (SiteBuild > Actual.Build))) { Message += "Cette version de FFS2Play n'est plus a jour. souhaitez vous procéder à la mise à jour ?"; maj = true; } if (maj) { DialogResult dialogResult = MessageBox.Show(Message, "Mise à jour de FFS2Play", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) { XmlNode Url = pm.GetFirstElement(ref xmlDoc, "url"); if (Url != null) { Process.Start(Url.InnerText); } pm.AutoExit = true; Invoke(new Action(() => { Close(); })); return; } if (!compat) { return; } } } }
/// <summary> /// Construit le patron /// </summary> /// <param name="Doc"></param> /// <param name="Code"></param> private void XmlBuild(ref XmlDocument Doc, XmlCode Code) { if (Doc == null) { Doc = new XmlDocument(); } else { Doc.RemoveAll(); } sVersion Actual = Outils.GetVersion(); //Déclaration de la norme utilisée XmlDeclaration xmlDeclaration = Doc.CreateXmlDeclaration("1.0", "UTF-8", null); XmlElement root = Doc.DocumentElement; Doc.InsertBefore(xmlDeclaration, root); //Création de la racine XmlElement xmlffs2play = Doc.CreateElement(string.Empty, "ffs2play", string.Empty); Doc.AppendChild(xmlffs2play); //Création de la version XmlElement xmlVersion = Doc.CreateElement(string.Empty, "version", string.Empty); xmlVersion.InnerText = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name + "_" + Actual.Major.ToString() + "_" + Actual.Minor.ToString() + "_" + Actual.Build.ToString(); xmlffs2play.AppendChild(xmlVersion); //Activation du P2P; XmlElement xmlP2P = Doc.CreateElement(string.Empty, "P2P", string.Empty); xmlP2P.InnerText = Properties.Settings.Default.P2PEnable.ToString(); xmlffs2play.AppendChild(xmlP2P); //Création du switch XmlElement xmlSwitch = Doc.CreateElement(string.Empty, "switch", string.Empty); xmlffs2play.AppendChild(xmlSwitch); //Création du data XmlElement xmlData = Doc.CreateElement(string.Empty, "data", string.Empty); xmlData.InnerText = Code.ToString(); xmlSwitch.AppendChild(xmlData); //Création du key XmlElement xmlKey = Doc.CreateElement(string.Empty, "key", string.Empty); xmlKey.InnerText = Key; xmlSwitch.AppendChild(xmlKey); switch (Code) { case XmlCode.hello: XmlElement xmlHello = Doc.CreateElement(string.Empty, "hello", string.Empty); xmlffs2play.AppendChild(xmlHello); //Création de la balise pilotID XmlElement xmlLogin = Doc.CreateElement(string.Empty, "pilotID", string.Empty); xmlLogin.InnerText = User.Login; xmlHello.AppendChild(xmlLogin); break; case XmlCode.verify: //Création de la balise verify XmlElement xmlVerify = Doc.CreateElement(string.Empty, "verify", string.Empty); xmlffs2play.AppendChild(xmlVerify); //Création de la balise AES XmlElement xmlAES = Doc.CreateElement(string.Empty, "AES", string.Empty); xmlAES.InnerText = Crypted_AESKey; xmlVerify.AppendChild(xmlAES); //Création de la balise pilotID XmlElement xmlPilotID = Doc.CreateElement(string.Empty, "pilotID", string.Empty); xmlPilotID.InnerText = User.Login; xmlVerify.AppendChild(xmlPilotID); //Création de la balise password XmlElement xmlPassword = Doc.CreateElement(string.Empty, "password", string.Empty); xmlPassword.InnerText = Outils.EncryptMessage(Outils.Decrypt(User.Password), m_sAESKey); xmlVerify.AppendChild(xmlPassword); //Envoi du port en écoute XmlElement xmlPort = Doc.CreateElement(string.Empty, "port", string.Empty); xmlPort.InnerText = P2P.Port.ToString(); xmlVerify.AppendChild(xmlPort); //Envoi du port en écoute XmlElement xmlLocalIP = Doc.CreateElement(string.Empty, "local_ip", string.Empty); xmlLocalIP.InnerText = P2P.LocalIPSerialized; xmlVerify.AppendChild(xmlLocalIP); break; case XmlCode.liveupdate: //Création de la balise liveupdate XmlElement xmlLiveUpdate2 = Doc.CreateElement(string.Empty, "liveupdate", string.Empty); xmlffs2play.AppendChild(xmlLiveUpdate2); xmlLiveUpdate2.AppendChild(Doc.CreateElement(string.Empty, "registration", string.Empty)); //Création de la balise registration xmlLiveUpdate2.AppendChild(Doc.CreateElement(string.Empty, "latitude", string.Empty)); //Création de la balise latitude xmlLiveUpdate2.AppendChild(Doc.CreateElement(string.Empty, "longitude", string.Empty)); //Création de la balise longitude xmlLiveUpdate2.AppendChild(Doc.CreateElement(string.Empty, "heading", string.Empty)); //Création de la balise heading xmlLiveUpdate2.AppendChild(Doc.CreateElement(string.Empty, "altitude", string.Empty)); //Création de la balise altitude xmlLiveUpdate2.AppendChild(Doc.CreateElement(string.Empty, "groundSpeed", string.Empty)); //Création de la balise groundSpeed xmlLiveUpdate2.AppendChild(Doc.CreateElement(string.Empty, "iaspeed", string.Empty)); //Création de la balise iaspeed xmlLiveUpdate2.AppendChild(Doc.CreateElement(string.Empty, "squawk", string.Empty)); //Création de la balise squawk xmlLiveUpdate2.AppendChild(Doc.CreateElement(string.Empty, "onground", string.Empty)); //Création de la balise onground xmlLiveUpdate2.AppendChild(Doc.CreateElement(string.Empty, "sim", string.Empty)); //Création de la balise simulateur break; case XmlCode.atc: //Création de la balise liveupdate XmlElement xmlAtc = Doc.CreateElement(string.Empty, "atc", string.Empty); xmlffs2play.AppendChild(xmlAtc); xmlAtc.AppendChild(Doc.CreateElement(string.Empty, "latitude", string.Empty)); //Création de la balise latitude xmlAtc.AppendChild(Doc.CreateElement(string.Empty, "longitude", string.Empty)); //Création de la balise longitude xmlAtc.AppendChild(Doc.CreateElement(string.Empty, "heading", string.Empty)); //Création de la balise heading xmlAtc.AppendChild(Doc.CreateElement(string.Empty, "altitude", string.Empty)); //Création de la balise altitude xmlAtc.AppendChild(Doc.CreateElement(string.Empty, "groundSpeed", string.Empty)); //Création de la balise groundSpeed xmlAtc.AppendChild(Doc.CreateElement(string.Empty, "iaspeed", string.Empty)); //Création de la balise iaspeed xmlAtc.AppendChild(Doc.CreateElement(string.Empty, "squawk", string.Empty)); //Création de la balise squawk break; case XmlCode.syncai: XmlElement xmlSyncAI = Doc.CreateElement(string.Empty, "syncai", string.Empty); xmlffs2play.AppendChild(xmlSyncAI); xmlSyncAI.AppendChild(Doc.CreateElement(string.Empty, "md5list", string.Empty)); break; case XmlCode.sendai: XmlElement xmlSendAI = Doc.CreateElement(string.Empty, "sendai", string.Empty); xmlffs2play.AppendChild(xmlSendAI); break; } }