// create a new part in this package internal void CreateInternal(OpenXmlPackage openXmlPackage, MediaDataPartType mediaDataPartType) { _openXmlPackage = openXmlPackage; string contentType = mediaDataPartType.GetContentType(); string targetFileExt = mediaDataPartType.GetTargetExtension(); OpenXmlPackage.PartExtensionProvider.MakeSurePartExtensionExist(contentType, targetFileExt); _uri = NewPartUri(openXmlPackage, contentType, null); _metroPart = _openXmlPackage.CreateMetroPart(_uri, contentType); }
// create a new part in this package internal void CreateInternal2(OpenXmlPackage openXmlPackage, OpenXmlPart parent, string contentType, Uri partUri) { // openXmlPackage, parent can not be all null if (openXmlPackage == null && parent == null) { throw new ArgumentNullException(ExceptionMessages.PackageRelatedArgumentNullException); } else if (parent != null && openXmlPackage != null && parent.OpenXmlPackage != openXmlPackage) { throw new ArgumentOutOfRangeException(nameof(parent)); } else if (parent != null && openXmlPackage == null) { openXmlPackage = parent.OpenXmlPackage; } // throw exception to catch error in our code if (_packagePart != null) { throw new InvalidOperationException(); } // set the _openXmlPackage so ThrowIfObjectDisposed( ) do not throw. _openXmlPackage = openXmlPackage; Uri parentUri; if (parent != null) { parentUri = parent.Uri; } else { parentUri = new Uri("/", UriKind.Relative); } _uri = _openXmlPackage.GetUniquePartUri(contentType, parentUri, partUri); _packagePart = _openXmlPackage.CreateMetroPart(_uri, contentType); }
// create a new part in this package internal void CreateInternal2(OpenXmlPackage openXmlPackage, string contentType, Uri partUri) { // openXmlPackage, parent can not be all null if (openXmlPackage == null) { throw new ArgumentNullException(ExceptionMessages.PackageRelatedArgumentNullException); } // throw exception to catch error in our code if (_metroPart != null) { throw new InvalidOperationException(); } // set the _openXmlPackage so ThrowIfObjectDisposed( ) do not throw. _openXmlPackage = openXmlPackage; Uri parentUri = new Uri("/", UriKind.Relative); _uri = _openXmlPackage.GetUniquePartUri(contentType, parentUri, partUri); _metroPart = _openXmlPackage.CreateMetroPart(_uri, contentType); }
// create a new part in this package internal void CreateInternal(OpenXmlPackage openXmlPackage, string contentType, string extension) { _openXmlPackage = openXmlPackage; _uri = NewPartUri(openXmlPackage, contentType, extension); _metroPart = _openXmlPackage.CreateMetroPart(_uri, contentType); }
// create a new part in this package internal void CreateInternal(OpenXmlPackage openXmlPackage, OpenXmlPart parent, string contentType, string targetExt) { // openXmlPackage, parent can not be all null if (openXmlPackage == null && parent == null) { throw new ArgumentNullException(ExceptionMessages.PackageRelatedArgumentNullException); } else if (parent != null && openXmlPackage != null && parent.OpenXmlPackage != openXmlPackage) { throw new ArgumentOutOfRangeException(nameof(parent)); } else if (parent != null && openXmlPackage == null) { openXmlPackage = parent.OpenXmlPackage; } // throw exception to catch error in our code if (_packagePart != null) { throw new InvalidOperationException(); } // set the _openXmlPackage so ThrowIfObjectDisposed( ) do not throw. _openXmlPackage = openXmlPackage; Uri parentUri; if (parent != null) { parentUri = parent.Uri; } else { parentUri = new Uri("/", UriKind.Relative); } //OpenXmlPart parentPart = this._ownerPart; //Uri is auto generated to make sure it's unique string targetPath = GetTargetPath(TargetPath); if (targetPath == null) { targetPath = "."; } string targetFileExt = targetExt; if (!IsContentTypeFixed) { if (!_openXmlPackage.PartExtensionProvider.TryGetValue(contentType, out targetFileExt)) { targetFileExt = targetExt; } } if (targetFileExt == null) { targetFileExt = TargetFileExtension; } _uri = _openXmlPackage.GetUniquePartUri(contentType, parentUri, targetPath, TargetName, targetFileExt); _packagePart = _openXmlPackage.CreateMetroPart(_uri, contentType); }