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(); } }
public async void Run(IBackgroundTaskInstance taskInstance) { Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings; BackgroundTaskDeferral _deferral = taskInstance.GetDeferral(); ArelAPI.Connector API = new ArelAPI.Connector(); Boolean canUpdate = true; Boolean isOnline = await API.IsOnlineAsync(); if (!isOnline) //Si le token n'est plus valide, on le rafraîchit avec le refreshToken { bool isReLogged = await API.RenewAccessTokenAsync(); if (!isReLogged) //Si on peut rafraîchir le jeton, on continue, sinon on notifie l'utilisateur qu'il doit ré-entrer ses logins { Show(new ToastContent() { Scenario = ToastScenario.Default, Visual = new ToastVisual() { TitleText = new ToastText() { Text = "AREL - Synchronisation Planning" }, BodyTextLine1 = new ToastText() { Text = "Vos identifiants ont expirés." }, BodyTextLine2 = new ToastText() { Text = "Reconnectez-vous pour maintenir la synchronisation." } }, }); canUpdate = false; } } //On appelle la fonction de màj du calendrier windows qui est dans Planning.xaml.cs if (canUpdate) { API.UpdateWindowsCalendar(DateTime.Now.ToString("yyyy-MM-dd"), DateTime.Now.AddDays(14).ToString("yyyy-MM-dd"), API.GetUserFullName(ArelAPI.DataStorage.getData("user"), "Mon Planning AREL")); } //On re-enregistre la tâche si le paramètre est présent if (bool.Parse(ArelAPI.DataStorage.getData("backgroundTask"))) { var builder = new BackgroundTaskBuilder(); TimeTrigger hourlyTrigger = new TimeTrigger(120, false); //On rafraîchit le planning toutes les 2 heures. builder.Name = "ARELSyncPlanningTask"; builder.TaskEntryPoint = "SyncTask.ARELPlanningBackgroundTask"; builder.SetTrigger(hourlyTrigger); builder.AddCondition(new SystemCondition(SystemConditionType.InternetAvailable)); builder.Register(); } _deferral.Complete(); }
//Récupère les données du noeud XML du cours et appelle ajoutCours pour le dessiner à l'écran private async Task <bool> ComputeCoursAsync(System.Xml.XmlNode node, Grid planningGrid) { string prof = ""; string salle = ""; string matiere = ""; string matiere2 = ""; string debut = ""; string fin = ""; string couleur = ""; foreach (System.Xml.XmlNode node02 in node) { //ecrire(node02.Name); if (node02.Name == "teacherLogin") { prof = node02.InnerText; } if (node02.Name == "label") { matiere = node02.InnerText; } if (node02.Name == "departmentColor") { couleur = node02.InnerText; } if (node02.Name == "beginDate") { debut = node02.InnerText; } if (node02.Name == "endDate") { fin = node02.InnerText; } if (node02.Name == "roomLabel") { salle = node02.InnerText; } } string idRel = node.ChildNodes[2].InnerText; string idProf = node.ChildNodes[3].InnerText; string profName = node.ChildNodes[4].InnerText; //Récup nom complet prof et rel...si on a accès à l'API parce que je les sauvegarde pas dans les données de l'appli Boolean isOnline = await API.IsOnlineAsync(); if (isOnline) { string xmlr = await API.GetInfoAsync("/api/rels/" + idRel); matiere2 = API.getRelName(xmlr, matiere); matiere = "(" + matiere + ")"; string xmlj = await API.GetInfoAsync("/api/users/" + idProf); prof = API.GetUserFullName(xmlj, profName); } if (prof != "" && matiere != "" && debut != "" && fin != "" && couleur != "" && salle != "") { AddCours(matiere2, matiere, prof, salle, debut, fin, couleur, planningGrid); } return(true); }
private async void ManualSync(object sender, RoutedEventArgs e) { //On montre un spinner pour l'amusement SpinnerSync.IsActive = true; //update manuelle: On chope les cours des 2 dernières + des 2 prochaines semaines API.UpdateWindowsCalendar(DateTime.Now.AddDays(-14).ToString("yyyy-MM-dd"), DateTime.Now.AddDays(14).ToString("yyyy-MM-dd"), API.GetUserFullName(ArelAPI.DataStorage.getData("user"), "Mon Planning AREL")); //On montre le calendrier await Windows.ApplicationModel.Appointments.AppointmentManager.ShowTimeFrameAsync(DateTime.Now, new TimeSpan(125, 0, 0)); SpinnerSync.IsActive = false; }