public bool SavePackageContent(IPackageLayoutContentViewModel layoutContentViewModel) { try { using (Package package = Package.Open(CurrentPackagePath, FileMode.Open, FileAccess.ReadWrite)) { SavePackageContent(package, layoutContentViewModel); } } catch (Exception e) { return(false); } return(true); }
internal static void SavePackageContent(Package package, IPackageLayoutContentViewModel layoutContentViewModel) { var pluginAssembleName = layoutContentViewModel.GetType().Assembly.GetName().Name; var layoutContentViewModelPackagePartPath = "/" + pluginAssembleName + "/" + layoutContentViewModel.PackagePartName + ".xml"; Uri partUriLayoutContentViewModel = PackUriHelper.CreatePartUri(new Uri(layoutContentViewModelPackagePartPath, UriKind.Relative)); if (package.PartExists(partUriLayoutContentViewModel)) { package.DeletePart(partUriLayoutContentViewModel); } PackagePart packagePartLayoutContentViewModel = package.CreatePart(partUriLayoutContentViewModel, MediaTypeNames.Text.Xml, CompressionOption.Normal); if (packagePartLayoutContentViewModel == null) { return; } if (package.RelationshipExists(layoutContentViewModel.PackagePartID)) { package.DeleteRelationship(layoutContentViewModel.PackagePartID); } package.CreateRelationship(partUriLayoutContentViewModel, TargetMode.Internal, layoutContentViewModel.PackagePartType, layoutContentViewModel.PackagePartID); layoutContentViewModel.SaveState(packagePartLayoutContentViewModel.GetStream()); }