Esempio n. 1
0
        /// <summary>
        /// Returns all the elements or only the Activated onces from Experts.xml depending on the value of the boolean argument.
        /// </summary>
        /// <param name="evenDeactivated">When true get all elments, otherwise get only the activated onces.</param>
        /// <returns></returns>
        public static List <Manager.ExpertManager.Expert> GetAll(bool evenDeactivated)
        {
            /* On déclare et on crée une instance des variables nécéssaires pour la recherche */
            List <Manager.ExpertManager.Expert> experts = new List <Manager.ExpertManager.Expert>();

            try
            {
                string rslt = Helper.service.LoadFile("Experts.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 crée un navigateur */
                Navigator = XPathDocu.CreateNavigator();
                /* On crée ici l'expression XPath de recherche d'expert à  partir de l'id */
                //string ExpXPath = "//Expert[(firstName='" + name + "' or lastName='" + name + "') and status != 'Deactivated']";

                //To eleminate the case sensetive in XPath we use the methode translate().
                string ExpXPath = "";
                if (evenDeactivated)
                {
                    ExpXPath = "//Expert";
                }
                else
                {
                    ExpXPath = "//Expert[status != 'Deactivated']";
                }

                /* On lance la recherche */
                Nodes = Navigator.Select(Navigator.Compile(ExpXPath));
                /* On vérifie si la recherche a été fructueuse */
                if (Nodes.Count != 0)
                {
                    while (Nodes.MoveNext()) // NOTE: Necéssaire pour se placer sur le noeud recherché
                    {
                        Manager.ExpertManager.Expert expert = new Manager.ExpertManager.Expert();
                        /* Encodage des données dans la classe Expert */
                        expert.setId(Convert.ToInt32(Nodes.Current.GetAttribute("id", ""))); /* Pas besoin de chercher cette donnée vu que c'est notre
                                                                                              * critère de recherche, on peut donc directement
                                                                                              * l'encoder. */
                        expert.setLogin(Nodes.Current.GetAttribute("login", ""));
                        expert.setPassword(Nodes.Current.GetAttribute("password", ""));

                        //System.Windows.Forms.MessageBox.Show(expert.getPassword(),"XMLExpert");

                        Nodes.Current.MoveToFirstChild(); /* On se déplace sur le premier noeud
                                                           * enfant "Prenom" */
                        expert.setFirstName(Nodes.Current.Value);
                        Nodes.Current.MoveToNext();       // On se déplace sur le noeud suivant "Nom"
                        expert.setLastName(Nodes.Current.Value);
                        Nodes.Current.MoveToNext();
                        expert.setEmail(Nodes.Current.Value);
                        Nodes.Current.MoveToNext();
                        expert.setPhoneNumber(Nodes.Current.Value);
                        Nodes.Current.MoveToNext();
                        expert.setAddress(Nodes.Current.Value);
                        Nodes.Current.MoveToNext();
                        expert.setRole(Nodes.Current.Value);
                        Nodes.Current.MoveToNext();
                        expert.setSpecialty(Nodes.Current.Value);
                        Nodes.Current.MoveToNext();
                        expert.setStatus(Helper.StringToStatus(Nodes.Current.Value));
                        experts.Add(expert);
                    }
                }
            }
            catch (Exception x)
            {
                //If there was a problem we re-instanciate the list so no element is sent.
                //It returns an empty list instead of null, then we make our test on list.count.
                experts = new List <Manager.ExpertManager.Expert>();
            }
            /* Renvoi de toutes les données dans une instance de la classe "Client" */
            return(experts);
        }
Esempio n. 2
0
        /// <summary>
        /// Returns an expert using its login.
        /// </summary>
        /// <param name="login">Login de l'expert.</param>
        /// <param name="password"></param>
        /// <returns>The expert if exists.</returns>
        public static ExpertManager.Expert getExpert(string login)
        {
            Manager.ExpertManager.Expert expert = new Manager.ExpertManager.Expert();
            try
            {
                string rslt = Helper.service.LoadFile("Experts.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 crée un navigateur */
                Navigator = XPathDocu.CreateNavigator();
                /* On crée ici l'expression XPath de recherche d'admin*/
                string ExpXPath = "//Expert[@login='******']";

                /* On lance la recherche */
                Nodes = Navigator.Select(Navigator.Compile(ExpXPath));
                //System.Windows.Forms.MessageBox.Show(Nodes.Count.ToString(),"XMLAdmin");
                if (Nodes.Count != 0)
                {
                    Nodes.MoveNext();                                                    // NOTE: Necéssaire pour se placer sur le noeud recherché
                    /* Encodage des données dans la classe Expert */
                    expert.setId(Convert.ToInt32(Nodes.Current.GetAttribute("id", ""))); /* Pas besoin de chercher cette donnée vu que c'est notre
                                                                                          * critère de recherche, on peut donc directement
                                                                                          * l'encoder. */
                    expert.setLogin(Nodes.Current.GetAttribute("login", ""));
                    expert.setPassword(Nodes.Current.GetAttribute("password", ""));

                    Nodes.Current.MoveToFirstChild(); /* On se déplace sur le premier noeud
                                                       * enfant "Prenom" */
                    expert.setFirstName(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();       // On se déplace sur le noeud suivant "Nom"
                    expert.setLastName(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setEmail(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setPhoneNumber(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setAddress(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setRole(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setSpecialty(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setStatus(Helper.StringToStatus(Nodes.Current.Value));
                }
            }
            catch (Exception x)
            {
                System.Windows.Forms.MessageBox.Show(x.Message.ToString());
                return(null);
            }
            return(expert);
        }
Esempio n. 3
0
        /// <summary>
        /// Modifies the Expert Data.
        /// </summary>
        /// <param name="login">The login of the target Expert object.</param>
        /// <param name="admin">The object that holds the new data.</param>
        /// <returns></returns>
        public static bool Modify(string login, Manager.ExpertManager.Expert expert)
        {
            //System.Windows.Forms.MessageBox.Show(expert.getFirstName(),"XMLExpert");
            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("Experts.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 = "//Expert[@login='******']";
                Nodes = Navigator.Select(Navigator.Compile(ExpXPath));
                if (Nodes.Count != 0)
                {
                    /* Encodage des nouvelles données */
                    Nodes.MoveNext();
                    Nodes.Current.MoveToFirstAttribute();
                    Nodes.Current.MoveToNextAttribute();
                    Nodes.Current.SetValue(expert.getLogin());
                    Nodes.Current.MoveToNextAttribute();
                    Nodes.Current.SetValue(expert.getPassword());
                    Nodes.Current.MoveToParent();

                    Nodes.Current.MoveToFirstChild();
                    //System.Windows.Forms.MessageBox.Show(Nodes.Current.Name.ToString() + " | " + Nodes.Current.Value.ToString());
                    Nodes.Current.SetValue(expert.getFirstName());
                    Nodes.Current.MoveToNext(XPathNodeType.Element);
                    Nodes.Current.SetValue(expert.getLastName());
                    Nodes.Current.MoveToNext(XPathNodeType.Element);
                    Nodes.Current.SetValue(expert.getEmail());
                    Nodes.Current.MoveToNext(XPathNodeType.Element);
                    Nodes.Current.SetValue(expert.getPhoneNumber());
                    Nodes.Current.MoveToNext(XPathNodeType.Element);
                    Nodes.Current.SetValue(expert.getAddress());
                    Nodes.Current.MoveToNext(XPathNodeType.Element);
                    Nodes.Current.SetValue(expert.getRole());
                    Nodes.Current.MoveToNext(XPathNodeType.Element);
                    Nodes.Current.SetValue(expert.getSpecialty());
                    Nodes.Current.MoveToNext(XPathNodeType.Element);
                    Nodes.Current.SetValue(expert.getStatus().ToString());
                    //XmlDoc.Save(path+"Experts.xml");
                    Helper.service.SaveXmlFile("Experts.xml", XmlDoc);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception x)
            { return(false); }
            return(true);
        }
Esempio n. 4
0
        /// <summary>
        /// Search for an Expert data using its login.
        /// </summary>
        /// <param name="login">The login of the targeted Expert.</param>
        /// <returns></returns>
        public static Manager.ExpertManager.Expert SearchById(string login)
        {
            /* On déclare et on crée une instance des variables nécéssaires pour la recherche */
            Manager.ExpertManager.Expert expert = new Manager.ExpertManager.Expert();
            try
            {
                string rslt = Helper.service.LoadFile("Experts.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 variable NoMatches afin de vérifier par la suite
                 * si la recherche a été fructueuse*/
                expert.setnoMatch(false);
                /* On crée un navigateur */
                Navigator = XPathDocu.CreateNavigator();
                /* On crée ici l'expression XPath de recherche d'expert à  partir du login */
                string ExpXPath = "//Expert[@login='******' and status != 'Deactivated']";
                /* 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 Expert */
                    expert.setId(Convert.ToInt32(Nodes.Current.GetAttribute("id", "")));
                    expert.setLogin(login);
                    expert.setPassword(Nodes.Current.GetAttribute("password", ""));
                    Nodes.Current.MoveToFirstChild(); /* On se déplace sur le premier noeud
                                                       * enfant "Prenom" */
                    expert.setFirstName(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();       // On se déplace sur le noeud suivant "Nom"
                    expert.setLastName(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setEmail(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setPhoneNumber(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setAddress(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setRole(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setSpecialty(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setStatus(Helper.StringToStatus(Nodes.Current.Value));
                }
                /* Si aucun expert n'a été trouvé */
                else
                {
                    expert.setnoMatch(true);
                }
            }
            catch (Exception x)
            { expert.setnoMatch(true); }
            /* Renvoi de toutes les données dans une instance de la classe "Client" */
            return(expert);
        }
Esempio n. 5
0
        /// <summary>
        /// Creates the file "Experts.xml" and inserts the first Expert to it.
        /// </summary>
        /// <param name="expert">The object holding the data.</param>
        /// <returns></returns>
        public static bool firstAdd(Manager.ExpertManager.Expert expert)
        {
            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("Experts");

                // Write the expert and the expert elements
                xw.WriteStartElement("Expert");

                xw.WriteStartAttribute("id");
                xw.WriteString("0");
                xw.WriteEndAttribute();

                xw.WriteStartAttribute("login");
                xw.WriteString(expert.getLogin());
                xw.WriteEndAttribute();

                xw.WriteStartAttribute("password");
                xw.WriteString(expert.getPassword());
                xw.WriteEndAttribute();
                //----------------
                xw.WriteStartElement("firstName");
                xw.WriteString(expert.getFirstName());
                xw.WriteEndElement();
                //-----------------
                xw.WriteStartElement("lastName");
                xw.WriteString(expert.getLastName());
                xw.WriteEndElement();
                //-----------------
                xw.WriteStartElement("email");
                xw.WriteString(expert.getEmail());
                xw.WriteEndElement();
                //-----------------
                xw.WriteStartElement("phoneNumber");
                xw.WriteString(expert.getPhoneNumber());
                xw.WriteEndElement();
                //-----------------
                xw.WriteStartElement("address");
                xw.WriteString(expert.getAddress());
                xw.WriteEndElement();
                //-----------------
                xw.WriteStartElement("role");
                xw.WriteString(expert.getRole());
                xw.WriteEndElement();
                //-----------------
                xw.WriteStartElement("specialty");
                xw.WriteString(expert.getSpecialty());
                xw.WriteEndElement();
                //-----------------
                xw.WriteStartElement("status");
                xw.WriteString(expert.getStatus().ToString());
                xw.WriteEndElement();
                //-----------------

                xw.WriteEndElement();

                xw.WriteStartElement("MaxID");
                xw.WriteString("0");
                xw.WriteEndElement();

                // Close the document
                xw.WriteEndDocument();

                // Flush the write
                xw.Flush();

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

                //File.WriteAllText(path+"Experts.xml", xmlOutput);
                Helper.service.CreateXmlFile("Experts.xml", xmlOutput);
            }
            catch (Exception x) { return(false); }
            return(true);
        }
Esempio n. 6
0
        /// <summary>
        /// inserts an Expert to "Experts.xml".
        /// </summary>
        /// <param name="expert">The object holding the data</param>
        /// <returns></returns>
        public static bool insert(Manager.ExpertManager.Expert expert)
        {
            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("Experts.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
                 * expert. */
                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 = "//Expert[@id='" + ID.ToString() + "']";
                Nodes    = Navigator.Select(Navigator.Compile(ExpXPath));
                if (Nodes.Count != 0)
                {
                    Nodes.MoveNext();
                    /* On crée le noeud principal (Client). */
                    Nodes.Current.InsertElementAfter("", "Expert", "", "");
                    /* 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.CreateAttribute("", "login", "", expert.getLogin());
                    Nodes.Current.CreateAttribute("", "password", "", expert.getPassword());
                    Nodes.Current.AppendChildElement("", "firstName", "", expert.getFirstName());
                    Nodes.Current.AppendChildElement("", "lastName", "", expert.getLastName());
                    Nodes.Current.AppendChildElement("", "email", "", expert.getEmail());
                    Nodes.Current.AppendChildElement("", "phoneNumber", "", expert.getPhoneNumber());
                    Nodes.Current.AppendChildElement("", "address", "", expert.getAddress());
                    Nodes.Current.AppendChildElement("", "role", "", expert.getRole());
                    Nodes.Current.AppendChildElement("", "specialty", "", expert.getSpecialty());
                    Nodes.Current.AppendChildElement("", "status", "", expert.getStatus().ToString());

                    //XmlDoc.Save(path+"Experts.xml");
                    Helper.service.SaveXmlFile("Experts.xml", XmlDoc);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception x) { return(false); }
            return(true);
        }
Esempio n. 7
0
        /// <summary>
        /// Search an Expert using his firstname or lastname.
        /// </summary>
        /// <param name="name">The first/last name of the Expert.</param>
        /// <returns></returns>
        public static List<Manager.ExpertManager.Expert> SearchByName(string name)
        {
            /* On déclare et on crée une instance des variables nécéssaires pour la recherche */
            List<Manager.ExpertManager.Expert> experts = new List<Manager.ExpertManager.Expert>();
            try
            {
                string rslt = Helper.service.LoadFile("Experts.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 crée un navigateur */
                Navigator = XPathDocu.CreateNavigator();
                /* On crée ici l'expression XPath de recherche d'expert à  partir de l'id */
                //string ExpXPath = "//Expert[(firstName='" + name + "' or lastName='" + name + "') and status != 'Deactivated']";

                //To eleminate the case sensetive in XPath we use the methode translate().
                string ExpXPath = "//Expert[(translate(firstName,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')='" + name.ToUpper() +
                                               "' or translate(lastName,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')='" + name.ToUpper() +
                                               "') and status != 'Deactivated']";

                /* On lance la recherche */
                Nodes = Navigator.Select(Navigator.Compile(ExpXPath));
                /* On vérifie si la recherche a été fructueuse */
                if (Nodes.Count != 0)
                {
                    while (Nodes.MoveNext()) // NOTE: Necéssaire pour se placer sur le noeud recherché
                    {
                        Manager.ExpertManager.Expert expert = new Manager.ExpertManager.Expert();
                        /* Encodage des données dans la classe Expert */
                        expert.setId(Convert.ToInt32(Nodes.Current.GetAttribute("id", ""))); /* Pas besoin de chercher cette donnée vu que c'est notre
                                   * critère de recherche, on peut donc directement
                                   * l'encoder. */
                        expert.setLogin(Nodes.Current.GetAttribute("login", ""));
                        expert.setPassword(Nodes.Current.GetAttribute("password", ""));
                        Nodes.Current.MoveToFirstChild(); /* On se déplace sur le premier noeud
                                                   * enfant "Prenom" */
                        expert.setFirstName(Nodes.Current.Value);
                        Nodes.Current.MoveToNext(); // On se déplace sur le noeud suivant "Nom"
                        expert.setLastName(Nodes.Current.Value);
                        Nodes.Current.MoveToNext();
                        expert.setEmail(Nodes.Current.Value);
                        Nodes.Current.MoveToNext();
                        expert.setPhoneNumber(Nodes.Current.Value);
                        Nodes.Current.MoveToNext();
                        expert.setAddress(Nodes.Current.Value);
                        Nodes.Current.MoveToNext();
                        expert.setRole(Nodes.Current.Value);
                        Nodes.Current.MoveToNext();
                        expert.setSpecialty(Nodes.Current.Value);
                        Nodes.Current.MoveToNext();
                        expert.setStatus(Helper.StringToStatus(Nodes.Current.Value));
                        experts.Add(expert);
                    }
                }
            }
            catch (Exception x)
            {
                //If there was a problem we re-instanciate the list so no element is sent.
                //It returns an empty list instead of null, then we make our test on list.count.
                experts = new List<Manager.ExpertManager.Expert>();
            }
            /* Renvoi de toutes les données dans une instance de la classe "Client" */
            return experts;
        }
Esempio n. 8
0
        /// <summary>
        /// Search for an Expert data using its login.
        /// </summary>
        /// <param name="login">The login of the targeted Expert.</param>
        /// <returns></returns>
        public static Manager.ExpertManager.Expert SearchById(string login)
        {
            /* On déclare et on crée une instance des variables nécéssaires pour la recherche */
            Manager.ExpertManager.Expert expert = new Manager.ExpertManager.Expert();
            try
            {
                string rslt = Helper.service.LoadFile("Experts.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 variable NoMatches afin de vérifier par la suite
               * si la recherche a été fructueuse*/
                expert.setnoMatch(false);
                /* On crée un navigateur */
                Navigator = XPathDocu.CreateNavigator();
                /* On crée ici l'expression XPath de recherche d'expert à  partir du login */
                string ExpXPath = "//Expert[@login='******' and status != 'Deactivated']";
                /* 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 Expert */
                    expert.setId(Convert.ToInt32(Nodes.Current.GetAttribute("id", "")));
                    expert.setLogin(login);
                    expert.setPassword(Nodes.Current.GetAttribute("password", ""));
                    Nodes.Current.MoveToFirstChild(); /* On se déplace sur le premier noeud
                                                   * enfant "Prenom" */
                    expert.setFirstName(Nodes.Current.Value);
                    Nodes.Current.MoveToNext(); // On se déplace sur le noeud suivant "Nom"
                    expert.setLastName(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setEmail(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setPhoneNumber(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setAddress(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setRole(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setSpecialty(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setStatus(Helper.StringToStatus(Nodes.Current.Value));
                }
                /* Si aucun expert n'a été trouvé */
                else
                {
                    expert.setnoMatch(true);
                }
            }
            catch (Exception x)
            { expert.setnoMatch(true); }
            /* Renvoi de toutes les données dans une instance de la classe "Client" */
            return expert;
        }
Esempio n. 9
0
        /// <summary>
        /// Returns an expert using its login.
        /// </summary>
        /// <param name="login">Login de l'expert.</param>
        /// <param name="password"></param>
        /// <returns>The expert if exists.</returns>
        public static ExpertManager.Expert getExpert(string login)
        {
            Manager.ExpertManager.Expert expert = new Manager.ExpertManager.Expert();
            try
            {
                string rslt = Helper.service.LoadFile("Experts.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 crée un navigateur */
                Navigator = XPathDocu.CreateNavigator();
                /* On crée ici l'expression XPath de recherche d'admin*/
                string ExpXPath = "//Expert[@login='******']";

                /* On lance la recherche */
                Nodes = Navigator.Select(Navigator.Compile(ExpXPath));
                //System.Windows.Forms.MessageBox.Show(Nodes.Count.ToString(),"XMLAdmin");
                if (Nodes.Count != 0)
                {
                    Nodes.MoveNext(); // NOTE: Necéssaire pour se placer sur le noeud recherché
                    /* Encodage des données dans la classe Expert */
                    expert.setId(Convert.ToInt32(Nodes.Current.GetAttribute("id", ""))); /* Pas besoin de chercher cette donnée vu que c'est notre
                                   * critère de recherche, on peut donc directement
                                   * l'encoder. */
                    expert.setLogin(Nodes.Current.GetAttribute("login", ""));
                    expert.setPassword(Nodes.Current.GetAttribute("password", ""));

                    Nodes.Current.MoveToFirstChild(); /* On se déplace sur le premier noeud
                                                   * enfant "Prenom" */
                    expert.setFirstName(Nodes.Current.Value);
                    Nodes.Current.MoveToNext(); // On se déplace sur le noeud suivant "Nom"
                    expert.setLastName(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setEmail(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setPhoneNumber(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setAddress(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setRole(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setSpecialty(Nodes.Current.Value);
                    Nodes.Current.MoveToNext();
                    expert.setStatus(Helper.StringToStatus(Nodes.Current.Value));

                }
            }
            catch (Exception x)
            {
                System.Windows.Forms.MessageBox.Show(x.Message.ToString());
                return null;
            }
            return expert;
        }