public void CreatePackage(FileBasedProject project, string packageFile) { #region "CreateManualTask" ProjectFile[] packageFiles = project.GetTargetLanguageFiles(new Language(CultureInfo.GetCultureInfo("de-DE"))); ManualTask newTask = project.CreateManualTask( "Translate", "Fred", DateTime.Now.AddDays(3), packageFiles.GetIds()); #endregion #region "CreateProjectPackage" ProjectPackageCreation projectPackage = project.CreateProjectPackage( newTask.Id, "Sample Package", "Please hurry up, this is job is urgent!", GetPackageOptions()); #endregion #region "PackageStatus" bool packageIsCreated = false; while (!packageIsCreated) { switch (projectPackage.Status) { case PackageStatus.Cancelling: case PackageStatus.InProgress: case PackageStatus.Scheduled: case PackageStatus.NotStarted: packageIsCreated = false; break; case PackageStatus.Cancelled: case PackageStatus.Completed: case PackageStatus.Failed: case PackageStatus.Invalid: packageIsCreated = true; break; default: break; } } if (projectPackage.Status != PackageStatus.Completed) { throw new Exception("A problem occurred during package creation."); } #endregion #region "SavePackage" project.SavePackageAs(projectPackage.PackageId, packageFile); #endregion }
//Output the project as a package private void CreateProjectPackage(FileBasedProject createdProject, Language targetLanguage, string packageOutputPath) { // at first create a manual task which will be added into the package ManualTask translate = createdProject.CreateManualTask( "Translate", "API translator", DateTime.Now.AddDays(7), this.GetTaskFiles(createdProject, targetLanguage)); // As last parameter of previous method you can suply array of TaskFileInfo(s), example here, or just array of Guids // which you can get by using createdProject.GetTargetLanguageFiles(targetLanguage).GetIds(); we should document this option // create a project package ProjectPackageCreation package = createdProject.CreateProjectPackage( translate.Id, "mypackage", "A package created by the API", this.GetPackageOption()); bool packageIsCreated = false; while (!packageIsCreated) { switch (package.Status) { case PackageStatus.Cancelling: case PackageStatus.InProgress: case PackageStatus.Scheduled: case PackageStatus.NotStarted: packageIsCreated = false; break; case PackageStatus.Cancelled: case PackageStatus.Completed: case PackageStatus.Failed: case PackageStatus.Invalid: packageIsCreated = true; break; default: break; } } if (package.Status != PackageStatus.Completed) { throw new Exception("Problem during package creation"); } // Save the package as a file createdProject.SavePackageAs(package.PackageId, packageOutputPath); }