Beispiel #1
0
 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);
 }
Beispiel #2
0
        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());
        }