Esempio n. 1
0
        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();
            }
        }
Esempio n. 2
0
        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;
            }
        }
Esempio n. 3
0
        /*
         * 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();
        }
Esempio n. 4
0
        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();
            }
        }
Esempio n. 5
0
        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;
            }
        }