public PackageInstallModel Import(PackageInstallModel model)
        {
            var ins = new global::Umbraco.Web._Legacy.Packager.Installer(Security.CurrentUser.Id);

            var tempPath = ins.Import(model.ZipFilePath);

            //now we need to check for version comparison
            if (ins.RequirementsType == RequirementsType.Strict)
            {
                var packageMinVersion = new System.Version(ins.RequirementsMajor, ins.RequirementsMinor, ins.RequirementsPatch);
                if (UmbracoVersion.Current < packageMinVersion)
                {
                    throw new HttpResponseException(Request.CreateNotificationValidationErrorResponse(
                                                        Services.TextService.Localize("packager/targetVersionMismatch", new[] { packageMinVersion.ToString() })));
                }
            }

            model.TemporaryDirectoryPath = Path.Combine(SystemDirectories.Data, tempPath);
            model.Id = ins.CreateManifest(IOHelper.MapPath(model.TemporaryDirectoryPath), model.PackageGuid.ToString(), model.RepositoryGuid.ToString());

            return(model);
        }
Ejemplo n.º 2
0
        public HttpResponseMessage DownloadPackageFiles(InstallPackageModel model)
        {
            var packageFile = Current.Services.PackagingService.FetchPackageFile(
                model.KitGuid,
                UmbracoVersion.Current,
                UmbracoContext.Current.Security.CurrentUser.Id);

            var installer = new global::Umbraco.Web._Legacy.Packager.Installer(UmbracoContext.Current.Security.CurrentUser.Id);

            var tempFile = installer.Import(packageFile);

            installer.LoadConfig(tempFile);
            var pId = installer.CreateManifest(tempFile, model.KitGuid.ToString(), RepoGuid);

            return(Json(new
            {
                success = true,
                manifestId = pId,
                packageFile = tempFile,
                percentage = 10,
                message = "Downloading starter kit files..."
            }, HttpStatusCode.OK));
        }