diff --git a/App.xaml.cs b/App.xaml.cs
index 6df46e2..6b3a647 100644
--- a/App.xaml.cs
+++ b/App.xaml.cs
@@ -1,5 +1,9 @@
-using System.Data.SqlClient;
+using System;
+using System.IO;
+using System.Runtime.CompilerServices;
using System.Windows;
+using System.Xml;
+using System.Xml.Serialization;
using DebtMgr.Data;
using DebtMgr.ViewModel;
using SQLite.Net;
@@ -11,6 +15,20 @@ namespace DebtMgr
///
public partial class App : Application
{
+ #region Private Properties
+
+ private static string _settingsPath;
+ private static string _settingsFileName;
+
+ #endregion
+
+ public App()
+ {
+ _settingsPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
+ "eJay", "config");
+ _settingsFileName = "eJay.xml";
+ }
+
#region Locator
private static ViewModelLocator _locator;
@@ -21,7 +39,7 @@ namespace DebtMgr
#region Database
private static SQLiteConnection _database;
- public static SQLiteConnection Database => _database ?? (_database = new Database(DebtMgr.Properties.Settings.Default.Database));
+ public static SQLiteConnection Database => _database ?? (_database = new Database(Settings.Database));
#endregion
@@ -39,5 +57,70 @@ namespace DebtMgr
}
#endregion
+
+ #region Settings
+
+ private static EJaySettings _settings;
+
+ public static EJaySettings Settings
+ {
+ get
+ {
+ if(_settings == null)
+ _settings = LoadSettings();
+
+ return _settings;
+ }
+ }
+
+ #endregion
+
+ #region SaveSettings()
+
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
+ /// Saves the settings.
+ /// Andre Beging, 06.01.2019.
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
+ public static void SaveSettings()
+ {
+ Directory.CreateDirectory(_settingsPath);
+
+ if (_settings == null) _settings = new EJaySettings();
+ using (var streamWriter = new StreamWriter(Path.Combine(_settingsPath, _settingsFileName)))
+ {
+ using (var xmlWriter = XmlWriter.Create(streamWriter))
+ {
+ var serializer = new XmlSerializer(typeof(EJaySettings));
+ serializer.Serialize(xmlWriter, _settings);
+ streamWriter.Flush();
+ }
+ }
+ }
+
+ #endregion
+
+ #region LoadSettings()
+
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
+ /// Loads the settings.
+ /// Andre Beging, 06.01.2019.
+ /// The settings.
+ ////////////////////////////////////////////////////////////////////////////////////////////////////
+ private static EJaySettings LoadSettings()
+ {
+ var targetFile = Path.Combine(_settingsPath, _settingsFileName);
+ if (File.Exists(targetFile))
+ {
+ using (var stream = File.OpenRead(targetFile))
+ {
+ var serializer = new XmlSerializer(typeof(EJaySettings));
+ return serializer.Deserialize(stream) as EJaySettings;
+ }
+ }
+
+ return new EJaySettings();
+ }
+
+ #endregion
}
}
diff --git a/Data/EJaySettings.cs b/Data/EJaySettings.cs
new file mode 100644
index 0000000..9d574a9
--- /dev/null
+++ b/Data/EJaySettings.cs
@@ -0,0 +1,15 @@
+namespace DebtMgr.Data
+{
+ public class EJaySettings
+ {
+ public string Database { get; set; }
+
+ public string TelegramPath { get; set; }
+
+ public EJaySettings()
+ {
+ Database = string.Empty;
+ TelegramPath = string.Empty;
+ }
+ }
+}
diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs
index b177b26..61c55bb 100644
--- a/Properties/AssemblyInfo.cs
+++ b/Properties/AssemblyInfo.cs
@@ -49,5 +49,5 @@ using System.Windows;
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
// übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
+[assembly: AssemblyVersion("1.0.0")]
+[assembly: AssemblyFileVersion("1.0.0")]
\ No newline at end of file