diff --git a/App.config b/App.config
index 193aecc..ba49194 100644
--- a/App.config
+++ b/App.config
@@ -1,6 +1,78 @@
-
+
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/App.xaml b/App.xaml
index 57ce66a..4d8d199 100644
--- a/App.xaml
+++ b/App.xaml
@@ -2,9 +2,5 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Hermes"
- StartupUri="MainWindow.xaml"
- Exit="Application_Exit">
-
-
-
+ StartupUri="MainWindow.xaml">
diff --git a/App.xaml.cs b/App.xaml.cs
index 38ee452..721f915 100644
--- a/App.xaml.cs
+++ b/App.xaml.cs
@@ -13,8 +13,5 @@ namespace Hermes
///
public partial class App : Application
{
- private void Application_Exit(object sender, ExitEventArgs e) {
- DataAccess.CloseConnection();
- }
}
}
diff --git a/Citoyen.cs b/Citoyen.cs
deleted file mode 100644
index b579925..0000000
--- a/Citoyen.cs
+++ /dev/null
@@ -1,53 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Hermes
-{
- public class Citoyen
- {
- public int Id { get; set; }
- public string Nom { get; set; }
- public string Prenom { get; set; }
- public DateTime DateNaissance { get; set; }
- public string Adresse { get; set; }
- public string Profession { get; set; }
- public int TypeResidence { get; set; }
- public string Mail { get; set; }
- public string Tel { get; set; }
-
- public string TypeResidenceLabel {
- get
- {
- return TypeResidence == 0 ? "Principale" : "Secondaire";
- }
- }
-
- public int Age {
- get
- {
- return DateTime.Now.Year - DateNaissance.Year;
- }
- set
- {
- DateNaissance = new DateTime(DateTime.Now.Year - value, 1, 1);
- }
- }
-
- public Citoyen() {}
-
- public Citoyen(int id, string nom, string prenom, DateTime dateNaissance, string adresse, string profession, int typeResidence, string mail, string tel) {
- Id = id;
- Nom = nom;
- Prenom = prenom;
- DateNaissance = dateNaissance;
- Adresse = adresse;
- Profession = profession;
- TypeResidence = typeResidence;
- Mail = mail;
- Tel = tel;
- }
- }
-}
diff --git a/CitoyenDAO.cs b/CitoyenDAO.cs
deleted file mode 100644
index a1d92c3..0000000
--- a/CitoyenDAO.cs
+++ /dev/null
@@ -1,153 +0,0 @@
-using Microsoft.Data.Sqlite;
-using System;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace Hermes
-{
- public static class CitoyenDAO
- {
- private static Citoyen ReadCitoyen(SqliteDataReader reader) {
- Citoyen citoyen = new Citoyen(reader.GetInt32(0), reader.GetString(1), reader.GetString(2), DateTime.Now, reader.GetString(4), reader.GetString(5), reader.GetInt32(6), reader.GetString(7), reader.GetString(8));
- citoyen.DateNaissance = DateTime.ParseExact(reader.GetString(3), "yyyy", CultureInfo.InvariantCulture);
- return citoyen;
- }
-
- private static List ReadCitoyens(SqliteDataReader reader) {
- List citoyens = new List();
-
- while (reader.Read())
- {
- citoyens.Add(ReadCitoyen(reader));
- }
-
- return citoyens;
- }
-
-
- public static List FetchAll() {
- SqliteConnection db = DataAccess.GetConnection();
-
- SqliteCommand selectCmd = new SqliteCommand("SELECT id, nom, prenom, date_naissance, adresse, profession, type_residence, mail, tel FROM citoyen", db);
- SqliteDataReader reader = selectCmd.ExecuteReader();
-
- return ReadCitoyens(reader);
- }
-
- public static List FetchByAgeSup(int age) {
- SqliteConnection db = DataAccess.GetConnection();
-
- int year = DateTime.Now.Year - age;
-
- SqliteCommand selectCmd = new SqliteCommand("SELECT id, nom, prenom, date_naissance, adresse, profession, type_residence, mail, tel FROM citoyen WHERE date_naissance < $year", db);
- selectCmd.Parameters.AddWithValue("$year", year.ToString());
- SqliteDataReader reader = selectCmd.ExecuteReader();
-
- return ReadCitoyens(reader);
- }
-
- public static List FetchByAgeEquals(int age)
- {
- SqliteConnection db = DataAccess.GetConnection();
-
- int year = DateTime.Now.Year - age;
-
- SqliteCommand selectCmd = new SqliteCommand("SELECT id, nom, prenom, date_naissance, adresse, profession, type_residence, mail, tel FROM citoyen WHERE date_naissance = $year", db);
- selectCmd.Parameters.AddWithValue("$year", year.ToString());
- SqliteDataReader reader = selectCmd.ExecuteReader();
-
- return ReadCitoyens(reader);
- }
-
- public static List FetchByAgeInf(int age)
- {
- SqliteConnection db = DataAccess.GetConnection();
-
- int year = DateTime.Now.Year - age;
-
- SqliteCommand selectCmd = new SqliteCommand("SELECT id, nom, prenom, date_naissance, adresse, profession, type_residence, mail, tel FROM citoyen WHERE date_naissance > $year", db);
- selectCmd.Parameters.AddWithValue("$year", year.ToString());
- SqliteDataReader reader = selectCmd.ExecuteReader();
-
- return ReadCitoyens(reader);
- }
-
- public static List FetchByProfession(string pattern)
- {
- SqliteConnection db = DataAccess.GetConnection();
-
- SqliteCommand selectCmd = new SqliteCommand("SELECT id, nom, prenom, date_naissance, adresse, profession, type_residence, mail, tel FROM citoyen WHERE LOWER(date_naissance) LIKE $pattern", db);
- selectCmd.Parameters.AddWithValue("$pattern", "%" + pattern.ToLower() + "%");
- SqliteDataReader reader = selectCmd.ExecuteReader();
-
- return ReadCitoyens(reader);
- }
-
- public static List FetchByAdresse(string pattern)
- {
- SqliteConnection db = DataAccess.GetConnection();
-
- SqliteCommand selectCmd = new SqliteCommand("SELECT id, nom, prenom, date_naissance, adresse, profession, type_residence, mail, tel FROM citoyen WHERE LOWER(adresse) LIKE $pattern", db);
- selectCmd.Parameters.AddWithValue("$pattern", "%" + pattern.ToLower() + "%");
- SqliteDataReader reader = selectCmd.ExecuteReader();
-
- return ReadCitoyens(reader);
- }
-
- public static List FetchByTypeResidence(int type)
- {
- SqliteConnection db = DataAccess.GetConnection();
-
- SqliteCommand selectCmd = new SqliteCommand("SELECT id, nom, prenom, date_naissance, adresse, profession, type_residence, mail, tel FROM citoyen WHERE type_residence = $type", db);
- selectCmd.Parameters.AddWithValue("$type", type);
- SqliteDataReader reader = selectCmd.ExecuteReader();
-
- return ReadCitoyens(reader);
- }
-
- public static void Add(Citoyen citoyen) {
- SqliteConnection db = DataAccess.GetConnection();
-
- SqliteCommand insertCmd = new SqliteCommand("INSERT INTO citoyen (nom, prenom, date_naissance, adresse, profession, type_residence, mail, tel) VALUES ($nom, $prenom, $date_naissance, $adresse, $profession, $type_residence, $mail, $tel)", db);
- insertCmd.Parameters.AddWithValue("$nom", citoyen.Nom);
- insertCmd.Parameters.AddWithValue("$prenom", citoyen.Prenom);
- insertCmd.Parameters.AddWithValue("$date_naissance", citoyen.DateNaissance.ToString("yyyy"));
- insertCmd.Parameters.AddWithValue("$adresse", citoyen.Adresse);
- insertCmd.Parameters.AddWithValue("$profession", citoyen.Profession);
- insertCmd.Parameters.AddWithValue("$type_residence", citoyen.TypeResidence);
- insertCmd.Parameters.AddWithValue("$mail", citoyen.Mail);
- insertCmd.Parameters.AddWithValue("$tel", citoyen.Tel);
-
- insertCmd.ExecuteNonQuery();
- }
-
- public static void Update(Citoyen citoyen) {
- SqliteConnection db = DataAccess.GetConnection();
-
- SqliteCommand insertCmd = new SqliteCommand("UPDATE citoyen SET nom = $nom, prenom = $prenom, date_naissance = $date_naissance, adresse = $adresse, profession = $profession, type_residence = $type_residence, mail = $mail, tel = $tel WHERE id = $id", db);
- insertCmd.Parameters.AddWithValue("$id", citoyen.Id);
- insertCmd.Parameters.AddWithValue("$nom", citoyen.Nom);
- insertCmd.Parameters.AddWithValue("$prenom", citoyen.Prenom);
- insertCmd.Parameters.AddWithValue("$date_naissance", citoyen.DateNaissance.ToString("yyyyMMdd"));
- insertCmd.Parameters.AddWithValue("$adresse", citoyen.Adresse);
- insertCmd.Parameters.AddWithValue("$profession", citoyen.Profession);
- insertCmd.Parameters.AddWithValue("$type_residence", citoyen.TypeResidence);
- insertCmd.Parameters.AddWithValue("$mail", citoyen.Mail);
- insertCmd.Parameters.AddWithValue("$tel", citoyen.Tel);
-
- insertCmd.ExecuteNonQuery();
- }
-
- public static void Remove(Citoyen citoyen) {
- SqliteConnection db = DataAccess.GetConnection();
-
- SqliteCommand insertCmd = new SqliteCommand("DELETE FROM citoyen WHERE id = $id", db);
- insertCmd.Parameters.AddWithValue("$id", citoyen.Id);
-
- insertCmd.ExecuteNonQuery();
- }
- }
-}
diff --git a/CitoyenModal.xaml b/CitoyenModal.xaml
index 70933b6..77fd897 100644
--- a/CitoyenModal.xaml
+++ b/CitoyenModal.xaml
@@ -5,38 +5,144 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Hermes"
mc:Ignorable="d"
- Title="Informations" Height="279" Width="640"
+ Title="Informations" Height="390" Width="750"
+ Icon="hermes.png"
ResizeMode="NoResize"
+ xmlns:Validation="clr-namespace:Hermes.Validation"
+ xmlns:Converter="clr-namespace:Hermes.Converter"
+ Loaded="Window_Loaded"
+ WindowStartupLocation="CenterOwner"
Closing="Window_Closing">
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Principale
- Secondaire
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+ Principale
+ Secondaire
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CitoyenModal.xaml.cs b/CitoyenModal.xaml.cs
index bd40170..1d95ce0 100644
--- a/CitoyenModal.xaml.cs
+++ b/CitoyenModal.xaml.cs
@@ -1,32 +1,100 @@
-using System;
+using Hermes.Model;
+using System;
using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
-using System.Windows.Documents;
-using System.Windows.Input;
-using System.Windows.Media;
-using System.Windows.Media.Imaging;
-using System.Windows.Shapes;
-namespace Hermes
-{
+namespace Hermes {
///
/// Logique d'interaction pour CitoyenModal.xaml
///
- public partial class CitoyenModal : Window
- {
- public CitoyenModal()
- {
+ public partial class CitoyenModal : Window {
+ private ModelContext dbContext = null;
+ private Citoyen citoyen = null;
+ private List