// TODO public virtual void SetPaths(IAbsoluteDirectoryPath appPath = null, IAbsoluteDirectoryPath dataPath = null, IAbsoluteDirectoryPath localDataPath = null, IAbsoluteDirectoryPath tempPath = null, IAbsoluteDirectoryPath configPath = null, IAbsoluteDirectoryPath toolPath = null, IAbsoluteDirectoryPath sharedDataPath = null) { //if (PathsSet) throw new Exception("Paths are already set!"); if (PathsSet) { this.Logger().Debug("Paths were already set!"); } EntryLocation = CommonBase.AssemblyLoader.GetEntryLocation(); EntryPath = CommonBase.AssemblyLoader.GetEntryPath(); ProcessExtensions.DefaultWorkingDirectory = EntryPath; AppPath = appPath ?? GetAppPath(); DataPath = dataPath ?? GetDataPath(); NotePath = DataPath.GetChildDirectoryWithName("Notes"); LocalDataRootPath = GetLocalDataRootPath(); LocalDataPath = localDataPath ?? GetLocalDataPath(); LocalDataSharedPath = sharedDataPath ?? GetLocalDataSharedPath(); SharedDllPath = GetLocalSharedDllPath(); LogPath = LocalDataPath.GetChildDirectoryWithName("Logs"); TempPath = tempPath ?? Path.Combine(Path.GetTempPath(), Common.AppCommon.ApplicationName) .ToAbsoluteDirectoryPath(); ToolPath = toolPath ?? LocalDataSharedPath.GetChildDirectoryWithName("Tools"); ToolMinGwBinPath = ToolPath.GetChildDirectoryWithName("mingw").GetChildDirectoryWithName("bin"); ToolCygwinBinPath = ToolPath.GetChildDirectoryWithName("cygwin").GetChildDirectoryWithName("bin"); ConfigPath = configPath ?? ToolPath.GetChildDirectoryWithName("Config"); StartPath = Directory.GetCurrentDirectory().ToAbsoluteDirectoryPath(); AwesomiumPath = LocalDataSharedPath.GetChildDirectoryWithName("CEF"); MyDocumentsPath = GetMyDocumentsPath(); ProgramDataPath = GetProgramDataPath(); SharedFilesPath = AppPath; ServiceExePath = Common.IsMini ? EntryLocation : SharedFilesPath.GetChildFileWithName(ServiceExe); SelfUpdaterExePath = SharedFilesPath.GetChildFileWithName(SelfUpdaterExe); SynqRootPath = ProgramDataPath.GetChildDirectoryWithName("Synq"); PathsSet = true; }
IAbsoluteDirectoryPath GetSystemSharedPath() => ProgramDataPath.GetChildDirectoryWithName(CompanyPath).GetChildDirectoryWithName("Shared");