private static PnPInfo LoadPnPPackage(PnPPackage package) { PnPInfo pnpInfo = new PnPInfo(); pnpInfo.Manifest = package.Manifest; pnpInfo.Properties = package.Properties; pnpInfo.FilesMap = package.FilesMap; pnpInfo.Files = new List<PnPFileInfo>(); foreach (KeyValuePair<String, PnPPackageFileItem> file in package.Files) { pnpInfo.Files.Add( new PnPFileInfo { InternalName = file.Key, OriginalName = package.FilesMap != null ? (String.IsNullOrEmpty(file.Value.Folder) ? package.FilesMap.Map[file.Key] : package.FilesMap.Map[file.Key].Replace(file.Value.Folder + '/', "")) : file.Key, Folder = file.Value.Folder, Content = file.Value.Content, }); } return pnpInfo; }
private static void SavePnPPackage(PnPInfo pnpInfo, PnPPackage package) { package.Manifest = pnpInfo.Manifest; package.Properties = pnpInfo.Properties; package.FilesMap = new PnPFilesMap(pnpInfo.Files.ToDictionary(f => f.InternalName, f => f.OriginalName)); package.ClearFiles(); if (pnpInfo.Files != null) { foreach (PnPFileInfo file in pnpInfo.Files) { package.AddFile(file.InternalName, file.Folder, file.Content); } } }
private static void SavePnPPackage(PnPInfo pnpInfo, PnPPackage package) { package.Manifest = pnpInfo.Manifest; package.Properties = pnpInfo.Properties; Debug.Assert(pnpInfo.Files.TrueForAll(f => !string.IsNullOrWhiteSpace(f.InternalName)), "All files need an InternalFileName"); package.FilesMap = new PnPFilesMap(pnpInfo.Files.ToDictionary(f => f.InternalName, f => Path.Combine(f.Folder, f.OriginalName).Replace('\\', '/').TrimStart('/'))); package.ClearFiles(); if (pnpInfo.Files != null) { foreach (PnPFileInfo file in pnpInfo.Files) { package.AddFile(file.InternalName, file.Content); } } }