diff --git a/App.Cmd/Program.cs b/App.Cmd/Program.cs index dadfda0..e7abe30 100644 --- a/App.Cmd/Program.cs +++ b/App.Cmd/Program.cs @@ -1,12 +1,22 @@ using App.Cmd.Views; using App.Core.Services; +using static System.Net.Mime.MediaTypeNames; namespace App.Cmd { internal class Program { + //Mutex to have app in mono-instance + static Mutex mutex = new Mutex(true, "{EasySaveMutex}"); static void Main(string[] args) { + if (!mutex.WaitOne(TimeSpan.Zero, true)) + { + + return; + } + + mutex.ReleaseMutex(); // Check if the arguments are null ArgumentNullException.ThrowIfNull(args); diff --git "a/Diagramme D'activit\342\200\232.png" "b/Diagramme D'activit\342\200\232.png" new file mode 100644 index 0000000..8d330f6 Binary files /dev/null and "b/Diagramme D'activit\342\200\232.png" differ diff --git a/Diagramme cas utilisation.png b/Diagramme cas utilisation.png new file mode 100644 index 0000000..7c64138 Binary files /dev/null and b/Diagramme cas utilisation.png differ diff --git a/Diagramme de classe.png b/Diagramme de classe.png new file mode 100644 index 0000000..7ba6074 Binary files /dev/null and b/Diagramme de classe.png differ diff --git "a/Diagramme de s\342\200\232quence.png" "b/Diagramme de s\342\200\232quence.png" new file mode 100644 index 0000000..b35a987 Binary files /dev/null and "b/Diagramme de s\342\200\232quence.png" differ diff --git a/EasySave.sln b/EasySave.sln index 3a490ac..10723d4 100644 --- a/EasySave.sln +++ b/EasySave.sln @@ -7,7 +7,16 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "App.Core", "App.Core\App.Co EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "App.Cmd", "App.Cmd\App.Cmd.csproj", "{087719F3-E5C7-4EB9-9B26-28D8B2170BEC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfApp", "WpfApp\WpfApp.csproj", "{F73113F9-BA17-40D8-9F89-4A5EC3D9EA00}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WpfApp", "WpfApp\WpfApp.csproj", "{F73113F9-BA17-40D8-9F89-4A5EC3D9EA00}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UML-DOCS", "UML-DOCS", "{03939F2F-7210-443E-AF82-5C14D233CFDE}" + ProjectSection(SolutionItems) = preProject + \\.psf\Home\Downloads\Livrable 2 Louis JAGUENEAU Paul PESHCEL Nathan LORIT Julien DESPREZ\Diagramme cas utilisation.png = \\.psf\Home\Downloads\Livrable 2 Louis JAGUENEAU Paul PESHCEL Nathan LORIT Julien DESPREZ\Diagramme cas utilisation.png + \\.psf\Home\Downloads\Livrable 2 Louis JAGUENEAU Paul PESHCEL Nathan LORIT Julien DESPREZ\Diagramme D'activit‚.png = \\.psf\Home\Downloads\Livrable 2 Louis JAGUENEAU Paul PESHCEL Nathan LORIT Julien DESPREZ\Diagramme D'activit‚.png + \\.psf\Home\Downloads\Livrable 2 Louis JAGUENEAU Paul PESHCEL Nathan LORIT Julien DESPREZ\Diagramme de classe.png = \\.psf\Home\Downloads\Livrable 2 Louis JAGUENEAU Paul PESHCEL Nathan LORIT Julien DESPREZ\Diagramme de classe.png + \\.psf\Home\Downloads\Livrable 2 Louis JAGUENEAU Paul PESHCEL Nathan LORIT Julien DESPREZ\Diagramme de s‚quence.png = \\.psf\Home\Downloads\Livrable 2 Louis JAGUENEAU Paul PESHCEL Nathan LORIT Julien DESPREZ\Diagramme de s‚quence.png + \\.psf\Home\Downloads\Livrable 2 Louis JAGUENEAU Paul PESHCEL Nathan LORIT Julien DESPREZ\Livrable 2 EasySavez.pdf = \\.psf\Home\Downloads\Livrable 2 Louis JAGUENEAU Paul PESHCEL Nathan LORIT Julien DESPREZ\Livrable 2 EasySavez.pdf + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/Livrable 2 EasySavez.pdf b/Livrable 2 EasySavez.pdf new file mode 100644 index 0000000..a248009 Binary files /dev/null and b/Livrable 2 EasySavez.pdf differ diff --git a/WpfApp/App.xaml.cs b/WpfApp/App.xaml.cs index bf4b92a..097dee2 100644 --- a/WpfApp/App.xaml.cs +++ b/WpfApp/App.xaml.cs @@ -1,14 +1,29 @@ -using System.Configuration; -using System.Data; +using System; +using System.Threading; using System.Windows; namespace WpfApp { - /// - /// Interaction logic for App.xaml - /// public partial class App : Application { - } + private static Mutex _mutex = null; + + protected override void OnStartup(StartupEventArgs e) + { + const string appName = "MyAppName"; + bool createdNew; + + _mutex = new Mutex(true, appName, out createdNew); + if (!createdNew) + { + // L'application est déjà en cours d'exécution + MessageBox.Show("L'application est déjà en cours d'exécution.", "Erreur", MessageBoxButton.OK, MessageBoxImage.Error); + Current.Shutdown(); + return; + } + + base.OnStartup(e); + } + } }