internal static SmtpSettings Load(string databaseName) { SmtpSettings settings = new SmtpSettings(); settings.LoadFromFile(Path.Combine(Settings.InstallDir, @"Services\AlertService.exe.config")); if (settings.AllowOverride == bool.TrueString) settings.LoadFromDatabase(databaseName); return settings; }
static void ConvertCompany(IConfigurator configurator, bool isAsp, CompanyInfo company) { try { using (DBTransaction tran = DBHelper2.DBHelper.BeginTransaction()) { // Load SMTP settings SmtpSettings smtpSettings = SmtpSettings.Load(company.Database); // Synchronize IM groups // Update portal DB // Copy data from main DB to portal DB NameValueCollection replace = new NameValueCollection(); replace["SET XACT_ABORT ON"] = string.Empty; replace["{MainDB}"] = Settings.SqlDatabase; replace["{PortalDB}"] = company.Database; replace["{CompanyId}"] = company.OldId.ToString(CultureInfo.InvariantCulture); UpdateDatabase(company.Database, ScriptType.SqlPortal, replace); // Copy code to separate folder // Update portal web.config // Create ISAPI extension // Create portal application pool // Create IM application pool // Create web site // Update ibn.config int port = (string.IsNullOrEmpty(company.Port) ? 80 : int.Parse(company.Port, CultureInfo.InvariantCulture)); string applicationPool = null; if (isAsp) { applicationPool = RegistrySettings.ReadString("ApplicationPoolType" + company.CompanyType.ToString(CultureInfo.InvariantCulture)); } company.Id = configurator.CreateCompanyForDatabase(company.Database, company.Created, company.IsActive, company.Host, string.Empty, port, applicationPool, false); // Save company settings string previousDatabase = DBHelper2.DBHelper.Database; try { DBHelper2.DBHelper.Database = company.Database; // Save company images to portal database SaveCompanyParameter(DBHelper2.DBHelper, "portal.company_logo", company.CompanyLogo); SaveCompanyParameter(DBHelper2.DBHelper, "portal.homepage.image", company.HomePageImage); // Save scheme, host and port to database SaveCompanyParameter(DBHelper2.DBHelper, "system.scheme", "http"); SaveCompanyParameter(DBHelper2.DBHelper, "system.host", company.Host); SaveCompanyParameter(DBHelper2.DBHelper, "system.port", company.Port); // Save SMTP settings smtpSettings.Save(); // Set database state to "Ready" DBHelper2.DBHelper.RunText("UPDATE [DatabaseVersion] SET [State]=6"); } finally { DBHelper2.DBHelper.Database = previousDatabase; } tran.Commit(); } } catch { #region Undo changes // Delete company if (!string.IsNullOrEmpty(company.Id)) { try { configurator.DeleteCompany(company.Id, false); } catch { } } #endregion throw; } }