diff --git a/App.config b/App.config
new file mode 100644
index 0000000..193aecc
--- /dev/null
+++ b/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/App.xaml b/App.xaml
new file mode 100644
index 0000000..57ce66a
--- /dev/null
+++ b/App.xaml
@@ -0,0 +1,10 @@
+
+
+
+
+
diff --git a/App.xaml.cs b/App.xaml.cs
new file mode 100644
index 0000000..38ee452
--- /dev/null
+++ b/App.xaml.cs
@@ -0,0 +1,20 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace Hermes
+{
+ ///
+ /// Logique d'interaction pour App.xaml
+ ///
+ public partial class App : Application
+ {
+ private void Application_Exit(object sender, ExitEventArgs e) {
+ DataAccess.CloseConnection();
+ }
+ }
+}
diff --git a/Citoyen.cs b/Citoyen.cs
new file mode 100644
index 0000000..b579925
--- /dev/null
+++ b/Citoyen.cs
@@ -0,0 +1,53 @@
+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
new file mode 100644
index 0000000..a1d92c3
--- /dev/null
+++ b/CitoyenDAO.cs
@@ -0,0 +1,153 @@
+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
new file mode 100644
index 0000000..70933b6
--- /dev/null
+++ b/CitoyenModal.xaml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Principale
+ Secondaire
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CitoyenModal.xaml.cs b/CitoyenModal.xaml.cs
new file mode 100644
index 0000000..bd40170
--- /dev/null
+++ b/CitoyenModal.xaml.cs
@@ -0,0 +1,32 @@
+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
+{
+ ///
+ /// Logique d'interaction pour CitoyenModal.xaml
+ ///
+ public partial class CitoyenModal : Window
+ {
+ public CitoyenModal()
+ {
+ InitializeComponent();
+ }
+
+ private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) {
+ e.Cancel = true;
+ this.Hide();
+ }
+ }
+}
diff --git a/DataAccess.cs b/DataAccess.cs
new file mode 100644
index 0000000..5062c81
--- /dev/null
+++ b/DataAccess.cs
@@ -0,0 +1,44 @@
+using Microsoft.Data.Sqlite;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Security.Policy;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Hermes
+{
+ public static class DataAccess
+ {
+ private static SqliteConnection db= null;
+
+ public static SqliteConnection GetConnection() {
+ if (db != null) {
+ return db;
+ }
+
+ var dbpath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "hermes.db");
+ if (!System.IO.File.Exists(dbpath)) {
+ FileStream fs = File.Create(dbpath);
+ fs.Close();
+ }
+ db = new SqliteConnection($"Filename={dbpath}");
+ db.Open();
+
+ var createTableCmd = "CREATE TABLE IF NOT EXISTS citoyen (id INTEGER PRIMARY KEY, nom TEXT NOT NULL, prenom TEXT NOT NULL, date_naissance TEXT NOT NULL, adresse TEXT NOT NULL, profession TEXT, type_residence INTEGER NOT NULL, mail TEXT, tel TEXT)";
+
+ SqliteCommand createTable = new SqliteCommand(createTableCmd, db);
+ createTable.ExecuteReader();
+
+ return db;
+ }
+
+ public static void CloseConnection() {
+ if (db != null) {
+ db.Close();
+ db = null;
+ }
+ }
+ }
+}
diff --git a/Hermes.csproj b/Hermes.csproj
new file mode 100644
index 0000000..25cae39
--- /dev/null
+++ b/Hermes.csproj
@@ -0,0 +1,153 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {2F7FDF03-5F05-438E-9C90-F926B40DCC6D}
+ WinExe
+ Hermes
+ Hermes
+ v4.8
+ 512
+ {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ 4
+ true
+ true
+
+
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+ packages\Microsoft.Data.Sqlite.Core.3.1.7\lib\netstandard2.0\Microsoft.Data.Sqlite.dll
+
+
+ packages\SQLitePCLRaw.bundle_e_sqlite3.2.0.2\lib\net461\SQLitePCLRaw.batteries_v2.dll
+
+
+ packages\SQLitePCLRaw.core.2.0.2\lib\netstandard2.0\SQLitePCLRaw.core.dll
+
+
+ packages\SQLitePCLRaw.bundle_e_sqlite3.2.0.2\lib\net461\SQLitePCLRaw.nativelibrary.dll
+
+
+ packages\SQLitePCLRaw.provider.dynamic_cdecl.2.0.2\lib\netstandard2.0\SQLitePCLRaw.provider.dynamic_cdecl.dll
+
+
+
+ packages\System.Buffers.4.4.0\lib\netstandard2.0\System.Buffers.dll
+
+
+
+ packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll
+
+
+
+ packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll
+
+
+ packages\System.Runtime.CompilerServices.Unsafe.4.5.2\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll
+
+
+
+
+
+
+
+
+ 4.0
+
+
+
+
+
+
+
+ MSBuild:Compile
+ Designer
+
+
+ SearchModal.xaml
+
+
+ Designer
+ MSBuild:Compile
+
+
+ MSBuild:Compile
+ Designer
+
+
+ App.xaml
+ Code
+
+
+
+
+ CitoyenModal.xaml
+
+
+
+ MainWindow.xaml
+ Code
+
+
+ Designer
+ MSBuild:Compile
+
+
+
+
+ Code
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+ ResXFileCodeGenerator
+ Resources.Designer.cs
+
+
+
+ SettingsSingleFileGenerator
+ Settings.Designer.cs
+
+
+
+
+
+
+
+
+
+ Ce projet fait référence à des packages NuGet qui sont manquants sur cet ordinateur. Utilisez l'option de restauration des packages NuGet pour les télécharger. Pour plus d'informations, consultez http://go.microsoft.com/fwlink/?LinkID=322105. Le fichier manquant est : {0}.
+
+
+
+
\ No newline at end of file
diff --git a/Hermes.sln b/Hermes.sln
new file mode 100644
index 0000000..c698a80
--- /dev/null
+++ b/Hermes.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30330.147
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hermes", "Hermes.csproj", "{2F7FDF03-5F05-438E-9C90-F926B40DCC6D}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {2F7FDF03-5F05-438E-9C90-F926B40DCC6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2F7FDF03-5F05-438E-9C90-F926B40DCC6D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2F7FDF03-5F05-438E-9C90-F926B40DCC6D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2F7FDF03-5F05-438E-9C90-F926B40DCC6D}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {883D0F2A-F831-488D-8896-1BE1A816E072}
+ EndGlobalSection
+EndGlobal
diff --git a/MainWindow.xaml b/MainWindow.xaml
new file mode 100644
index 0000000..d50a512
--- /dev/null
+++ b/MainWindow.xaml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs
new file mode 100644
index 0000000..4f946cd
--- /dev/null
+++ b/MainWindow.xaml.cs
@@ -0,0 +1,50 @@
+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.Navigation;
+using System.Windows.Shapes;
+
+namespace Hermes
+{
+ ///
+ /// Logique d'interaction pour MainWindow.xaml
+ ///
+ public partial class MainWindow : Window
+ {
+ private CitoyenModal citoyenModal = new CitoyenModal();
+ private SearchModal searchModal = new SearchModal();
+
+ public MainWindow()
+ {
+ InitializeComponent();
+ List citoyens = new List();
+ citoyens.Add(new Citoyen(0, "Dupont", "Jean", new DateTime(1994, 3, 24), "14 rue de la République, Lyon", "Jardinier", 0, "jean.dupont@test.fr", "04 00 00 00 00"));
+ dgCitoyens.ItemsSource = citoyens;
+ }
+
+ private void Ajouter_Click(object sender, RoutedEventArgs e)
+ {
+ citoyenModal.ShowDialog();
+ }
+
+ private void Rechercher_Click(object sender, RoutedEventArgs e)
+ {
+ searchModal.ShowDialog();
+ }
+
+ protected override void OnClosed(EventArgs e)
+ {
+ base.OnClosed(e);
+ Application.Current.Shutdown();
+ }
+ }
+}
diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..8e7d8f0
--- /dev/null
+++ b/Properties/AssemblyInfo.cs
@@ -0,0 +1,55 @@
+using System.Reflection;
+using System.Resources;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Windows;
+
+// Les informations générales relatives à un assembly dépendent de
+// l'ensemble d'attributs suivant. Pour modifier les informations
+// associées à un assembly.
+[assembly: AssemblyTitle("Hermes")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Hermes")]
+[assembly: AssemblyCopyright("Copyright © 2020")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// L'affectation de la valeur false à ComVisible rend les types invisibles dans cet assembly
+// aux composants COM. Si vous devez accéder à un type dans cet assembly à partir de
+// COM, affectez la valeur True à l'attribut ComVisible sur ce type.
+[assembly: ComVisible(false)]
+
+//Pour commencer à générer des applications localisables, définissez
+//CultureUtiliséePourCoder dans votre fichier .csproj
+//dans . Par exemple, si vous utilisez le français
+//dans vos fichiers sources, définissez à fr-FR. Puis, supprimez les marques de commentaire de
+//l'attribut NeutralResourceLanguage ci-dessous. Mettez à jour "fr-FR" dans
+//la ligne ci-après pour qu'elle corresponde au paramètre UICulture du fichier projet.
+
+//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
+
+
+[assembly: ThemeInfo(
+ ResourceDictionaryLocation.None, //où se trouvent les dictionnaires de ressources spécifiques à un thème
+ //(utilisé si une ressource est introuvable dans la page,
+ // ou dictionnaires de ressources de l'application)
+ ResourceDictionaryLocation.SourceAssembly //où se trouve le dictionnaire de ressources générique
+ //(utilisé si une ressource est introuvable dans la page,
+ // dans l'application ou dans l'un des dictionnaires de ressources spécifiques à un thème)
+)]
+
+
+// Les informations de version pour un assembly se composent des quatre valeurs suivantes :
+//
+// Version principale
+// Version secondaire
+// Numéro de build
+// Révision
+//
+// Vous pouvez spécifier toutes les valeurs ou indiquer les numéros de build et de révision par défaut
+// en utilisant '*', comme indiqué ci-dessous :
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs
new file mode 100644
index 0000000..b197c56
--- /dev/null
+++ b/Properties/Resources.Designer.cs
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------------
+//
+// Ce code a été généré par un outil.
+// Version du runtime :4.0.30319.42000
+//
+// Les modifications apportées à ce fichier peuvent provoquer un comportement incorrect et seront perdues si
+// le code est régénéré.
+//
+//------------------------------------------------------------------------------
+
+namespace Hermes.Properties
+{
+
+
+ ///
+ /// Une classe de ressource fortement typée destinée, entre autres, à la consultation des chaînes localisées.
+ ///
+ // Cette classe a été générée automatiquement par la classe StronglyTypedResourceBuilder
+ // à l'aide d'un outil, tel que ResGen ou Visual Studio.
+ // Pour ajouter ou supprimer un membre, modifiez votre fichier .ResX, puis réexécutez ResGen
+ // avec l'option /str ou régénérez votre projet VS.
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ internal class Resources
+ {
+
+ private static global::System.Resources.ResourceManager resourceMan;
+
+ private static global::System.Globalization.CultureInfo resourceCulture;
+
+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
+ internal Resources()
+ {
+ }
+
+ ///
+ /// Retourne l'instance ResourceManager mise en cache utilisée par cette classe.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Resources.ResourceManager ResourceManager
+ {
+ get
+ {
+ if ((resourceMan == null))
+ {
+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Hermes.Properties.Resources", typeof(Resources).Assembly);
+ resourceMan = temp;
+ }
+ return resourceMan;
+ }
+ }
+
+ ///
+ /// Remplace la propriété CurrentUICulture du thread actuel pour toutes
+ /// les recherches de ressources à l'aide de cette classe de ressource fortement typée.
+ ///
+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
+ internal static global::System.Globalization.CultureInfo Culture
+ {
+ get
+ {
+ return resourceCulture;
+ }
+ set
+ {
+ resourceCulture = value;
+ }
+ }
+ }
+}
diff --git a/Properties/Resources.resx b/Properties/Resources.resx
new file mode 100644
index 0000000..af7dbeb
--- /dev/null
+++ b/Properties/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs
new file mode 100644
index 0000000..2a6b510
--- /dev/null
+++ b/Properties/Settings.Designer.cs
@@ -0,0 +1,30 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Runtime Version:4.0.30319.42000
+//
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+namespace Hermes.Properties
+{
+
+
+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
+ {
+
+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+
+ public static Settings Default
+ {
+ get
+ {
+ return defaultInstance;
+ }
+ }
+ }
+}
diff --git a/Properties/Settings.settings b/Properties/Settings.settings
new file mode 100644
index 0000000..033d7a5
--- /dev/null
+++ b/Properties/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SearchModal.xaml b/SearchModal.xaml
new file mode 100644
index 0000000..485f66a
--- /dev/null
+++ b/SearchModal.xaml
@@ -0,0 +1,36 @@
+
+
+
+
+
+ Supérieur à
+ Inférieur à
+ Egal à
+
+
+
+
+
+
+
+
+
+
+
+ Principale
+ Secondaire
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SearchModal.xaml.cs b/SearchModal.xaml.cs
new file mode 100644
index 0000000..e11ba88
--- /dev/null
+++ b/SearchModal.xaml.cs
@@ -0,0 +1,32 @@
+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
+{
+ ///
+ /// Logique d'interaction pour SearchModal.xaml
+ ///
+ public partial class SearchModal : Window
+ {
+ public SearchModal()
+ {
+ InitializeComponent();
+ }
+
+ private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) {
+ e.Cancel = true;
+ this.Hide();
+ }
+ }
+}
diff --git a/packages.config b/packages.config
new file mode 100644
index 0000000..2088b48
--- /dev/null
+++ b/packages.config
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file