1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| private static string chemin; //qui va être utiliser pour chercher le chemin (path)
// Modifier des données XML déja existantes
public static Model.compte RechercherCompteparNumero(string numcompte)
{
//on déclare et on crée une instance des variables nécésssaires pour la recherche
Model.compte client = new Model.compte();
XPathDocument xpathDoc = new XPathDocument("Comptes.xml");
XPathNavigator Navigator;
XPathNodeIterator Nodes;
//on affecte false à la variable PasSucess afin de vérifier par la suite si la recherche a été fructueuse
client.PasSucces = false;
//on crée un navigateur
Navigator = xpathDoc.CreateNavigator();
//On crée ici l'expression xpath de recherche de client à partir du numéro de compte
chemin = "//Compte[@numcompte='" + numcompte + "'and status!='Deleted']";
//on lance la recherche
Nodes = Navigator.Select(Navigator.Compile(chemin));
//on vérifie si la recherche a été fructueuse
if (Nodes.Count != 0)
{
Nodes.MoveNext(); //pour se positionner sur le noeud recherché
//Encodage des données dans la classe client
client.Numcompte = numcompte; ;//pas besoin de cherche cette donnée vu que c'est notre critère de recherche,on peut donc l'encoder
Nodes.Current.MoveToFirstChild();//on se déplace sur le premier noeud enfant
client.Typecompte = Nodes.Current.Value;
Nodes.Current.MoveToNext();
client.Datecreation = Convert.ToDateTime(Nodes.Current.Value);
Nodes.Current.MoveToNext();
client.Solde = double.Parse(Nodes.Current.Value);
Nodes.Current.MoveToNext();
if (client.GetType() == typeof(Entreprise))
{
client.Ent.Id = double.Parse(Nodes.Current.Value);
Nodes.Current.MoveToNext();
client.Ent.Ninea = Nodes.Current.Value;
Nodes.Current.MoveToNext();
client.Ent.Registre = Nodes.Current.Value;
Nodes.Current.MoveToNext();
client.Ent.Nom = Nodes.Current.Value;
Nodes.Current.MoveToNext();
client.Ent.Adresse = Nodes.Current.Value;
Nodes.Current.MoveToNext();
client.Ent.Tel = double.Parse(Nodes.Current.Value);
Nodes.Current.MoveToNext();
client.Ent.Fax = double.Parse(Nodes.Current.Value);
}
if (client.GetType() == typeof(PersonnePhysique))
{
client.Pp.Id = double.Parse(Nodes.Current.Value);
Nodes.Current.MoveToNext();
client.Pp.Nom = Nodes.Current.Value;
Nodes.Current.MoveToNext();
client.Pp.Prenom = Nodes.Current.Value;
Nodes.Current.MoveToNext();
client.Pp.Datenais = Convert.ToDateTime(Nodes.Current.Value);
Nodes.Current.MoveToNext();
client.Pp.Adresse = Nodes.Current.Value;
Nodes.Current.MoveToNext();
client.Pp.Tel = double.Parse(Nodes.Current.Value);
Nodes.Current.MoveToNext();
client.Pp.Fax = double.Parse(Nodes.Current.Value);
}
}
else //si aucun compte n'a été trouvé
{
client.PasSucces = true;
}
return client; //renvoi de toutes les données dans une instance de la classe "compte"
} |
Partager