Esempio n. 1
0
        private async Task <List <string> > UnZipAsset(OVEAssetModel asset, Stream zipFile)
        {
            string prefixFolder = asset.StorageLocation.Split("/").FirstOrDefault() + "/";

            List <string> filesUploaded = new List <string>();

            var archive = new ZipArchive(zipFile);

            foreach (var entry in archive.Entries.Where(f => f.FullName.Contains(".")))
            {
                // only files
                var location = UnzipLocation(entry.FullName, prefixFolder);

                using (var file = entry.Open()) {
                    //raw unzipped streams do not have length so copy to memory stream
                    using (var ms = new MemoryStream()) {
                        await file.CopyToAsync(ms);

                        await _fileOps.Upload(asset.Project, location, ms);
                    }
                }

                filesUploaded.Add(location);
            }

            return(filesUploaded);
        }