Пример #1
0
 // Méthode permettant de modifier ou d'ajouter le lieu d'observation défini
 private void ButtonValidate_Clicked(object sender, EventArgs e)
 {
     // Cas d'un ajout
     if (!App.ObservationPointsViewModel.ListeLieuxObservation.Contains(App.ObservationPointsViewModel.LieuObservationEnCoursDeDefinition))
     {
         LieuObservationModel newObservationPoint = new LieuObservationModel(NomLieuObservation.Text, (int)LongitudeDegres.Value, (int)LongitudeMinute.Value, (float)LongitudeSeconde.Value, (int)LatitudeDegres.Value, (int)LatitudeMinute.Value, (float)LatitudeSeconde.Value, (float)Altitude.Value);
         App.ObservationPointsViewModel.ListeLieuxObservation.Add(newObservationPoint);
         App.DataProvider.UpdateObservationPoint(newObservationPoint);
         App.ObservationPointsViewModel.ListeLieuxObservation = App.ObservationPointsViewModel.ListeLieuxObservation;                           // On force la notification
         App.ObservationPointsViewModel.NombreMaxLieuObservationNonAtteint = App.ObservationPointsViewModel.NombreMaxLieuObservationNonAtteint; // On force la notification
     }
     // Cas d'une modification
     else
     {
         int  index           = App.ObservationPointsViewModel.ListeLieuxObservation.IndexOf(App.ObservationPointsViewModel.LieuObservationEnCoursDeDefinition);
         int  id              = App.ObservationPointsViewModel.LieuObservationEnCoursDeDefinition.ID;
         bool lieuSelectionne = false;
         if (App.ObservationPointsViewModel.ListeLieuxObservation[index] == App.ObservationPointsViewModel.LieuObservationSelectionne)
         {
             lieuSelectionne = true;
         }
         LieuObservationModel modifiedObservationPoint = new LieuObservationModel(NomLieuObservation.Text, (int)LongitudeDegres.Value, (int)LongitudeMinute.Value, (float)LongitudeSeconde.Value, (int)LatitudeDegres.Value, (int)LatitudeMinute.Value, (float)LatitudeSeconde.Value, (float)Altitude.Value);
         modifiedObservationPoint.ID = id;
         App.ObservationPointsViewModel.ListeLieuxObservation.RemoveAt(index);
         App.ObservationPointsViewModel.ListeLieuxObservation.Insert(index, modifiedObservationPoint);
         if (lieuSelectionne)
         {
             App.ObservationPointsViewModel.LieuObservationSelectionne = App.ObservationPointsViewModel.ListeLieuxObservation[index];
         }
         App.DataProvider.UpdateObservationPoint(modifiedObservationPoint);
         App.ObservationPointsViewModel.ListeLieuxObservation = App.ObservationPointsViewModel.ListeLieuxObservation; // On force la notification
     }
     App.ObservationPointsViewModel.LieuObservationEnCoursDeDefinition = null;
     PickerObservationPoints.SelectedItem = null;
 }
Пример #2
0
        /// <summary>
        /// Insère ou met à jour un lieu d'observation défini par l'utilisateur
        /// </summary>
        /// <param name="a_observationPoint">Objet LieuObservationModel représentant le lieu d'observation</param>
        /// <returns>Nombre de lignes mises à jour, une valeur de -1 indique une erreur</returns>
        public int UpdateObservationPoint(LieuObservationModel a_observationPoint)
        {
            int modifiedLineNumber = 0;

            try
            {
                using (SQLiteConnection connection = new SQLiteConnection(ConnectionString))
                {
                    connection.CreateTable <LieuObservationModel>();
                    LieuObservationModel foundItem = connection.Table <LieuObservationModel>().Where(i => i.ID == a_observationPoint.ID).FirstOrDefault();
                    if (foundItem == null)
                    {
                        modifiedLineNumber += connection.Insert(a_observationPoint); // Insertion (1ère utilisation)...
                    }
                    else
                    {
                        modifiedLineNumber += connection.Update(a_observationPoint); // ...ou mise à jour (utilisations ultérieures)
                    }
                }
            }
            catch (Exception)
            {
                // On renvoit un nombre < 0 pour indiquer qu'il y a une erreur, c'est le code amont qui gérera cette erreur
                modifiedLineNumber = -1;
            }
            return(modifiedLineNumber);
        }
Пример #3
0
        /// <summary>
        /// Insère ou met à jour les lieux d'observation définis par l'utilisateur
        /// </summary>
        /// <param name="a_observationsPoints">Collection d'objets LieuObservationModel représentant les lieux d'observation</param>
        /// <returns>Nombre de lignes insérées ou mises à jour, une valeur de -1 indique une erreur</returns>
        public int UpdateObservationPoints(List <LieuObservationModel> a_observationsPoints)
        {
            int modifiedLineNumber = 0;

            try
            {
                using (SQLiteConnection connection = new SQLiteConnection(ConnectionString))
                {
                    connection.CreateTable <LieuObservationModel>();
                    foreach (LieuObservationModel item in a_observationsPoints.Where(lo => lo.LieuObservation.NomLieuObservation != "Géolocalisation").ToList())
                    {
                        LieuObservationModel foundItem = connection.Table <LieuObservationModel>().Where(i => i.ID == item.ID).FirstOrDefault();
                        if (foundItem == null)
                        {
                            modifiedLineNumber += connection.Insert(item); // Insertion (1ère utilisation)...
                        }
                        else
                        {
                            if (foundItem.NomLieuObservation != item.NomLieuObservation || foundItem.Longitude != item.Longitude || foundItem.Latitude != item.Latitude || foundItem.Altitude != item.Altitude || foundItem.LieuSelectionne != item.LieuSelectionne)
                            {
                                modifiedLineNumber += connection.Update(item); // ...ou mise à jour (utilisations ultérieures)
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
                // On renvoit un nombre < 0 pour indiquer qu'il y a une erreur, c'est le code amont qui gérera cette erreur
                modifiedLineNumber = -1;
            }
            return(modifiedLineNumber);
        }
Пример #4
0
        // Méthode permettant de gérer la sélection du contrôle Picker de sélection du lieu d'observation
        private void ObservationPointsPicker_SelectedIndexChanged(object sender, EventArgs e)
        {
            Picker control = (Picker)sender;
            LieuObservationModel selectedItem = (LieuObservationModel)control.SelectedItem;

            if (selectedItem != null)
            {
                App.ObservationPointsViewModel.LieuObservationSelectionne = selectedItem;
                App.DataProvider.UpdateObservationPoints(App.ObservationPointsViewModel.ListeLieuxObservation.ToList());
            }
        }
Пример #5
0
        // Méthode permettant de récupérer le lieu d'observation existant et de l'afficher
        private void Picker_SelectedIndexChanged(object sender, EventArgs e)
        {
            LieuObservationModel selectedItem = (LieuObservationModel)((Picker)sender).SelectedItem;

            App.ObservationPointsViewModel.LieuObservationEnCoursDeDefinition = selectedItem;
        }