/// <summary> /// Returns the list of the procedures. /// </summary> /// <returns></returns> public static List<Procedure> GetAllProcedures() { /* On déclare et on crée une instance des variables nécéssaires pour la recherche */ List<Procedure> procedures = new List<Procedure>(); Procedure procedure = new Procedure(); try { string rslt = Helper.service.LoadFile("procedure.xml").ToString(); StreamWriter sw = new StreamWriter(System.Windows.Forms.Application.StartupPath + "\\temp.xml"); sw.Write(rslt); sw.Close(); //XPathDocument XPathDocu = new XPathDocument((Stream)Helper.service.LoadFile("Experts.xml")); XPathDocument XPathDocu = new XPathDocument(System.Windows.Forms.Application.StartupPath + "\\temp.xml"); XPathNavigator Navigator; XPathNodeIterator Nodes; /* On affecte false à la /* On crée un navigateur */ Navigator = XPathDocu.CreateNavigator(); string ExpXPath = "//procedure"; /* On lance la recherche */ Nodes = Navigator.Select(Navigator.Compile(ExpXPath)); /* On vérifie si la recherche a été fructueuse */ //System.Windows.Forms.MessageBox.Show("Node.count. "+Nodes.Count,"XMLProcedure.GetAllProcedures"); if (Nodes.Count != 0) { // NOTE: Necéssaire pour se placer sur le noeud recherché /* Encodage des données dans la classe Etape */ int tillCount = 0; while (tillCount < Nodes.Count) { Nodes.MoveNext(); procedure = new Procedure(); procedure.setId(Convert.ToInt32(Nodes.Current.GetAttribute("id", ""))); //System.Windows.Forms.MessageBox.Show("Attrib. " + Nodes.Current.GetAttribute("id", ""), "XMLProcedure.GetAllProcedures"); Nodes.Current.MoveToFirstChild(); /* On se déplace sur le premier noeud * enfant "Libelle" */ //System.Windows.Forms.MessageBox.Show("Current: " + Nodes.Current.Name + " Current.Value " + Nodes.Current.Value, "XMLProcedure.GetAllProcedures"); procedure.setName(Nodes.Current.Value); //System.Windows.Forms.MessageBox.Show("libelle. " + Nodes.Current.Value, "XMLProcedure.GetAllProcedures"); Nodes.Current.MoveToNext(); // On se déplace sur le noeud suivant "Description" //System.Windows.Forms.MessageBox.Show("Description. " + Nodes.Current.Value, "XMLProcedure.GetAllProcedures"); procedure.setDescription(Nodes.Current.Value); //System.Windows.Forms.MessageBox.Show("Type.Description. " +type.getDescription() , "XMLProcedure.GetAllProcedures"); Nodes.Current.MoveToNext(); // On se déplace sur le noeud suivant "Failure" procedure.setPanne(Panne.GetByID(Convert.ToInt32(Nodes.Current.Value))); procedures.Add(procedure); tillCount++; Nodes.Current.MoveToParent(); } } /* Si aucun expert n'a été trouvé */ else { procedure = null; } } catch (System.IO.FileNotFoundException x) { }catch (Exception x) { //System.Windows.Forms.MessageBox.Show(x.ToString()); } /* Renvoi de toutes les données dans une instance de la classe "etape" */ return procedures; }
public static Procedure GetById(int id) { /* On déclare et on crée une instance des variables nécéssaires pour la recherche */ Procedure procedure = new Procedure(); try { string rslt = Helper.service.LoadFile("procedure.xml").ToString(); StreamWriter sw = new StreamWriter(System.Windows.Forms.Application.StartupPath + "\\temp.xml"); sw.Write(rslt); sw.Close(); //XPathDocument XPathDocu = new XPathDocument((Stream)Helper.service.LoadFile("Experts.xml")); XPathDocument XPathDocu = new XPathDocument(System.Windows.Forms.Application.StartupPath + "\\temp.xml"); XPathNavigator Navigator; XPathNodeIterator Nodes; /* On affecte false à la /* On crée un navigateur */ Navigator = XPathDocu.CreateNavigator(); string ExpXPath = "//procedure[@id='" + id + "']"; /* On lance la recherche */ Nodes = Navigator.Select(Navigator.Compile(ExpXPath)); /* On vérifie si la recherche a été fructueuse */ if (Nodes.Count != 0) { Nodes.MoveNext(); // NOTE: Necéssaire pour se placer sur le noeud recherché /* Encodage des données dans la classe Etape */ procedure.setId(id); Nodes.Current.MoveToFirstChild(); /* On se déplace sur le premier noeud * enfant "Libelle" */ procedure.setName(Nodes.Current.Value); Nodes.Current.MoveToNext(); // On se déplace sur le noeud suivant "Description" procedure.setDescription(Nodes.Current.Value); Nodes.Current.MoveToNext();// On se déplace sur le noeud suivant "type_panne" procedure.setPanne(XMLFailure.GetById(Convert.ToInt32(Nodes.Current.Value))); } /* Si aucun expert n'a été trouvé */ else { procedure = null; } } catch (System.IO.FileNotFoundException x) { }catch (Exception x) { //System.Windows.Forms.MessageBox.Show(x.ToString()); } /* Renvoi de toutes les données dans une instance de la classe "etape" */ return procedure; }