mattercontrol/SettingsManagement/ApplicationSettings.cs

106 lines
2.3 KiB
C#
Raw Normal View History

using MatterHackers.MatterControl.DataStorage;
using MatterHackers.MatterControl.SettingsManagement;
2014-01-29 19:09:30 -08:00
using System.Collections.Generic;
namespace MatterHackers.MatterControl
{
2015-04-08 15:20:10 -07:00
public class ApplicationSettings
{
public static string LibraryFilterFileExtensions { get { return ".stl,.amf,.gcode"; } }
2015-04-08 15:20:10 -07:00
public static string OpenPrintableFileParams { get { return "STL, AMF, ZIP, GCODE|*.stl;*.amf;*.zip;*.gcode"; } }
public static string OpenDesignFileParams { get { return "STL, AMF, ZIP, GCODE|*.stl;*.amf;*.zip;*.gcode"; } }
2014-01-29 19:09:30 -08:00
2015-04-08 15:20:10 -07:00
private static ApplicationSettings globalInstance = null;
public Dictionary<string, SystemSetting> settingsDictionary;
2014-01-29 19:09:30 -08:00
2015-04-08 15:20:10 -07:00
public static ApplicationSettings Instance
{
get
{
if (globalInstance == null)
{
globalInstance = new ApplicationSettings();
globalInstance.LoadData();
}
2014-01-29 19:09:30 -08:00
2015-04-08 15:20:10 -07:00
return globalInstance;
}
}
2014-01-29 19:09:30 -08:00
2015-04-08 15:20:10 -07:00
private string oemName = null;
2014-01-29 19:09:30 -08:00
2015-04-08 15:20:10 -07:00
public string GetOEMName()
{
if (oemName == null)
{
2015-04-08 15:20:10 -07:00
string[] printerWhiteListStrings = OemSettings.Instance.PrinterWhiteList.ToArray();
if (printerWhiteListStrings.Length == 0
|| printerWhiteListStrings.Length > 1)
2015-04-08 15:20:10 -07:00
{
oemName = "MatterHackers";
}
else
{
oemName = printerWhiteListStrings[0];
}
}
2015-04-08 15:20:10 -07:00
return oemName;
}
2014-01-29 19:09:30 -08:00
2015-04-08 15:20:10 -07:00
public string get(string key)
{
string result;
if (settingsDictionary == null)
{
globalInstance.LoadData();
}
2014-01-29 19:09:30 -08:00
2015-04-08 15:20:10 -07:00
if (settingsDictionary.ContainsKey(key))
{
result = settingsDictionary[key].Value;
}
else
{
result = null;
}
return result;
}
2014-01-29 19:09:30 -08:00
2015-04-08 15:20:10 -07:00
public void set(string key, string value)
{
SystemSetting setting;
2015-04-08 15:20:10 -07:00
if (settingsDictionary.ContainsKey(key))
{
setting = settingsDictionary[key];
}
else
{
setting = new SystemSetting();
2015-04-08 15:20:10 -07:00
setting.Name = key;
2014-01-29 19:09:30 -08:00
2015-04-08 15:20:10 -07:00
settingsDictionary[key] = setting;
}
2014-01-29 19:09:30 -08:00
2015-04-08 15:20:10 -07:00
setting.Value = value;
setting.Commit();
}
2014-01-29 19:09:30 -08:00
2015-04-08 15:20:10 -07:00
private void LoadData()
{
settingsDictionary = new Dictionary<string, SystemSetting>();
foreach (SystemSetting s in GetApplicationSettings())
2015-04-08 15:20:10 -07:00
{
settingsDictionary[s.Name] = s;
}
}
private IEnumerable<SystemSetting> GetApplicationSettings()
2015-04-08 15:20:10 -07:00
{
//Retrieve SystemSettings from the Datastore
return Datastore.Instance.dbSQLite.Query<SystemSetting>("SELECT * FROM SystemSetting;");
2015-04-08 15:20:10 -07:00
}
}
}