예제 #1
0
        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);
        }