/// <summary> /// Creates a new package from a server folder /// </summary> /// <param name="owner">The owner form</param> /// <param name="connection">The connection used to retrieve the resources</param> /// <param name="resourceIdList">The array of resource ids to create the package</param> /// <param name="zipfilename">The name of the output package file</param> /// <param name="allowedExtensions">A list of allowed extensions, set to null for all types. The special value "*" matches all unknown extensions.</param> /// <param name="removeExistingFiles">A flag indicating if the package should contain a delete instruction to delete the target area before restore</param> /// <param name="alternateTargetResourceId">The folder path where the package should be restore, set to null or empty string to use the source path</param> /// <returns></returns> public static DialogResult CreatePackage(Form owner, IServerConnection connection, string[] resourceIdList, string zipfilename, IEnumerable<ResourceTypes> allowedExtensions, bool removeExistingFiles, string alternateTargetResourceId) { PackageProgress pkgp = new PackageProgress(); var builder = new PackageBuilder(connection); pkgp.m_invokeObj = builder; pkgp.m_method = () => { builder.CreatePackage(resourceIdList, zipfilename, allowedExtensions, removeExistingFiles, alternateTargetResourceId); return true; }; return pkgp.ShowDialog(owner); }
/// <summary> /// Rebuilds a package /// </summary> /// <param name="owner">The owner form</param> /// <param name="connection">The connection used to serialize the items</param> /// <param name="sourcePackageFile">The package file that the new file is based on</param> /// <param name="items">The items that describes the layout of the new package</param> /// <param name="targetfile">The output package file</param> /// <param name="insertEraseCommands">True if each resource should have a delete operation inserted before the actual operation, false otherwise</param> /// <returns>A DialogResult object that indicates the result of the operation</returns> public static DialogResult RebuildPackage(Form owner, IServerConnection connection, string sourcePackageFile, List<ResourceItem> items, string targetfile, bool insertEraseCommands) { PackageProgress pkgp = new PackageProgress(); var builder = new PackageBuilder(connection); pkgp.m_invokeObj = builder; pkgp.m_method = () => { builder.RebuildPackage(sourcePackageFile, items, targetfile, insertEraseCommands); return true; }; return pkgp.ShowDialog(owner); }
/// <summary> /// Uploads a package file to the server in a non-transactional fashion /// </summary> /// <param name="owner">The owner form</param> /// <param name="connection">The connection used to upload the package</param> /// <param name="packageFile">The package file to upload</param> /// <param name="result">An <see cref="T:Maestro.Packaging.UploadPackageResult"/> object containing an optional list of operations to skip. It will be populated with the list of operations that passed and failed as the process executes</param> /// <returns>A DialogResult object that indicates the result of the operation</returns> public static DialogResult UploadPackageNonTransactional(Form owner, IServerConnection connection, string packageFile, UploadPackageResult result) { PackageProgress pkgp = new PackageProgress(); pkgp.Text = Strings.TitleUploading; var builder = new PackageBuilder(connection); pkgp.m_invokeObj = builder; pkgp.m_method = () => { builder.UploadPackageNonTransactional(packageFile, result); return true; }; return pkgp.ShowDialog(owner); }
/// <summary> /// Lists the contents of a package /// </summary> /// <param name="owner">The owner form</param> /// <param name="connection">The connection used to deserialize the items</param> /// <param name="packageFile">The package file to read</param> /// <returns>A list of resources in the package</returns> public static Dictionary<string, ResourceItem> ListPackageContents(Form owner, IServerConnection connection, string packageFile) { PackageProgress pkgp = new PackageProgress(); var builder = new PackageBuilder(connection); pkgp.m_invokeObj = builder; pkgp.m_method = () => { return builder.ListPackageContents(packageFile); }; if (pkgp.ShowDialog(owner) == DialogResult.OK) return (Dictionary<string, ResourceItem>)pkgp.m_invokeResult; else return null; }
/// <summary> /// Creates a new package from a server folder /// </summary> /// <param name="owner">The owner form</param> /// <param name="connection">The connection used to retrieve the resources</param> /// <param name="folderResourceId">The folder to create the package from</param> /// <param name="zipfilename">The name of the output package file</param> /// <param name="allowedExtensions">A list of allowed extensions, set to null for all types. The special value "*" matches all unknown extensions.</param> /// <param name="removeExistingFiles">A flag indicating if the package should contain a delete instruction to delete the target area before restore</param> /// <param name="alternateTargetResourceId">The folder path where the package should be restore, set to null or empty string to use the source path</param> /// <returns></returns> public static DialogResult CreatePackage(Form owner, IServerConnection connection, string folderResourceId, string zipfilename, IEnumerable<ResourceTypes> allowedExtensions, bool removeExistingFiles, string alternateTargetResourceId) { PackageProgress pkgp = new PackageProgress(); var builder = new PackageBuilder(connection); pkgp.m_invokeObj = builder; pkgp.m_method = () => { builder.CreatePackage(folderResourceId, zipfilename, allowedExtensions, removeExistingFiles, alternateTargetResourceId); return true; }; return pkgp.ShowDialog(owner); }