public PackageInstallResult CleanUp(PackageInstallModel model)
        {
            var ins     = new global::Umbraco.Web._Legacy.Packager.Installer(Security.CurrentUser.Id);
            var tempDir = IOHelper.MapPath(model.TemporaryDirectoryPath);

            ins.LoadConfig(IOHelper.MapPath(model.TemporaryDirectoryPath));
            ins.InstallCleanUp(model.Id, IOHelper.MapPath(model.TemporaryDirectoryPath));

            var clientDependencyConfig  = new ClientDependencyConfiguration(Logger);
            var clientDependencyUpdated = clientDependencyConfig.UpdateVersionNumber(
                UmbracoVersion.SemanticVersion, DateTime.UtcNow, "yyyyMMdd");


            var redirectUrl = "";

            if (ins.Control.IsNullOrWhiteSpace() == false)
            {
                redirectUrl = string.Format("/developer/framed/{0}",
                                            Uri.EscapeDataString(
                                                string.Format("/umbraco/developer/Packages/installer.aspx?installing=custominstaller&dir={0}&pId={1}&customControl={2}&customUrl={3}", tempDir, model.Id, ins.Control, ins.Url)));
            }

            return(new PackageInstallResult
            {
                Id = model.Id,
                ZipFilePath = model.ZipFilePath,
                PackageGuid = model.PackageGuid,
                RepositoryGuid = model.RepositoryGuid,
                TemporaryDirectoryPath = model.TemporaryDirectoryPath,
                PostInstallationPath = redirectUrl
            });
        }
        public PackageInstallModel InstallData(PackageInstallModel model)
        {
            var ins = new global::Umbraco.Web._Legacy.Packager.Installer(Security.CurrentUser.Id);

            ins.LoadConfig(IOHelper.MapPath(model.TemporaryDirectoryPath));
            ins.InstallBusinessLogic(model.Id, IOHelper.MapPath(model.TemporaryDirectoryPath));
            return(model);
        }
        public PackageInstallModel InstallFiles(PackageInstallModel model)
        {
            var ins = new global::Umbraco.Web._Legacy.Packager.Installer(Security.CurrentUser.Id);

            ins.LoadConfig(IOHelper.MapPath(model.TemporaryDirectoryPath));
            ins.InstallFiles(model.Id, IOHelper.MapPath(model.TemporaryDirectoryPath));

            //set a restarting marker and reset the app pool
            Current.RestartAppPool(Request.TryGetHttpContext().Result);

            model.IsRestarting = true;

            return(model);
        }
Beispiel #4
0
        public HttpResponseMessage InstallPackageFiles(InstallPackageModel model)
        {
            model.PackageFile = HttpUtility.UrlDecode(model.PackageFile);
            var installer = new global::Umbraco.Web._Legacy.Packager.Installer(UmbracoContext.Current.Security.CurrentUser.Id);

            installer.LoadConfig(model.PackageFile);
            installer.InstallFiles(model.ManifestId, model.PackageFile);
            return(Json(new
            {
                success = true,
                model.ManifestId,
                model.PackageFile,
                percentage = 20,
                message = "Installing starter kit files"
            }, HttpStatusCode.OK));
        }
Beispiel #5
0
        public HttpResponseMessage CleanupInstallation(InstallPackageModel model)
        {
            model.PackageFile = HttpUtility.UrlDecode(model.PackageFile);
            var installer = new global::Umbraco.Web._Legacy.Packager.Installer(UmbracoContext.Current.Security.CurrentUser.Id);

            installer.LoadConfig(model.PackageFile);
            installer.InstallCleanUp(model.ManifestId, model.PackageFile);

            // library.RefreshContent is obsolete, would need to RefreshAll... snapshot,
            // but it should be managed automatically by services and caches!
            //DistributedCache.Instance.RefreshAll...();

            return(Json(new
            {
                success = true,
                model.ManifestId,
                model.PackageFile,
                percentage = 100,
                message = "Starter kit has been installed"
            }, HttpStatusCode.OK));
        }
        private void PopulateFromPackageData(LocalPackageInstallModel model)
        {
            var ins = new global::Umbraco.Web._Legacy.Packager.Installer(Security.CurrentUser.Id);
            //this will load in all the metadata too
            var tempDir = ins.Import(model.ZipFilePath, false);

            model.TemporaryDirectoryPath = Path.Combine(SystemDirectories.Data, tempDir);
            model.Name       = ins.Name;
            model.Author     = ins.Author;
            model.AuthorUrl  = ins.AuthorUrl;
            model.IconUrl    = ins.IconUrl;
            model.License    = ins.License;
            model.LicenseUrl = ins.LicenseUrl;
            model.ReadMe     = ins.ReadMe;
            model.ConflictingMacroAliases     = ins.ConflictingMacroAliases;
            model.ConflictingStyleSheetNames  = ins.ConflictingStyleSheetNames;
            model.ConflictingTemplateAliases  = ins.ConflictingTemplateAliases;
            model.ContainsBinaryFileErrors    = ins.ContainsBinaryFileErrors;
            model.ContainsMacroConflict       = ins.ContainsMacroConflict;
            model.ContainsStyleSheetConflicts = ins.ContainsStyleSheeConflicts;
            model.ContainsTemplateConflicts   = ins.ContainsTemplateConflicts;
            model.ContainsUnsecureFiles       = ins.ContainsUnsecureFiles;
            model.Url     = ins.Url;
            model.Version = ins.Version;

            model.UmbracoVersion = ins.RequirementsType == RequirementsType.Strict
                ? string.Format("{0}.{1}.{2}", ins.RequirementsMajor, ins.RequirementsMinor, ins.RequirementsPatch)
                : string.Empty;

            //now we need to check for version comparison
            model.IsCompatible = true;
            if (ins.RequirementsType == RequirementsType.Strict)
            {
                var packageMinVersion = new System.Version(ins.RequirementsMajor, ins.RequirementsMinor, ins.RequirementsPatch);
                if (UmbracoVersion.Current < packageMinVersion)
                {
                    model.IsCompatible = false;
                }
            }
        }
        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);
        }
Beispiel #8
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));
        }