private void SyncRandomizedRhcToCache(string rhDir)
        {
            var cachePath = Path.Combine(rhDir, "cache");
            var cacheFile = IBinarySerializableExtensions.Deserialize(cachePath, CacheFile.Deserialize);

            var sync = new RhcSynchronizer(cacheFile, rhcFile);

            sync.Sync();

            cacheFile.SerializeToFile(cachePath);
        }
        public void Sync()
        {
            var oggSynchronizer = new OggSynchronizer(cacheFile, assets.oggGuid, 0f);

            oggSynchronizer.Sync();

            var pngSynchronizer = new PngSynchronizer(cacheFile, assets.pngGuid);

            pngSynchronizer.Sync();

            var rhsSynchronizer = new RhsSynchronizer(cacheFile, assets.rhsFile);

            rhsSynchronizer.Sync();

            foreach (var rhcFile in assets.rhcFiles)
            {
                var rhcSynchronizer = new RhcSynchronizer(cacheFile, rhcFile);
                rhcSynchronizer.Sync();
            }
        }