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; } }
/// <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)); } }
/// <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; } }