예제 #1
0
        private async Task BtnLogin_Clicked(object source, EventArgs e)
        {
            sd.ShowSpinner();

            // On sort du hors connexion
            Global.SetSettings(TypeSettings.IsHorsConnexion, false);
            //Global.SetSettings(TypeSettings.LastHorsConnexionDate, null);

            // Tentative de login
            bool isOk = await Login(TxtLogin.Text, TxtPassword.Text, TxtSlot.Text);

            // Si Ok : on passe à la liste
            if (isOk)
            {
                // Puisqu'on a du réseau, on en profite pour envoyer les invitations créées en local
                if (!string.IsNullOrEmpty(this.token))
                {
                    var validateService = new ValidatePresenceService(this.token, true);
                    if (await validateService.SendAll())
                    {
                        // Pour l'instant, on ne fait rien du retour...
                        await this.DisplayAlert("Information", "Les modifications faites en Hors Connexion viennent d'être exportées.", "OK");
                    }
                }

                // La navigation
                var listEventsPage = new ListEventsPage();

                await Navigation.PushAsync(listEventsPage);

                //Application.Current.MainPage = new NavigationPage(listEventsPage);
            }
        }
        private async Task DownloadLists()
        {
            if (this.idEvent == -1)
                return;

            UserDialogs.ShowSpinner();
            var downloadData = new ImportBase();
            await downloadData.DownloadData(this.Token, this.idEvent);
            UserDialogs.HideSpinner();

            // Le message
            await this.UserDialogs.ShowAlert("OK", "Les listes ont été correctement téléchargées.");

        }
        // Le titre passé en Binding

        public CustomContentPage()
        {
            // Pour modifier les données bindées du ControlTemplate
            pageTitleViewModel = new PageTitleViewModel();
            pageTitleViewModel.ParentPage = this;
            BindingContext = pageTitleViewModel;

            InitializeComponent();

            // Création de la listView
            CreateListView();

            // On efface la clé de recherche au premier chargement
            //SearchString = "";

            // Le spinner
            UserDialogs = new UserDialogs();
            UserDialogs.ShowSpinner();


            // pour enlever la barre de navigation par défaut
            NavigationPage.SetHasNavigationBar(this, false);

            // Pour ne pas masquer la barre d'état iOS
            if (Device.RuntimePlatform == Device.iOS)
            {
                Padding = new Thickness(0, 20, 0, 0);
            }

            // Est ce que l'image No Network est visible ?
            var isVisible = Global.GetSettings(TypeSettings.IsHorsConnexion);
            if (isVisible != null)
            {
                pageTitleViewModel.IsHorsConnexionVisible = bool.Parse(isVisible);
            }
            else
            {
                pageTitleViewModel.IsHorsConnexionVisible = false;
            }


  

        }
예제 #4
0
        private async Task BtnValidateClicked(object sender, EventArgs e)
        {
            // On prépare la validation de la présence
            var validateService = new ValidatePresenceService(this.Token);

            // On ajoute la ligne à valider
            var validate = validateService.AddNewPresence(this.idParticipant, this.idPrestation);

            // On déclenche l'envoi au WS (si besoin)
            if (validate != null)
            {
                // On envoie uniquement en cas de connexion
                if (!Global.GetSettingsBool(TypeSettings.IsHorsConnexion))
                {
                    //await validateService.SendAll();
                    // Attention : si participant déjà enregistré : erreur 403
                    try
                    {
                        await validateService.Send(validate);
                    }
                    catch (WebException ex)
                    {
                        HttpWebResponse objresponse = ex.Response as HttpWebResponse;
                        if (objresponse.StatusCode == HttpStatusCode.Forbidden)
                        {
                            // 403 : le participant a déjà été enregistré aujourd'hui
                            // Message d'erreur
                            await this.DisplayAlert("Attention", "Le participant a déjà été enregistré aujourd'hui.", "OK");

                            return;
                        }
                        else if (objresponse.StatusCode == HttpStatusCode.Unauthorized)
                        {
                            // 401 : Votre session a expiré
                            await this.DisplayAlert("Attention", "Votre session a expiré, veuillez vous identifier à nouveau.", "Cancel");

                            return;
                        }
                        else if (objresponse.StatusCode == HttpStatusCode.NotFound)
                        {
                            // 404 : PArticipant pas sur la liste d'invités
                            await this.DisplayAlert("Attention", "Veuillez vérifier que le participant fait partie de la liste d'invités.", "Cancel");

                            return;
                        }
                        else
                        {
                            await this.DisplayAlert("Attention", "Erreur lors de la validation d'un invité en ligne.", "Cancel");

                            return;
                        }
                    }
                    catch (Exception ex2)
                    {
                        await this.DisplayAlert("Attention", "Erreur lors de la validation d'un invité en ligne : " + ex2.Message, "Cancel");

                        return;
                    }
                }
                else
                {
                    // Hors connexion : on vérifie juste si l'utilisateur n'est pas déjà présent dans la table SQL

                    // Attention : si pas de prestation : on a le droit d'enregistrer plusieurs fois la présence
                    // Si il y a une prestation, en revanche, on doit vérifier qu'il n'est pas déjà inscrit

                    if (validate.IdPrestation.HasValue &&
                        validateService.IsInscriptionAlreadyRecorded(validate))
                    {
                        // Déjà trouvé : message d'erreur
                        await this.DisplayAlert("Attention", "Le participant a déjà été enregistré.", "Cancel");


                        return;
                    }
                }

                // On marque dans la base la présence dans la table qui va bien (pour voir graphiquement que la présence a été enregistrée)
                validateService.ValidateSQLOnly(validate);
            } // else Afficher un lessage d'erreur ?

            // On réaffiche la liste des présences

            /*detailPeopleData.RefreshCells(this.idParticipant);
             * listView.ItemsSource = detailPeopleData.InscriptionsCells;
             * listView.ItemTemplate = new DataTemplate(typeof(InscriptionCell));*/

            // OK
            await this.DisplayAlert("OK", "Le participant a été correctement enregistré.", "OK");

            UserDialogs.ShowSpinner();
            // Affichage des données
            await displayData();

            UserDialogs.HideSpinner();
        }