public ChunkVariantInfo(InstallChunkInfo installChunkInfo, CatalogFile.ChunkEntry entry, CatalogFile.CryptoInfo?cryptoInfo) { this._InstallChunkInfo = installChunkInfo; this._Entry = entry; this._CryptoInfo = cryptoInfo; }
private bool AddInstallChunk(VfsFormats.Layout.InstallChunk installChunk) { if (this._InstallChunkInfo.ContainsKey(installChunk.Id) == true) { return(true); } var basePath = Path.Combine(this._DataPath, Helpers.FilterPath(installChunk.InstallBundle)); var catalogPath = Path.Combine(basePath, "cas.cat"); if (File.Exists(catalogPath) == false) { return(false); } var catalog = CatalogFile.Read(catalogPath); var installChunkInfo = new InstallChunkInfo(basePath); foreach (var entry in catalog.ChunkEntries) { var variantInfo = new ChunkVariantInfo(installChunkInfo, entry, null); List <ChunkVariantInfo> chunkVariants; if (this._ChunkInfo.TryGetValue(entry.SHA1.Text, out chunkVariants) == false) { chunkVariants = this._ChunkInfo[entry.SHA1.Text] = new List <ChunkVariantInfo>(); } chunkVariants.Add(variantInfo); } foreach (var entry in catalog.EncryptedChunkEntries) { var variantInfo = new ChunkVariantInfo(installChunkInfo, entry.Chunk, entry.CryptoInfo); List <ChunkVariantInfo> chunkVariants; if (this._ChunkInfo.TryGetValue(entry.Chunk.SHA1.Text, out chunkVariants) == false) { chunkVariants = this._ChunkInfo[entry.Chunk.SHA1.Text] = new List <ChunkVariantInfo>(); } chunkVariants.Add(variantInfo); } this._InstallChunkInfo.Add(installChunk.Id, installChunkInfo); return(true); }