diff --git a/AutoRecovery.sln b/AutoRecovery.sln
index ebe4a49..20d722a 100644
--- a/AutoRecovery.sln
+++ b/AutoRecovery.sln
@@ -11,6 +11,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoRecoverySupervisor", "A
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{9B4EA8AC-F0D5-47AB-BD41-5EB9724299A5}"
ProjectSection(SolutionItems) = preProject
+ .gitattributes = .gitattributes
+ .gitignore = .gitignore
+ LICENSE.txt = LICENSE.txt
README.md = README.md
EndProjectSection
EndProject
diff --git a/AutoRecovery/Abraham.AutoRecovery.csproj b/AutoRecovery/Abraham.AutoRecovery.csproj
index 3d43d27..85533a9 100644
--- a/AutoRecovery/Abraham.AutoRecovery.csproj
+++ b/AutoRecovery/Abraham.AutoRecovery.csproj
@@ -19,9 +19,12 @@
and a supervisor process to automatically restart your app after a crash.
Oliver Abraham
Ciridata.png
- False
- 1.0.1
- Changed license to Apache 2.0 and added an icon
+ Included debug symbols
+ True
+
+ $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb
+ 1.0.2
+ Oliver Abraham
diff --git a/README.md b/README.md
index 0ae058d..443b070 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,16 @@
# Abraham.AutoRecovery
+![](https://img.shields.io/github/downloads/oliverabraham/AutoRecovery/total) ![](https://img.shields.io/github/license/oliverabraham/AutoRecovery) ![](https://img.shields.io/github/languages/count/oliverabraham/AutoRecovery) ![GitHub Repo stars](https://img.shields.io/github/stars/oliverabraham/AutoRecovery?label=repo%20stars) ![GitHub Repo stars](https://img.shields.io/github/stars/oliverabraham?label=user%20stars)
+
+
+## OVERVIEW
-## Abstract
This library provides a scheduler for automatically saving user data
and a supervisor process to automatically restart your app after a crash.
-## License
+## LICENSE
Licensed under Apache licence.
https://www.apache.org/licenses/LICENSE-2.0
@@ -15,7 +18,17 @@ https://www.apache.org/licenses/LICENSE-2.0
## Compatibility
-The nuget package was build with DotNET 6.
+The nuget package was build with DotNET standard 2.0.
+
+
+## Source code
+
+The source code is available on GitHub:
+https://github.com/OliverAbraham/AutoRecovery
+
+The nuget package is available on nuget.org:
+https://www.nuget.org/packages/Abraham.AutoRecovery/
+
## Example
@@ -83,20 +96,20 @@ At startup of your app, add the following code.
(You'll want to change startVisible to false after verifying it's working):
```C#
- private void Window_Loaded(object sender, RoutedEventArgs e)
- {
- _autoRecovery.EnableAutoRestart(startVisible: true); // restart this app after crash, start visible for Demo only!
- }
+private void Window_Loaded(object sender, RoutedEventArgs e)
+{
+ _autoRecovery.EnableAutoRestart(startVisible: true); // restart this app after crash, start visible for Demo only!
+}
```
At shutdown, add the following code:
```C#
- private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
- {
- _autoRecovery.NormalShutdown();
- }
+private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
+{
+ _autoRecovery.NormalShutdown();
+}
```
This call will end the hidden supervisor process.
@@ -123,7 +136,7 @@ This is very simple:
or from NuGet Command-Line:
- Install-Package Abraham.ProgramSettingsManager
+ Install-Package Abraham.AutoRecovery
@@ -137,3 +150,11 @@ Please feel free to comment and suggest improvements!
+
+
+# MAKE A DONATION !
+
+If you find this application useful, buy me a coffee!
+I would appreciate a small donation on https://www.buymeacoffee.com/oliverabraham
+
+
diff --git a/README.md.bak b/README.md.bak
new file mode 100644
index 0000000..0ae058d
--- /dev/null
+++ b/README.md.bak
@@ -0,0 +1,139 @@
+# Abraham.AutoRecovery
+
+
+## Abstract
+
+This library provides a scheduler for automatically saving user data
+and a supervisor process to automatically restart your app after a crash.
+
+
+## License
+
+Licensed under Apache licence.
+https://www.apache.org/licenses/LICENSE-2.0
+
+
+## Compatibility
+
+The nuget package was build with DotNET 6.
+
+
+## Example
+
+For an example refer to project "AutoRecoveryDemoWPF". It demonstrates both features:
+1. The scheduler that triggers a given function periodically to save the user's data.
+2. When you app starts, a separate (hidden) process is started to monitor your app.
+ In case you app crashes and its process ends, the hidden process will restart
+ your app. If your process ends normally, the hidden process will also end.
+
+
+## Getting started
+
+Add the Nuget package "Abraham.AutoRecovery" to your project.
+
+Add a field to your project:
+
+```C#
+ IAutoRecovery _autoRecovery = new AutoRecovery();
+```
+
+
+
+### Adding AutoSave to your project
+
+At startup of your app, add the following code:
+
+```C#
+ private void Window_Loaded(object sender, RoutedEventArgs e)
+ {
+ if (_autoRecovery.AppHasCrashed)
+ LoadDataFromAutoSaveFile();
+ else
+ LoadData();
+ _autoRecovery.EnableAutoSave(10, SaveDataForAutoSave); // save every 10 seconds
+ }
+```
+
+This method will be called periodically to save the user's data:
+
+```C#
+ private void SaveDataForAutoSave()
+ {
+ Dispatcher.Invoke(() => { SaveDataToAutoSaveFile(); });
+ }
+```
+
+At shutdown, add the following code:
+
+```C#
+ private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
+ {
+ SaveData();
+ DeleteAutoSaveFile(); // optional
+ }
+```
+
+After saving user's data as usual, you can add a method that deletes the file
+containing the autosave data.
+
+
+### Adding AutoRestart to your project
+
+At startup of your app, add the following code.
+(You'll want to change startVisible to false after verifying it's working):
+
+```C#
+ private void Window_Loaded(object sender, RoutedEventArgs e)
+ {
+ _autoRecovery.EnableAutoRestart(startVisible: true); // restart this app after crash, start visible for Demo only!
+ }
+```
+
+
+At shutdown, add the following code:
+
+```C#
+ private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
+ {
+ _autoRecovery.NormalShutdown();
+ }
+```
+
+This call will end the hidden supervisor process.
+
+### Testing AutoRestart
+
+- Start the demo app 'AutoRecoveryDemoWPF.exe' by doubleclicking.
+- The go to task manager and end this process.
+- Don't kill process tree! Only kill the single process.
+- After a few seconds the supervisor process will recognize that and restart your process.
+
+
+
+
+## HOW TO INSTALL A NUGET PACKAGE
+This is very simple:
+- Start Visual Studio (with NuGet installed)
+- Right-click on your project's References and choose "Manage NuGet Packages..."
+- Choose Online category from the left
+- Enter the name of the nuget package to the top right search and hit enter
+- Choose your package from search results and hit install
+- Done!
+
+
+or from NuGet Command-Line:
+
+ Install-Package Abraham.ProgramSettingsManager
+
+
+
+
+
+## AUTHOR
+
+Oliver Abraham, mail@oliver-abraham.de, https://www.oliver-abraham.de
+
+Please feel free to comment and suggest improvements!
+
+
+