private async void getSalles(object sender, RoutedEventArgs e) { string campusXML; //On récupère d'abord la liste des campus dispo, fraîche de l'API Boolean isOnline = await API.IsOnlineAsync(); if (isOnline) { salleGrid.Visibility = Visibility.Visible; ComboBoxes.Visibility = Visibility.Visible; NoInternetSplash.Visibility = Visibility.Collapsed; campusXML = await API.GetInfoAsync("/api/campus/sites"); ArelAPI.DataStorage.saveData("campuses", campusXML); System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); //creation d'une instance xml doc.LoadXml(campusXML); //chargement de la variable //Structure de l'xml renvoyé par l'API: Liste de sites ayant chacun un attribut "id" et un innerText correspondand au nom du campus foreach (System.Xml.XmlNode site in doc.FirstChild.ChildNodes) { campusList.Add(new Campus(site.Attributes[0].Value, site.InnerText)); } //On met le premier campus de la liste en valeur par défaut, sauf si l'utilisateur a une préférence SelectedComboBoxOption = null; if (ArelAPI.DataStorage.isset("favCampus")) { string idFav = ArelAPI.DataStorage.getData("favCampus"); foreach (Campus c in campusList) { if (c.getId() == idFav) { SelectedComboBoxOption = c; } } } if (SelectedComboBoxOption == null) { SelectedComboBoxOption = campusList[0]; } this.Bindings.Update(); UpdateLayout(); } else //Aucun intérêt à voir les salles dispos si on a pas internet pour avoir des datas à jour, on affiche le splash d'erreur { //API.renewAccessToken(); salleGrid.Visibility = Visibility.Collapsed; NoInternetSplash.Visibility = Visibility.Visible; ComboBoxes.Visibility = Visibility.Collapsed; UpdateLayout(); } }
private async void initPage() { Boolean isOnline = await API.IsOnlineAsync(); string absencesXml = ""; if (isOnline) { absencesXml = await API.GetInfoAsync("/api/me/absences"); ArelAPI.DataStorage.saveData("absences", absencesXml); LoadingIndicator.IsActive = true; buildAbsences(absencesXml); } else { AbsenceStack.Visibility = Visibility.Collapsed; NoInternetSplash.Visibility = Visibility.Visible; } }
/* * Les fonctions ci-dessous concernent le dessin de l'EDT sur des élements XAML Grid. */ private async void UpdatePlanningAsync() { Boolean isOnline = await API.IsOnlineAsync(); if (isOnline) { //now = now.AddDays(daysExtra); string xmlToday = await API.GetInfoAsync("/api/planning/slots?start=" + now.ToString("yyyy-MM-dd") + "&end=" + now.AddDays(1).ToString("yyyy-MM-dd")); string xmlTomorrow = await API.GetInfoAsync("/api/planning/slots?start=" + now.AddDays(1).ToString("yyyy-MM-dd") + "&end=" + now.AddDays(2).ToString("yyyy-MM-dd")); string xmlAfterTomorrow = await API.GetInfoAsync("/api/planning/slots?start=" + now.AddDays(2).ToString("yyyy-MM-dd") + "&end=" + now.AddDays(3).ToString("yyyy-MM-dd")); ArelAPI.DataStorage.saveData("planningToday", xmlToday); ArelAPI.DataStorage.saveData("planningTomorrow", xmlTomorrow); ArelAPI.DataStorage.saveData("planningAfterTomorrow", xmlAfterTomorrow); } DrawPlanning(grid); DrawPlanning(grid2); DrawPlanning(grid3); await WritePlanningAsync(ArelAPI.DataStorage.getData("planningToday"), grid); await WritePlanningAsync(ArelAPI.DataStorage.getData("planningTomorrow"), grid2); await WritePlanningAsync(ArelAPI.DataStorage.getData("planningAfterTomorrow"), grid3); FirstGrid.Visibility = Visibility.Visible; SecondGrid.Visibility = Visibility.Visible; ThirdGrid.Padding = new Thickness(0); //Trick: comme la visibilité est overridée par le visualstatemanager du XAML, on joue sur le padding à la place pour cacher la grille pendant le loading. ThirdDay.Text = "Planning du " + now.AddDays(2).ToString("dd/MM/yy"); LoadingIndicator.Visibility = Visibility.Collapsed; UpdateLayout(); }
private async void InitializeUserInfo() { Boolean isOnline = await API.IsOnlineAsync(); if (isOnline) { //màj des données de l'utilisateur string infoUser = await API.GetInfoAsync("/api/me"); ArelAPI.DataStorage.saveData("user", infoUser); //Récup du nom de l'utilisateur pour affichage string userName = API.GetUserFullName(ArelAPI.DataStorage.getData("user"), "Utilisateur d'AREL"); HamburgerButton.Content = userName; UpdateLayout(); } }
private async void initPage() { Boolean isOnline = await API.IsOnlineAsync(); if (isOnline) { string notesXml = await API.GetInfoAsync("/api/me/marks"); ArelAPI.DataStorage.saveData("notes", notesXml); buildNotes(notesXml); } else if (ArelAPI.DataStorage.isset("notes")) { string notesXml = ArelAPI.DataStorage.getData("notes"); buildNotes(notesXml); } else { NoInternetSplash.Visibility = Visibility.Visible; } }