Esempio n. 1
0
        /// <summary>
        /// Creates the file "panne.xml" and inserts the first panne to it.
        /// </summary>
        /// <param name="expert">The object holding the data.</param>
        /// <returns></returns>
        private static bool firstAdd(Panne failure)
        {
            try
            {
                XmlWriterSettings wSettings = new XmlWriterSettings();
                wSettings.Indent = true;
                MemoryStream ms = new MemoryStream();
                XmlWriter xw = XmlWriter.Create(ms, wSettings);// Write Declaration
                xw.WriteStartDocument();

                // Write the root node
                xw.WriteStartElement("Pannes");//<Pannes>

                // Write the expert and the expert elements
                xw.WriteStartElement("panne");//<panne>
                xw.WriteStartAttribute("id");
                xw.WriteString("0");
                xw.WriteEndAttribute();
                //----------------
                xw.WriteStartElement("libelle");//<libelle>
                xw.WriteString(failure.getName());
                xw.WriteEndElement();//</libelle>
                //-----------------
                xw.WriteStartElement("description");//<description>
                xw.WriteString(failure.getDescription());
                xw.WriteEndElement();//</description>
                //-----------------
                xw.WriteStartElement("type_panne");//<type_panne>
                xw.WriteString(failure.getTypePanne().getId().ToString());
                xw.WriteEndElement();//</type_panne>
                //-----------------
                xw.WriteEndElement();//</panne>

                xw.WriteStartElement("MaxID");//<MaxID>
                xw.WriteString("0");
                xw.WriteEndElement();//</MaxID>

                // Close the document
                xw.WriteEndDocument();//</Pannes>

                // Flush the write
                xw.Flush();

                Byte[] buffer = new Byte[ms.Length];
                buffer = ms.ToArray();
                string xmlOutput = System.Text.Encoding.UTF8.GetString(buffer);

                //File.WriteAllText((Stream)Helper.service.LoadFile("panne.xml", xmlOutput);
                Helper.service.CreateXmlFile("panne.xml", xmlOutput);
            }
            catch (System.IO.FileNotFoundException x) { }
            catch (Exception x) {// System.Windows.Forms.MessageBox.Show(x.ToString());
            }
            return true;
        }
Esempio n. 2
0
        /// <summary>
        /// inserts a panne to "panne.xml".
        /// </summary>
        /// <param name="expert">The object holding the data</param>
        /// <returns></returns>
        private static bool insert(Panne failure)
        {
            try
            {
                XmlDocument XmlDoc = new XmlDocument();
                XPathNavigator Navigator;
                XPathNodeIterator Nodes;
                Int32 ID; /* Variable utilisée pour savoir quel est l'ID qu'il faut affecter au nouveau
                       * noeud créé */
                string rslt = Helper.service.LoadFile("panne.xml").ToString();

                StreamWriter sw = new StreamWriter(System.Windows.Forms.Application.StartupPath + "\\temp.xml");
                sw.Write(rslt);
                sw.Close();

                XmlDoc.Load(System.Windows.Forms.Application.StartupPath + "\\temp.xml");
                Navigator = XmlDoc.CreateNavigator();
                /* Recherche du noeud MaxID pour déterminer quelle sera l'ID du nouveau
                 * procedure. */
                string ExpXPath = "//MaxID";
                Nodes = Navigator.Select(Navigator.Compile(ExpXPath));
                Nodes.MoveNext();
                /* On place l'ID le plus élevé du document dans la variable ID */
                ID = Nodes.Current.ValueAsInt;
                /* On incrémente la valeur du noeud MaxID car une fois notre nouveau noeud
                 * créé, l'ID le plus élevé du document sera aussi incrémenté */
                Nodes.Current.SetValue((ID + 1).ToString());
                /* On se place sur le noeud ayant l'ID le plus élevé */
                ExpXPath = "//panne[@id='" + ID.ToString() + "']";
                Nodes = Navigator.Select(Navigator.Compile(ExpXPath));
                if (Nodes.Count != 0)
                {
                    Nodes.MoveNext();
                    /* On crée le noeud principal (panne). */
                    Nodes.Current.InsertElementAfter("", "panne", "", "");
                    /* On se place sur le noeud ainsi créé. */
                    Nodes.Current.MoveToNext(XPathNodeType.Element);
                    ID++; /* On incrémente ID pour que sa valeur soit identique à celle se
                       * trouvant dans le noeud MaxID. */
                    /* Encodage des données */
                    Nodes.Current.CreateAttribute("", "id", "", ID.ToString());
                    Nodes.Current.AppendChildElement("", "libelle", "", failure.getName());
                    Nodes.Current.AppendChildElement("", "description", "", failure.getDescription());
                    Nodes.Current.AppendChildElement("", "type_panne", "", failure.getTypePanne().getId().ToString());
                    //XmlDoc.Save((Stream)Helper.service.LoadFile("panne.xml");
                    Helper.service.SaveXmlFile("panne.xml", XmlDoc);
                }
                else
                {
                    return false;
                }
            }
            catch (System.IO.FileNotFoundException x) { }catch (Exception x) {// System.Windows.Forms.MessageBox.Show(x.ToString());
            }
            return true;
        }
Esempio n. 3
0
        /// <summary>
        /// Modifies the Dailure Data.
        /// </summary>
        /// <param name="login">The id of the target Failure object.</param>
        /// <param name="admin">The object that holds the new data.</param>
        /// <returns></returns>
        public static bool Update(int id, Panne failure)
        {
            try
            {
                /* On utilise un XmlDocument et non un XPathDocument car ce dernier ne permet
            * pas l'édition des données XML. */
                XmlDocument XmlDoc = new XmlDocument();
                XPathNavigator Navigator;
                XPathNodeIterator Nodes;
                string rslt = Helper.service.LoadFile("panne.xml").ToString();

                StreamWriter sw = new StreamWriter(System.Windows.Forms.Application.StartupPath + "\\temp.xml");
                sw.Write(rslt);
                sw.Close();

                XmlDoc.Load(System.Windows.Forms.Application.StartupPath + "\\temp.xml");
                Navigator = XmlDoc.CreateNavigator();
                string ExpXPath = "//panne[@id='" + id.ToString() + "']";
                Nodes = Navigator.Select(Navigator.Compile(ExpXPath));
                if (Nodes.Count != 0)
                {
                    /* Encodage des nouvelles données */
                    Nodes.MoveNext();
                    Nodes.Current.MoveToFirstAttribute();
                    Nodes.Current.SetValue(failure.getId().ToString());
                    Nodes.Current.MoveToParent();

                    Nodes.Current.MoveToFirstChild();
                    //System.Windows.Forms.MessageBox.Show(Nodes.Current.Name.ToString() + " | " + Nodes.Current.Value.ToString());
                    Nodes.Current.SetValue(failure.getName());
                    Nodes.Current.MoveToNext(XPathNodeType.Element);
                    Nodes.Current.SetValue(failure.getDescription());
                    Nodes.Current.MoveToNext(XPathNodeType.Element);
                    Nodes.Current.SetValue(failure.getTypePanne().getId().ToString());
                    //XmlDoc.Save((Stream)Helper.service.LoadFile("panne.xml");
                    Helper.service.SaveXmlFile("panne.xml", XmlDoc);
                }
                else
                {
                    return false;
                }
            }
            catch (System.IO.FileNotFoundException x) { }catch (Exception x)
            { System.Windows.Forms.MessageBox.Show(x.ToString()); }
            return true;
        }