private async void writeSalle(object sender, SelectionChangedEventArgs e) { //On vide la liste des salles qu'on a salleList.Clear(); //On récupère le campus sélectionné et on le sauvegarde en tant que pref. de l'utilisateur Campus c = (Campus)campusSelection.SelectedItem; ArelAPI.DataStorage.saveData("favCampus", c.getId()); //On récupère les salles du campus sélectionné -- On regarde d'abord si il y a un cache pour la session en cours, sinon on récupère de l'API. String xmlSalles = ArelAPI.DataStorage.getData("salles" + c.getId()); if (xmlSalles == null || xmlSalles == "" || xmlSalles == "\r\n") { Boolean isOnline = await API.IsOnlineAsync(); if (isOnline) { xmlSalles = await API.GetInfoAsync("/api/campus/rooms?siteId=" + c.getId()); //On sauvegarde les salles pour que la recherche ne retape pas dans l'API à chaque fois ArelAPI.DataStorage.saveData("salles" + c.getId(), xmlSalles); } else { salleGrid.Visibility = Visibility.Collapsed; NoInternetSplash.Visibility = Visibility.Visible; ComboBoxes.Visibility = Visibility.Collapsed; UpdateLayout(); } } System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); //creation d'une instance xml doc.LoadXml(xmlSalles); //chargement de la variable //On récupère les salles et on peuple notre tableau de salles foreach (System.Xml.XmlNode room in doc.GetElementsByTagName("room")) { /*Stucture xml d'une salle donnée par l'api : * <label> * <bookable> * <capacity> * <tables> * <assignedTo> * <description> * <connected> * <campusId> */ string nom = room.ChildNodes[0].InnerText; string desc; if (room.ChildNodes[5].InnerText == "Pas de description") //Pourquoi lorsque y'a pas de description ils le précisent, { desc = room.ChildNodes[4].InnerText; //alors que quand la salle est assignée à personne le tag est juste vide ? } else { desc = room.ChildNodes[5].InnerText; //Un peu de cohérence bordel } bool bookable = (room.ChildNodes[1].InnerText == "true"); string tbl = room.ChildNodes[3].InnerText; string cap = room.ChildNodes[2].InnerText; if (nom != "???") { salleList.Add(new Salle(nom, desc, bookable, tbl, cap)); } } }