Exemplo n.º 1
0
        private void step3CodeActivity_DownloadAndValidate_ExecuteCode(object sender, EventArgs e)
        {
            try
            {
                PackageDescription packageDescription = GetPackageDescription();

                string packageServerSource = PackageSystemServices.GetPackageSourceNameByPackageId(packageDescription.Id, InstallationInformationFacade.InstallationId, UserSettings.CultureInfo);

                System.IO.Stream installFileStream = PackageServerFacade.GetInstallFileStream(packageDescription.PackageFileDownloadUrl);

                PackageManagerInstallProcess packageManagerInstallProcess = PackageManager.Install(installFileStream, false, packageServerSource);
                this.Bindings.Add("PackageManagerInstallProcess", packageManagerInstallProcess);

                this.Bindings.Add("FlushOnCompletion", packageManagerInstallProcess.FlushOnCompletion);
                this.Bindings.Add("ReloadConsoleOnCompletion", packageManagerInstallProcess.ReloadConsoleOnCompletion);

                if (packageManagerInstallProcess.PreInstallValidationResult.Count > 0)
                {
                    this.UpdateBinding("Errors", WorkflowHelper.ValidationResultToBinding(packageManagerInstallProcess.PreInstallValidationResult));
                }
                else
                {
                    List <PackageFragmentValidationResult> validationResult = packageManagerInstallProcess.Validate();

                    if (validationResult.Count > 0)
                    {
                        this.UpdateBinding("LayoutLabel", StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "InstallRemotePackage.ShowWarning.LayoutLabel"));
                        this.UpdateBinding("TableCaption", StringResourceSystemFacade.GetString("Composite.Plugins.PackageElementProvider", "InstallRemotePackage.ShowWarning.InfoTableCaption"));
                        this.UpdateBinding("Errors", WorkflowHelper.ValidationResultToBinding(validationResult));
                    }
                    else
                    {
                        this.UpdateBinding("Uninstallable", packageManagerInstallProcess.CanBeUninstalled == false);
                    }
                }
            }
            catch (Exception ex)
            {
                this.UpdateBinding("Errors", new List <List <string> > {
                    new List <string> {
                        ex.Message, ""
                    }
                });
            }
        }
Exemplo n.º 2
0
        private void step1CodeActivity_ValidateServerUrl_ExecuteCode(object sender, EventArgs e)
        {
            string url = this.GetBinding <string>("Url");

            try
            {
                var uriBuilder = new UriBuilder(url);

                string cleanedUrl = uriBuilder.Uri.ToString().Remove(0, uriBuilder.Scheme.Length + 3);
                if (cleanedUrl.EndsWith("/"))
                {
                    cleanedUrl = cleanedUrl.Remove(cleanedUrl.Length - 1);
                }

                ServerUrlValidationResult serverUrlValidationResult = PackageServerFacade.ValidateServerUrl(cleanedUrl);

                _urlIsValid = true;
                if (serverUrlValidationResult == ServerUrlValidationResult.Invalid)
                {
                    this.ShowFieldMessage(BindingNames.Url, Texts.AddPackageSource_Step1_UrlNonPackageServer);
                    _urlIsValid = false;
                }
                else if (serverUrlValidationResult == ServerUrlValidationResult.Https)
                {
                    cleanedUrl = string.Format("https://{0}", cleanedUrl);
                    this.UpdateBinding(BindingNames.HttpOnly, false);
                }
                else if (serverUrlValidationResult == ServerUrlValidationResult.Http)
                {
                    cleanedUrl = string.Format("http://{0}", cleanedUrl);
                }

                this.UpdateBinding(BindingNames.CleanedUrl, cleanedUrl);
            }
            catch (Exception ex)
            {
                Log.LogWarning(LogTitle, "Failed to validate package source '{0}'", url);
                Log.LogWarning(LogTitle, ex);

                this.ShowFieldMessage(BindingNames.Url, Texts.AddPackageSource_Step1_UrlNotValid);
            }
        }
        private void step2CodeActivity_Uninstall_ExecuteCode(object sender, EventArgs e)
        {
            PackageElementProviderInstalledPackageItemEntityToken castedToken = (PackageElementProviderInstalledPackageItemEntityToken)this.EntityToken;
            PackageManagerUninstallProcess packageManagerUninstallProcess     = this.GetBinding <PackageManagerUninstallProcess>("PackageManagerUninstallProcess");

            Exception exception = null;

            try
            {
                string packageServerAddress =
                    (from a in PackageManager.GetInstalledPackages()
                     where a.Id == castedToken.PackageId
                     select a.PackageServerAddress).Single();

                List <PackageFragmentValidationResult> uninstallResult = packageManagerUninstallProcess.Uninstall();

                try
                {
                    PackageServerFacade.RegisterPackageUninstall(packageServerAddress, InstallationInformationFacade.InstallationId, castedToken.PackageId, UserSettings.Username, UserSettings.UserIPAddress.ToString());
                }
                catch (Exception ex)
                {
                    LoggingService.LogWarning("UninstallRemovePackageWorkflow", ex);
                    this.UpdateBinding("UnregisterError", true);
                }

                if (uninstallResult.Count > 0)
                {
                    this.UpdateBinding("Errors", WorkflowHelper.ValidationResultToBinding(uninstallResult));
                }
            }
            catch (Exception ex)
            {
                exception = ex;

                this.UpdateBinding("Errors", new List <List <string> > {
                    new List <string> {
                        ex.Message, ""
                    }
                });
            }
        }
        private void viewStateCodeActivity_Initialize_ExecuteCode(object sender, EventArgs e)
        {
            var  castedToken = (PackageElementProviderInstalledPackageItemEntityToken)this.EntityToken;
            Guid packageId   = castedToken.PackageId;

            if (castedToken.CanBeUninstalled)
            {
                this.SetCustomToolbarDefinition(new FormDefinitionFileMarkupProvider(CustomToolbarDefinitionPath));
            }

            if (this.BindingExist(BindingNames.InstalledPackageInformation))
            {
                return;
            }

            InstalledPackageInformation installedAddOnInformation =
                PackageManager.GetInstalledPackages().Single(info => info.Id == packageId);

            string   name             = installedAddOnInformation.Name;
            string   documentTitle    = GetDocumentTitle(name);
            DateTime installationDate = installedAddOnInformation.InstallDate.ToLocalTime();

            this.Bindings = new Dictionary <string, object>
            {
                { BindingNames.DocumentTitle, documentTitle },
                { BindingNames.InstalledPackageInformation, installedAddOnInformation },
                { BindingNames.InstallDate, installationDate.ToString() }
            };

            PackageDescription packageDescription = null;

            try
            {
                var allPackages = PackageServerFacade.GetAllPackageDescriptions(InstallationInformationFacade.InstallationId, UserSettings.CultureInfo);

                packageDescription = allPackages.FirstOrDefault(p => p.Id == packageId);
            }
            catch
            {
            }

            if (!string.IsNullOrEmpty(packageDescription?.ReadMoreUrl))
            {
                this.Bindings[BindingNames.ReadMoreUrl] = packageDescription.ReadMoreUrl;
            }

            var licenses      = GetRelatedLicenses(packageId, packageDescription);
            var actualLicense = licenses.OrderBy(l => l.HasExpired).ThenByDescending(l => l.IsSubscription).FirstOrDefault();

            if (actualLicense != null)
            {
                Bindings[BindingNames.LicenseExpirationDate] = actualLicense.ExpirationDate.ToLocalTime().ToString();
            }

            bool isTrial = actualLicense != null && actualLicense.IsTrial;

            this.Bindings[BindingNames.IsTrial] = isTrial;


            bool showPurchaseButton = false;

            if (isTrial && !string.IsNullOrWhiteSpace(actualLicense.PurchaseUrl))
            {
                string url = actualLicense.PurchaseUrl;
                this.Bindings[BindingNames.TrialPurchaseUrl] = url;

                showPurchaseButton = true;
            }
            this.Bindings[BindingNames.ShowPurchaseThisButton] = showPurchaseButton;

            bool isSubscription = actualLicense != null && actualLicense.IsSubscription;

            this.Bindings[BindingNames.IsSubscription] = isSubscription;
            if (isSubscription)
            {
                Bindings[BindingNames.SubscriptionName] = actualLicense.Name;
            }
        }
        private void viewStateCodeActivity_Initialize_ExecuteCode(object sender, EventArgs e)
        {
            var castedToken = (PackageElementProviderInstalledPackageItemEntityToken)this.EntityToken;

            if (!this.BindingExist("InstalledPackageInformation"))
            {
                InstalledPackageInformation installedAddOnInformation =
                    (from info in PackageManager.GetInstalledPackages()
                     where info.Id == castedToken.PackageId
                     select info).Single();

                string name          = installedAddOnInformation.Name;
                string documentTitle = (name.Contains('.') && !name.EndsWith(".") ?
                                        string.Format("{0} ({1})", name.Substring(name.LastIndexOf('.') + 1), name.Substring(0, name.LastIndexOf('.'))) :
                                        name);

                this.Bindings.Add("DocumentTitle", documentTitle);
                this.Bindings.Add("InstalledPackageInformation", installedAddOnInformation);
                this.Bindings.Add("InstallDate", installedAddOnInformation.InstallDate.ToLocalTime().ToString());

                PackageLicenseDefinition licenseInfo = PackageLicenseHelper.GetLicenseDefinition(installedAddOnInformation.Id);
                bool isTrial = (licenseInfo != null && !licenseInfo.Permanent);
                this.Bindings.Add("IsTrial", isTrial);

                this.Bindings.Add("ShowPurchaseThisButton", isTrial && !string.IsNullOrWhiteSpace(licenseInfo.PurchaseUrl));

                PackageDescription packageDescription = null;
                try
                {
                    Guid packageId = new Guid(castedToken.Id);

                    var allPackages = PackageServerFacade.GetAllPackageDescriptions(InstallationInformationFacade.InstallationId,
                                                                                    UserSettings.CultureInfo);

                    packageDescription = allPackages.FirstOrDefault(p => p.Id == packageId);
                }
                catch
                {
                }

                if (packageDescription != null && !string.IsNullOrEmpty(packageDescription.ReadMoreUrl))
                {
                    this.Bindings.Add("ReadMoreUrl", packageDescription.ReadMoreUrl);
                }

                if (isTrial)
                {
                    this.Bindings.Add("TrialExpire", licenseInfo.Expires.ToLocalTime().ToString());
                    if (!string.IsNullOrWhiteSpace(licenseInfo.PurchaseUrl))
                    {
                        //string url = string.Format("{0}{1}installationId={2}", licenseInfo.PurchaseUrl, (licenseInfo.PurchaseUrl.Contains('?') ? "&" : "?"), Composite.Core.Configuration.InstallationInformationFacade.InstallationId);
                        string url = licenseInfo.PurchaseUrl;
                        this.Bindings.Add("TrialPurchaseUrl", url);
                    }
                }
            }

            if (castedToken.CanBeUninstalled)
            {
                this.SetCustomToolbarDefinition(new FormDefinitionFileMarkupProvider(@"\Administrative\PackageElementProviderViewInstalledPackageInformationToolbar.xml"));
            }
        }
Exemplo n.º 6
0
 public static PackageDescription GetPackageDescription(Guid packageId)
 {
     return(PackageServerFacade.GetAllPackageDescriptions(Guid.Empty, CultureInfo.CreateSpecificCulture("en-us")).SingleOrDefault(p => p.Id == packageId));
 }
Exemplo n.º 7
0
        private void step4CodeActivity_Install_ExecuteCode(object sender, EventArgs e)
        {
            PackageDescription packageDescription = GetPackageDescription();

            PackageManagerInstallProcess packageManagerInstallProcess = this.GetBinding <PackageManagerInstallProcess>("PackageManagerInstallProcess");

            bool      installOk        = false;
            string    packageServerUrl = null;
            Exception exception        = null;

            try
            {
                packageServerUrl = PackageSystemServices.GetPackageSourceNameByPackageId(packageDescription.Id, InstallationInformationFacade.InstallationId, UserSettings.CultureInfo);

                List <PackageFragmentValidationResult> installResult = packageManagerInstallProcess.Install();
                if (installResult.Count > 0)
                {
                    this.UpdateBinding("Errors", WorkflowHelper.ValidationResultToBinding(installResult));
                }
                else
                {
                    installOk = true;
                }
            }
            catch (Exception ex)
            {
                exception = ex;

                this.UpdateBinding("Errors", new List <List <string> > {
                    new List <string> {
                        ex.Message, ""
                    }
                });
            }

            try
            {
                if (installOk)
                {
                    PackageServerFacade.RegisterPackageInstallationCompletion(packageServerUrl, InstallationInformationFacade.InstallationId, packageDescription.Id, UserSettings.Username, UserSettings.UserIPAddress.ToString());
                }
                else
                {
                    StringBuilder sb = new StringBuilder();
                    if (exception != null)
                    {
                        sb.Append(exception.ToString());
                    }
                    else
                    {
                        List <List <string> > errors = this.GetBinding <List <List <string> > >("Errors");
                        foreach (List <string> list in errors)
                        {
                            sb.AppendLine(list[0]);
                        }
                    }

                    PackageServerFacade.RegisterPackageInstallationFailure(packageServerUrl, InstallationInformationFacade.InstallationId, packageDescription.Id, UserSettings.Username, UserSettings.UserIPAddress.ToString(), sb.ToString());
                }
            }
            catch (Exception ex)
            {
                LoggingService.LogWarning("InstallRemotePackageWorkflow", ex);
            }
        }
        public FlowToken Execute(EntityToken entityToken, ActionToken actionToken, FlowControllerServicesContainer flowControllerServicesContainer)
        {
            PackageServerFacade.ClearServerCache();

            return(null);
        }