示例#1
0
        public PackageFragmentValidationResult Uninstall(SystemLockingType systemLockingType)
        {
            try
            {
                if (systemLockingType == SystemLockingType.None)
                {
                    if (this.UseTransaction)
                    {
                        DoUninstall();
                    }
                    else
                    {
                        DoUninstallWithoutTransaction();
                    }
                }
                else
                {
                    bool isSoftSystemLocking = (systemLockingType == SystemLockingType.Soft);

                    string errorMessage;
                    if (!ApplicationOnlineHandlerFacade.CanPutApplicationOffline(isSoftSystemLocking, out errorMessage))
                    {
                        return(new PackageFragmentValidationResult(PackageFragmentValidationResultType.Fatal, errorMessage));
                    }

                    using (ApplicationOnlineHandlerFacade.TurnOffScope(isSoftSystemLocking))
                    {
                        if (this.UseTransaction)
                        {
                            DoUninstall();
                        }
                        else
                        {
                            DoUninstallWithoutTransaction();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                return(new PackageFragmentValidationResult(PackageFragmentValidationResultType.Fatal, ex));
            }

            return(null);
        }
 protected void ConnectionStringValidator_ServerValidate(object source, ServerValidateEventArgs args)
 {
     try
     {
         SqlConnection conn = new SqlConnection(txtConnectionString.Text);
         conn.Open();
         conn.Close();
     }
     catch (Exception x)
     {
         ConnectionStringValidator.Text = "Connection failed. Please make sure that the connection string is valid and, if updated, restart the server.<!-- <a href='http://docs.composite.net/Composite.Tools.DataStoreMigrator' >More information</a>.--><br /><br />Error details: " + x.Message;
         args.IsValid = false;
         return;
     }
     try
     {
         using (typeof(GlobalInitializerFacade).GetStaticProperty <IDisposable>("CoreLockScope"))
         {
             using (ApplicationOnlineHandlerFacade.TurnOffScope(false))
             {
                 KeyValuePair[] trParams = new KeyValuePair[] { new KeyValuePair("ConnectionStringName", DynamicSqlDataProviderConnectionStringName), new KeyValuePair("ConnectionString", txtConnectionString.Text) };
                 TransformWebConfiguration("SetConnectionString.xslt", trParams);
                 TransformConfiguration("SetDynamicSqlDataProvider.xslt",
                                        new KeyValuePair("ConnectionStringName", DynamicSqlDataProviderConnectionStringName));
             }
         }
     }
     catch (Exception x)
     {
         ConnectionStringValidator.Text = x.Message;
         if (x.InnerException != null)
         {
             ConnectionStringValidator.Text = x.InnerException.Message;
         }
         args.IsValid = false;
         return;
     }
 }
示例#3
0
        /// <exclude />
        public PackageFragmentValidationResult Install(SystemLockingType systemLockingType)
        {
            try
            {
                using (GlobalInitializerFacade.CoreLockScope)
                {
                    var onPackageInstallation = OnPackageInstallation;
                    if (onPackageInstallation != null)
                    {
                        onPackageInstallation();
                    }

                    if (systemLockingType == SystemLockingType.None ||
                        !ApplicationOnlineHandlerFacade.IsApplicationOnline ||
                        SystemSetupFacade.SetupIsRunning)
                    {
                        return(DoInstall());
                    }

                    bool isSoftSystemLocking = systemLockingType == SystemLockingType.Soft;

                    string errorMessage;
                    if (!ApplicationOnlineHandlerFacade.CanPutApplicationOffline(isSoftSystemLocking, out errorMessage))
                    {
                        return(new PackageFragmentValidationResult(PackageFragmentValidationResultType.Fatal, errorMessage));
                    }

                    using (ApplicationOnlineHandlerFacade.TurnOffScope(isSoftSystemLocking))
                    {
                        return(DoInstall());
                    }
                }
            }
            catch (Exception ex)
            {
                return(new PackageFragmentValidationResult(PackageFragmentValidationResultType.Fatal, ex));
            }
        }
示例#4
0
        /// <exclude />
        public static bool SetUp(string setupDescriptionXml, string username, string password, string email, string language, string consoleLanguage, bool newsletter)
        {
            ApplicationOnlineHandlerFacade.TurnApplicationOffline(false);

            username = username.Trim().ToLowerInvariant();

            XElement setupDescription = XElement.Parse(setupDescriptionXml);

            XElement setupRegistrationDescription = new XElement("registration",
                                                                 new XElement("user_email", email),
                                                                 new XElement("user_newsletter", newsletter),
                                                                 new XElement("user_consolelanguage", consoleLanguage),
                                                                 new XElement("user_websitelanguage", language),
                                                                 setupDescription);

            bool success = false;

            try
            {
                Log.LogInformation(VerboseLogTitle, "Downloading packages");

                string[]       packageUrls = GetPackageUrls(setupDescription).ToArray();
                MemoryStream[] packages    = new MemoryStream[packageUrls.Length];

                Parallel.For(0, packageUrls.Length, i =>
                {
                    packages[i] = DownloadPackage(packageUrls[i]);
                });

                Log.LogInformation(VerboseLogTitle, "Setting up the system for the first time");

                CultureInfo locale      = new CultureInfo(language);
                CultureInfo userCulture = new CultureInfo(consoleLanguage);

                ApplicationLevelEventHandlers.ApplicationStartInitialize();

                Log.LogInformation(VerboseLogTitle, "Creating first locale: " + language);
                LocalizationFacade.AddLocale(locale, "", true, false, true);


                Log.LogInformation(VerboseLogTitle, "Creating first user: "******"Installing package from url " + packageUrls[i]);
                        InstallPackage(packageUrls[i], packages[i]);

                        // Releasing a reference to reduce memory usage
                        packages[i].Dispose();
                        packages[i] = null;
                    }
                }

                RegisterSetup(setupRegistrationDescription.ToString(), "");

                Log.LogInformation(VerboseLogTitle, "Done setting up the system for the first time! Enjoy!");

                success = true;
            }
            catch (Exception ex)
            {
                Log.LogCritical(LogTitle, ex);
                Log.LogWarning(LogTitle, "First time setup failed - could not download, install package or otherwise complete the setup.");
                RegisterSetup(setupRegistrationDescription.ToString(), ex.ToString());

                if (RuntimeInformation.IsDebugBuild)
                {
                    ApplicationOnlineHandlerFacade.TurnApplicationOnline();
                    throw;
                }
            }

            ApplicationOnlineHandlerFacade.TurnApplicationOnline();
            return(success);
        }
    protected void SourceValidator_ServerValidate(object source, ServerValidateEventArgs args)
    {
        if (!TestOutOfBoundStringFields())
        {
            args.IsValid = false;
            return;
        }
        try
        {
            string sourceProviderName = ddlSourceDataProvider.SelectedValue;
            string targetProviderName = DynamicSqlDataProviderName;

            var dataProviderCopier = Reflection.CreateInstance("Composite.Data.DataProviderCopier", sourceProviderName, targetProviderName);

            dataProviderCopier.CallMethod("FullCopy");

            using (typeof(GlobalInitializerFacade).GetStaticProperty <IDisposable>("CoreLockScope"))
            {
                using (ApplicationOnlineHandlerFacade.TurnOffScope(false))
                {
                    TransformConfiguration("SetDefaultDynamicTypeDataProvider.xslt",
                                           new KeyValuePair("DynamicTypeDataProviderName", DynamicSqlDataProviderName));

                    var dynamicXmlDataProviderConfiguration = DataFacade.GetDynamicDataProviderNames()
                                                              .Where(d => d == DynamicXmlDataProviderName)
                                                              .Select(d => Reflection.GetDataProviderConfiguration(d))
                                                              .First();

                    lock (_lock)
                    {
                        var xmlConfigpath = PathUtil.Resolve(DynamicXmlDataProviderConfigPath);
                        File.Move(xmlConfigpath, GetBakPath(xmlConfigpath));

                        var storeDirectory = PathUtil.Resolve(dynamicXmlDataProviderConfiguration.GetProperty("StoreDirectory"));
                        Directory.Move(storeDirectory, GetBakPath(storeDirectory));

                        try
                        {
                            File.Delete(PathUtil.Resolve(TreeDefinitionPath));
                        }
                        //Ignore
                        catch { }
                    }
                }
            }
            ConsoleMessageQueueFacade.Enqueue(new MessageBoxMessageQueueItem
            {
                DialogType = DialogType.Message,
                Message    = lblComplete.Text,
                Title      = lblComplete.Text
            }, null);
            ConsoleMessageQueueFacade.Enqueue(new RebootConsoleMessageQueueItem(), null);
        }
        catch (Exception x)
        {
            SourceValidator.Text = x.Message;
            if (x.InnerException != null)
            {
                SourceValidator.Text = x.InnerException.Message;
            }
            args.IsValid = false;
            return;
        }
    }