/// <summary> /// Insère ou met à jour la sélection d'un corp céleste saisie par l'utilisateur /// </summary> /// <param name="a_selectedPlanet">Objet PlanetSelection du corps céleste concerné</param> /// <returns>Nombre de lignes mises à jour, une valeur de -1 indique une erreur</returns> public int UpdateSelectedPlanet(PlanetSelection a_selectedPlanet) { int modifiedLineNumber = 0; try { using (SQLiteConnection connection = new SQLiteConnection(ConnectionString)) { connection.CreateTable <PlanetSelectionModel>(); PlanetSelectionModel foundItem = connection.Table <PlanetSelectionModel>().Where(i => i.ID == a_selectedPlanet.ID).FirstOrDefault(); if (foundItem == null) { modifiedLineNumber += connection.Insert(new PlanetSelectionModel(a_selectedPlanet.ID, a_selectedPlanet.Name, a_selectedPlanet.IsSelected)); // Insertion (1ère utilisation)... } else { if (foundItem.IsSelected != a_selectedPlanet.IsSelected) { modifiedLineNumber += connection.Update(new PlanetSelectionModel(a_selectedPlanet.ID, a_selectedPlanet.Name, a_selectedPlanet.IsSelected)); // ...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); }
// Méthode permettant de récupérer la sélection de l'utilisateur pour le corps céleste concerné private bool GetUserSelectedValue(List <PlanetSelectionModel> a_selectedPlanets, string a_name) { bool isSelected = true; if (a_selectedPlanets != null) { PlanetSelectionModel planet = a_selectedPlanets.Where(p => p.Name == a_name).FirstOrDefault(); if (planet != null) { isSelected = planet.IsSelected; } } return(isSelected); }