public SettingsStoreDirectoryManager() { StorePath = new ReactiveProperty <string>(); StorePathSelect = new ReactiveProperty <Enums.eSettingsStoreDirectorySelect>(); StorePathSelect.Subscribe(x => StorePath.Value = GetStoreRootDirectory(x)); Enums.eSettingsStoreDirectorySelect eSelect = Enums.eSettingsStoreDirectorySelect.ApplicationRoot; if (Enum.TryParse(Properties.Settings.Default.SettingsStoreDirectorySelect, out eSelect)) { StorePathSelect.Value = eSelect; } else { StorePathSelect.Value = Enums.eSettingsStoreDirectorySelect.ApplicationRoot; } }
private static string GetStoreRootDirectory(Enums.eSettingsStoreDirectorySelect select) { switch (select) { case Enums.eSettingsStoreDirectorySelect.ApplicationRoot: System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly(); return(System.IO.Path.GetDirectoryName(asm.Location)); case Enums.eSettingsStoreDirectorySelect.MyDocuments: return(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + System.IO.Path.DirectorySeparatorChar + "LiveNotify"); case Enums.eSettingsStoreDirectorySelect.LocalSettngs: return(System.IO.Path.GetDirectoryName(ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoaming).FilePath)); default: return(string.Empty); } }