using Microsoft.Win32; using System; using System.Collections.Generic; using System.IO; namespace SHARP_CLAS_UI { public class Parameter_System_Manager { #region Define string str_mode = "mode.xml"; string str_setting = "setting.xml"; #endregion #region Property private static readonly Lazy _instatnce = new Lazy(() => new Parameter_System_Manager()); public static Parameter_System_Manager Instance { get { return _instatnce.Value; } } #endregion #region Field private Xml_Manager mode_xml_manager = new Xml_Manager(); private Xml_Manager setting_xml_manager = new Xml_Manager(); Parameter_Mode mode; Parameter_Setting setting; private string file_path; #endregion #region Construct public Parameter_System_Manager() { Get_File_Path(); mode = new Parameter_Mode(); setting = new Parameter_Setting(); Get_System_Mode(); Get_System_Setting(); } #endregion #region Function private void Get_File_Path() { RegistryKey rkk = Registry.CurrentUser.OpenSubKey(Equipment.Registry_Path, true); try { if (rkk == null) { rkk = Registry.CurrentUser.CreateSubKey(Equipment.Registry_Path); rkk.SetValue("SYSTEM_PARAMETER", @"C:\SHARP_CLAS\Config\SETTING\"); file_path = @"C:\SHARP_CLAS\Config\SETTING\"; } else { object value = rkk.GetValue("SYSTEM_PARAMETER"); if (value == null) { rkk.SetValue("SYSTEM_PARAMETER", @"C:\SHARP_CLAS\Config\SETTING\"); file_path = @"C:\SHARP_CLAS\Config\SETTING\"; } else { file_path = value.ToString(); } } } finally { rkk.Close(); } } private void Get_System_Mode() { Get_File_Path(); if (Directory.Exists(file_path)) { Parameter_Mode mode = mode_xml_manager.Read_File(file_path + str_mode); if(mode != null) { this.mode = mode; } } else { Directory.CreateDirectory(file_path); } } private void Get_System_Setting() { Get_File_Path(); if (Directory.Exists(file_path)) { Parameter_Setting setting = setting_xml_manager.Read_File(file_path + str_setting); if(setting != null) { this.setting = setting; } } else { Directory.CreateDirectory(file_path); } } public bool Save_System_Mode(Parameter_Mode mode) { this.mode = mode.Clone(); return mode_xml_manager.Try_Save_File(file_path + str_mode, mode); } public bool Save_System_Setting(Parameter_Setting setting) { this.setting = setting.Clone(); return setting_xml_manager.Try_Save_File(file_path + str_setting, setting); } public Parameter_Mode Get_Mode() { return mode.Clone(); } public Parameter_Setting Get_Setting() { return setting.Clone(); } #endregion } }