public SteamDirectories(uint appId, string folder, IAbsoluteDirectoryPath steamPath) {
            Contract.Requires<ArgumentNullException>(appId > 0);
            Contract.Requires<ArgumentNullException>(folder != null);
            Contract.Requires<ArgumentNullException>(steamPath != null);

            // TODO: Take LibraryPath from KV store
            RootPath = steamPath.GetChildDirectoryWithName("steamapps");
            Game = new SteamGameDirectories(folder, RootPath);
            Workshop = new SteamWorkshopDirectories(appId, RootPath);
        }
        public SteamDirectories(uint appId, string folder, IAbsoluteDirectoryPath steamPath)
        {
            if (!(appId > 0))
            {
                throw new ArgumentNullException("appId > 0");
            }
            if (folder == null)
            {
                throw new ArgumentNullException(nameof(folder));
            }
            if (steamPath == null)
            {
                throw new ArgumentNullException(nameof(steamPath));
            }

            // TODO: Take LibraryPath from KV store
            RootPath = steamPath.GetChildDirectoryWithName("steamapps");
            Game     = new SteamGameDirectories(folder, RootPath);
            Workshop = new SteamWorkshopDirectories(appId, RootPath);
        }
 protected SteamDirectories(SteamGameDirectories game, SteamWorkshopDirectories workshop) {
     Game = game;
     Workshop = workshop;
 }
 protected SteamDirectories(SteamGameDirectories game, SteamWorkshopDirectories workshop)
 {
     Game     = game;
     Workshop = workshop;
 }