Exemple #1
0
 /// <summary>
 /// Defines a New Product Release
 /// </summary>
 /// <param name="codename">Codename of the release. Be creative.</param>
 /// <param name="version">Product Version of this Release.</param>
 /// <param name="context">The InstallContext for the current install.</param>
 protected ProductRelease(string codename, Version version, EvolutionInstallContext context)
 {
     Codename               = codename;
     Version                = version;
     Context                = context;
     _contextUpdates        = new List <IContextUpdate>();
     _preMigrationsActions  = new List <Action>();
     _postMigrationsActions = new List <Action>();
     Log = LogProvider.Get(GetType());
 }
Exemple #2
0
 public Release4_8(EvolutionInstallContext context)
     : base("Duchess", new Version(4, 8, 0, 0), context)
 {
     // Define the Context Updates in the Order they should be applied.
     UpdateContext <AdministrationDbContext, Data.Administration.Migrations.Configuration, Data.Administration.Migrations.RemoveOffenceDescriptionFromViolationCode>();
     UpdateContext <AuditDbContext, Data.Audit.Migrations.Configuration, Data.Audit.Migrations._4_8>();
     UpdateContext <MediaDbContext, Data.Media.Migrations.Configuration, Data.Media.Migrations._4_8>();
     UpdateContext <MessagingDbContext, Data.Messaging.Migrations.Configuration, Data.Messaging.Migrations._4_8>();
     UpdateContext <MetadataDbContext, Data.Metadata.Migrations.Configuration, Data.Metadata.Migrations._4_8>();
     UpdateContext <RecentInfoDbContext, Data.RecentInfo.Migrations.Configuration, Data.RecentInfo.Migrations._4_8>();
     UpdateContext <ReportsDbContext, Data.Reports.Migrations.Configuration, Data.Reports.Migrations.Attachmentrelationships>();
     UpdateContext <SummariesDbContext, Data.Summaries.Migrations.Configuration, Data.Summaries.Migrations.Attachmentrelationships>();
     UpdateContext <StageDbContext, ExternalApi.Stage.Data.Migrations.Configuration, ExternalApi.Stage.Data.Migrations._48>();
 }
Exemple #3
0
 public Release4_8_1(EvolutionInstallContext context)
     : base("Teriyaki", new Version(4, 8, 1, 0), context)
 {
     // Define the Context Updates in the Order they should be applied.
     UpdateContext <AdministrationDbContext, Data.Administration.Migrations.Configuration, LatestMigration>();
     UpdateContext <AuditDbContext, Data.Audit.Migrations.Configuration, LatestMigration>();
     UpdateContext <MediaDbContext, Data.Media.Migrations.Configuration, LatestMigration>();
     UpdateContext <MessagingDbContext, Data.Messaging.Migrations.Configuration, LatestMigration>();
     UpdateContext <MetadataDbContext, Data.Metadata.Migrations.Configuration, LatestMigration>();
     UpdateContext <RecentInfoDbContext, Data.RecentInfo.Migrations.Configuration, LatestMigration>();
     UpdateContext <ReportsDbContext, Data.Reports.Migrations.Configuration, LatestMigration>();
     UpdateContext <SummariesDbContext, Data.Summaries.Migrations.Configuration, LatestMigration>();
     UpdateContext <StageDbContext, ExternalApi.Stage.Data.Migrations.Configuration, LatestMigration>();
 }
Exemple #4
0
        /// <summary>
        /// Perform an Installation or Update.
        /// </summary>
        private static void InstallEvolution()
        {
            Action install = () =>
            {
                // Create the Install Context
                var installContext =
                    new EvolutionInstallContext()
                {
                    SystemName = "TriTech InformRMS Web",     // TODO: Client specific system names.
                    ClassicDatabaseConnectionString = Settings.Classic,
                    TargetDatabaseConnectionString  = Settings.Target,
                    AppPoolIdentity      = Settings.AppPoolIdentity,
                    TargetImplementation = Settings.Implementation
                };

                // Create the Installer
                var installer = new EvolutionDatabaseInstaller(installContext);

                // Install/Reinstall the Product
                if (Settings.Install)
                {
                    installer.Install();
                }
                else if (Settings.Reinstall)
                {
                    // Uninstall the Product
                    installer.Uninstall();

                    // Install the Product
                    installer.Install();
                }
                else
                {
                    Exit("Intent could not be determined.  Please specify Install or Reinstall.", 1);
                }

                // Seed Some Data
                if (Settings.Seed)
                {
                    EvolutionDatabaseSeeder.Seed(installContext);
                }
            };

            // If the debugger is attached let exceptions bubble up.
            if (Debugger.IsAttached)
            {
                install();
            }
            else
            {
                // If running without the debugger catch any exceptions.
                try { install(); }
                catch (Exception ex)
                {
                    Log.Error(ex);

                    Exit(Environment.NewLine +
                         (Settings.Install ? "INSTALL" : "REINSTALL") + " FAILED:"
                         + Environment.NewLine + ex.Message, 1);
                }
            }
        }