コード例 #1
0
ファイル: SmtpSettings.cs プロジェクト: 0anion0/IBN
        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;
        }
コード例 #2
0
        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;
            }
        }