7173 - Refactored to inject IUmbracoVersion instead of using Current.
This commit is contained in:
@@ -29,13 +29,23 @@ namespace Umbraco.Core.Migrations.Install
|
||||
private readonly IKeyValueService _keyValueService;
|
||||
private readonly ILogger _logger;
|
||||
private readonly IIOHelper _ioHelper;
|
||||
private readonly IUmbracoVersion _umbracoVersion;
|
||||
|
||||
private DatabaseSchemaResult _databaseSchemaValidationResult;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="DatabaseBuilder"/> class.
|
||||
/// </summary>
|
||||
public DatabaseBuilder(IScopeProvider scopeProvider, IGlobalSettings globalSettings, IUmbracoDatabaseFactory databaseFactory, IRuntimeState runtime, ILogger logger, IMigrationBuilder migrationBuilder, IKeyValueService keyValueService, IIOHelper ioHelper)
|
||||
public DatabaseBuilder(
|
||||
IScopeProvider scopeProvider,
|
||||
IGlobalSettings globalSettings,
|
||||
IUmbracoDatabaseFactory databaseFactory,
|
||||
IRuntimeState runtime,
|
||||
ILogger logger,
|
||||
IMigrationBuilder migrationBuilder,
|
||||
IKeyValueService keyValueService,
|
||||
IIOHelper ioHelper,
|
||||
IUmbracoVersion umbracoVersion)
|
||||
{
|
||||
_scopeProvider = scopeProvider;
|
||||
_globalSettings = globalSettings;
|
||||
@@ -45,6 +55,7 @@ namespace Umbraco.Core.Migrations.Install
|
||||
_migrationBuilder = migrationBuilder;
|
||||
_keyValueService = keyValueService;
|
||||
_ioHelper = ioHelper;
|
||||
_umbracoVersion = umbracoVersion;
|
||||
}
|
||||
|
||||
#region Status
|
||||
@@ -369,7 +380,7 @@ namespace Umbraco.Core.Migrations.Install
|
||||
return _databaseSchemaValidationResult;
|
||||
|
||||
var database = scope.Database;
|
||||
var dbSchema = new DatabaseSchemaCreator(database, _logger);
|
||||
var dbSchema = new DatabaseSchemaCreator(database, _logger, _umbracoVersion);
|
||||
_databaseSchemaValidationResult = dbSchema.ValidateSchema();
|
||||
scope.Complete();
|
||||
return _databaseSchemaValidationResult;
|
||||
@@ -419,7 +430,7 @@ namespace Umbraco.Core.Migrations.Install
|
||||
if (_runtime.Level == RuntimeLevel.Run)
|
||||
throw new Exception("Umbraco is already configured!");
|
||||
|
||||
var creator = new DatabaseSchemaCreator(database, _logger);
|
||||
var creator = new DatabaseSchemaCreator(database, _logger, _umbracoVersion);
|
||||
creator.InitializeDatabaseSchema();
|
||||
|
||||
message = message + "<p>Installation completed!</p>";
|
||||
|
||||
@@ -15,11 +15,13 @@ namespace Umbraco.Core.Migrations.Install
|
||||
{
|
||||
private readonly IDatabase _database;
|
||||
private readonly ILogger _logger;
|
||||
private readonly IUmbracoVersion _umbracoVersion;
|
||||
|
||||
public DatabaseDataCreator(IDatabase database, ILogger logger)
|
||||
public DatabaseDataCreator(IDatabase database, ILogger logger, IUmbracoVersion umbracoVersion)
|
||||
{
|
||||
_database = database;
|
||||
_logger = logger;
|
||||
_umbracoVersion = umbracoVersion;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -324,7 +326,7 @@ namespace Umbraco.Core.Migrations.Install
|
||||
{
|
||||
// on install, initialize the umbraco migration plan with the final state
|
||||
|
||||
var upgrader = new Upgrader(new UmbracoPlan());
|
||||
var upgrader = new Upgrader(new UmbracoPlan(_umbracoVersion));
|
||||
var stateValueKey = upgrader.StateValueKey;
|
||||
var finalState = upgrader.Plan.FinalState;
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using NPoco;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.Events;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.Persistence;
|
||||
@@ -18,11 +19,13 @@ namespace Umbraco.Core.Migrations.Install
|
||||
{
|
||||
private readonly IUmbracoDatabase _database;
|
||||
private readonly ILogger _logger;
|
||||
private readonly IUmbracoVersion _umbracoVersion;
|
||||
|
||||
public DatabaseSchemaCreator(IUmbracoDatabase database, ILogger logger)
|
||||
public DatabaseSchemaCreator(IUmbracoDatabase database, ILogger logger, IUmbracoVersion umbracoVersion)
|
||||
{
|
||||
_database = database;
|
||||
_logger = logger;
|
||||
_umbracoVersion = umbracoVersion;
|
||||
}
|
||||
|
||||
private ISqlSyntaxProvider SqlSyntax => _database.SqlContext.SqlSyntax;
|
||||
@@ -125,7 +128,7 @@ namespace Umbraco.Core.Migrations.Install
|
||||
|
||||
if (e.Cancel == false)
|
||||
{
|
||||
var dataCreation = new DatabaseDataCreator(_database, _logger);
|
||||
var dataCreation = new DatabaseDataCreator(_database, _logger,_umbracoVersion);
|
||||
foreach (var table in OrderedTables)
|
||||
CreateTable(false, table, dataCreation);
|
||||
}
|
||||
@@ -395,7 +398,7 @@ namespace Umbraco.Core.Migrations.Install
|
||||
where T : new()
|
||||
{
|
||||
var tableType = typeof(T);
|
||||
CreateTable(overwrite, tableType, new DatabaseDataCreator(_database, _logger));
|
||||
CreateTable(overwrite, tableType, new DatabaseDataCreator(_database, _logger, _umbracoVersion));
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -14,16 +14,16 @@ namespace Umbraco.Core.Migrations.Upgrade
|
||||
/// </summary>
|
||||
public class UmbracoPlan : MigrationPlan
|
||||
{
|
||||
private readonly IUmbracoVersion _umbracoVersion;
|
||||
private const string InitPrefix = "{init-";
|
||||
private const string InitSuffix = "}";
|
||||
|
||||
private IUmbracoVersion UmbracoVersion => Current.UmbracoVersion;
|
||||
/// <summary>
|
||||
/// Initializes a new instance of the <see cref="UmbracoPlan"/> class.
|
||||
/// </summary>
|
||||
public UmbracoPlan()
|
||||
public UmbracoPlan(IUmbracoVersion umbracoVersion)
|
||||
: base(Constants.System.UmbracoUpgradePlanName)
|
||||
{
|
||||
_umbracoVersion = umbracoVersion;
|
||||
DefinePlan();
|
||||
}
|
||||
|
||||
@@ -66,13 +66,13 @@ namespace Umbraco.Core.Migrations.Upgrade
|
||||
throw new InvalidOperationException($"Could not get current version from web.config {Constants.AppSettings.ConfigurationStatus} appSetting.");
|
||||
|
||||
// cannot go back in time
|
||||
if (currentVersion > UmbracoVersion.SemanticVersion)
|
||||
throw new InvalidOperationException($"Version {currentVersion} cannot be downgraded to {UmbracoVersion.SemanticVersion}.");
|
||||
if (currentVersion > _umbracoVersion.SemanticVersion)
|
||||
throw new InvalidOperationException($"Version {currentVersion} cannot be downgraded to {_umbracoVersion.SemanticVersion}.");
|
||||
|
||||
// only from 7.14.0 and above
|
||||
var minVersion = new SemVersion(7, 14);
|
||||
if (currentVersion < minVersion)
|
||||
throw new InvalidOperationException($"Version {currentVersion} cannot be migrated to {UmbracoVersion.SemanticVersion}."
|
||||
throw new InvalidOperationException($"Version {currentVersion} cannot be migrated to {_umbracoVersion.SemanticVersion}."
|
||||
+ $" Please upgrade first to at least {minVersion}.");
|
||||
|
||||
// Force versions between 7.14.*-7.15.* into into 7.14 initial state. Because there is no db-changes,
|
||||
@@ -89,7 +89,7 @@ namespace Umbraco.Core.Migrations.Upgrade
|
||||
{
|
||||
if (TryGetInitStateVersion(state, out var initVersion))
|
||||
{
|
||||
throw new InvalidOperationException($"Version {UmbracoVersion.SemanticVersion} does not support migrating from {initVersion}."
|
||||
throw new InvalidOperationException($"Version {_umbracoVersion.SemanticVersion} does not support migrating from {initVersion}."
|
||||
+ $" Please verify which versions support migrating from {initVersion}.");
|
||||
}
|
||||
|
||||
|
||||
@@ -249,7 +249,7 @@ namespace Umbraco.Core
|
||||
|
||||
protected virtual bool EnsureUmbracoUpgradeState(IUmbracoDatabaseFactory databaseFactory, ILogger logger)
|
||||
{
|
||||
var upgrader = new Upgrader(new UmbracoPlan());
|
||||
var upgrader = new Upgrader(new UmbracoPlan(_umbracoVersion));
|
||||
var stateValueKey = upgrader.StateValueKey;
|
||||
|
||||
// no scope, no service - just directly accessing the database
|
||||
|
||||
@@ -5,6 +5,7 @@ using System.IO;
|
||||
using System.Linq;
|
||||
using BenchmarkDotNet.Attributes;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.Migrations.Install;
|
||||
using Umbraco.Core.Persistence;
|
||||
@@ -51,8 +52,8 @@ namespace Umbraco.Tests.Benchmarks
|
||||
{
|
||||
var logger = new DebugDiagnosticsLogger(new MessageTemplates());
|
||||
var path = TestHelper.CurrentAssemblyDirectory;
|
||||
|
||||
SetupSqlCe(path, logger);
|
||||
var umbracoVersion = TestHelper.GetUmbracoVersion();
|
||||
SetupSqlCe(path, logger, umbracoVersion);
|
||||
SetupSqlServer(logger);
|
||||
|
||||
|
||||
@@ -83,7 +84,7 @@ namespace Umbraco.Tests.Benchmarks
|
||||
)");
|
||||
}
|
||||
|
||||
private void SetupSqlCe(string path, ILogger logger)
|
||||
private void SetupSqlCe(string path, ILogger logger, IUmbracoVersion umbracoVersion)
|
||||
{
|
||||
var dbName = string.Concat("Umb", Guid.NewGuid(), ".sdf");
|
||||
AppDomain.CurrentDomain.SetData("DataDirectory", path);
|
||||
@@ -102,7 +103,7 @@ namespace Umbraco.Tests.Benchmarks
|
||||
//use the db to create the initial schema so we can reuse in each bench
|
||||
using (_dbSqlCe = GetSqlCeDatabase(sqlCeConnectionString, logger))
|
||||
{
|
||||
var creation = new DatabaseSchemaCreator(_dbSqlCe, logger);
|
||||
var creation = new DatabaseSchemaCreator(_dbSqlCe, logger, umbracoVersion);
|
||||
creation.InitializeDatabaseSchema();
|
||||
}
|
||||
_initDbBytes = File.ReadAllBytes(_dbFile);
|
||||
|
||||
@@ -24,13 +24,6 @@ namespace Umbraco.Tests.Configurations
|
||||
Current.IOHelper.Root = _root;
|
||||
}
|
||||
|
||||
[Ignore("fixme - ignored test")]
|
||||
[Test]
|
||||
public void Is_Version_From_Assembly_Correct()
|
||||
{
|
||||
Assert.That(Current.UmbracoVersion.SemanticVersion, Is.EqualTo("6.0.0"));
|
||||
}
|
||||
|
||||
[TestCase("~/umbraco", "/", "umbraco")]
|
||||
[TestCase("~/umbraco", "/MyVirtualDir", "umbraco")]
|
||||
[TestCase("~/customPath", "/MyVirtualDir/", "custompath")]
|
||||
|
||||
@@ -42,7 +42,7 @@ namespace Umbraco.Tests.Migrations
|
||||
|
||||
upgrader.Execute(ScopeProvider, builder, Mock.Of<IKeyValueService>(), logger);
|
||||
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, logger);
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, logger, UmbracoVersion);
|
||||
var exists = helper.TableExists("umbracoUser");
|
||||
Assert.IsTrue(exists);
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ using Umbraco.Core.Persistence;
|
||||
using Umbraco.Core.Persistence.SqlSyntax;
|
||||
using Umbraco.Core.Scoping;
|
||||
using Umbraco.Core.Services;
|
||||
using Umbraco.Tests.TestHelpers;
|
||||
using Umbraco.Tests.Testing;
|
||||
|
||||
namespace Umbraco.Tests.Migrations
|
||||
@@ -137,7 +138,7 @@ namespace Umbraco.Tests.Migrations
|
||||
[Test]
|
||||
public void ValidateUmbracoPlan()
|
||||
{
|
||||
var plan = new UmbracoPlan();
|
||||
var plan = new UmbracoPlan(TestHelper.GetUmbracoVersion());
|
||||
plan.Validate();
|
||||
Console.WriteLine(plan.FinalState);
|
||||
Assert.IsFalse(plan.FinalState.IsNullOrWhiteSpace());
|
||||
|
||||
@@ -7,6 +7,7 @@ using Moq;
|
||||
using NPoco;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.Migrations.Install;
|
||||
using Umbraco.Core.Persistence;
|
||||
@@ -26,6 +27,7 @@ namespace Umbraco.Tests.Persistence
|
||||
private ILogger _logger;
|
||||
private SqlCeSyntaxProvider _sqlCeSyntaxProvider;
|
||||
private ISqlSyntaxProvider[] _sqlSyntaxProviders;
|
||||
private IUmbracoVersion _umbracoVersion;
|
||||
|
||||
[SetUp]
|
||||
public void Setup()
|
||||
@@ -34,6 +36,7 @@ namespace Umbraco.Tests.Persistence
|
||||
_sqlCeSyntaxProvider = new SqlCeSyntaxProvider();
|
||||
_sqlSyntaxProviders = new[] { (ISqlSyntaxProvider) _sqlCeSyntaxProvider };
|
||||
_logger = Mock.Of<ILogger>();
|
||||
_umbracoVersion = TestHelper.GetUmbracoVersion();
|
||||
_databaseFactory = new UmbracoDatabaseFactory(_logger, new Lazy<IMapperCollection>(() => Mock.Of<IMapperCollection>()), TestHelper.GetConfigs());
|
||||
}
|
||||
|
||||
@@ -88,7 +91,7 @@ namespace Umbraco.Tests.Persistence
|
||||
using (var database = _databaseFactory.CreateDatabase())
|
||||
using (var transaction = database.GetTransaction())
|
||||
{
|
||||
schemaHelper = new DatabaseSchemaCreator(database, _logger);
|
||||
schemaHelper = new DatabaseSchemaCreator(database, _logger, _umbracoVersion);
|
||||
schemaHelper.InitializeDatabaseSchema();
|
||||
transaction.Complete();
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace Umbraco.Tests.Persistence
|
||||
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var schema = new DatabaseSchemaCreator(scope.Database, Logger);
|
||||
var schema = new DatabaseSchemaCreator(scope.Database, Logger, UmbracoVersion);
|
||||
result = schema.ValidateSchema(
|
||||
//TODO: When we remove the xml cache from tests we can remove this too
|
||||
DatabaseSchemaCreator.OrderedTables.Concat(new []{typeof(ContentXmlDto), typeof(PreviewXmlDto)}));
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using Moq;
|
||||
using NPoco;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.Migrations.Install;
|
||||
using Umbraco.Core.Persistence;
|
||||
@@ -20,7 +21,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
|
||||
@@ -33,7 +34,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<AccessDto>();
|
||||
@@ -47,7 +48,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<AccessDto>();
|
||||
@@ -62,7 +63,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentType2ContentTypeDto>();
|
||||
@@ -76,7 +77,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -91,7 +92,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -105,7 +106,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -121,7 +122,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -137,7 +138,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<DataTypeDto>();
|
||||
@@ -151,7 +152,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<DictionaryDto>();
|
||||
|
||||
@@ -164,7 +165,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<DictionaryDto>();
|
||||
helper.CreateTable<LanguageDto>();
|
||||
@@ -179,7 +180,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<TemplateDto>();
|
||||
@@ -193,7 +194,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -210,7 +211,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -226,7 +227,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<DomainDto>();
|
||||
@@ -240,7 +241,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<LanguageDto>();
|
||||
|
||||
@@ -253,7 +254,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<LogDto>();
|
||||
|
||||
@@ -266,7 +267,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<MacroDto>();
|
||||
|
||||
@@ -279,7 +280,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -295,7 +296,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -312,7 +313,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -327,7 +328,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -344,7 +345,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -362,7 +363,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -379,7 +380,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -394,7 +395,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<RelationTypeDto>();
|
||||
@@ -409,20 +410,20 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<RelationTypeDto>();
|
||||
|
||||
scope.Complete();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
[Test]
|
||||
public void Can_Create_cmsTags_Table()
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<TagDto>();
|
||||
|
||||
@@ -435,7 +436,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -456,7 +457,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<UserDto>();
|
||||
|
||||
@@ -469,7 +470,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<UserGroupDto>();
|
||||
@@ -483,7 +484,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<UserDto>();
|
||||
@@ -497,7 +498,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<UserGroupDto>();
|
||||
@@ -512,7 +513,7 @@ namespace Umbraco.Tests.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>());
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, Mock.Of<ILogger>(), UmbracoVersion);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<UserGroupDto>();
|
||||
|
||||
@@ -153,7 +153,7 @@ namespace Umbraco.Tests.Runtimes
|
||||
var scopeProvider = factory.GetInstance<IScopeProvider>();
|
||||
using (var scope = scopeProvider.CreateScope())
|
||||
{
|
||||
var creator = new DatabaseSchemaCreator(scope.Database, logger);
|
||||
var creator = new DatabaseSchemaCreator(scope.Database, logger, umbracoVersion);
|
||||
creator.InitializeDatabaseSchema();
|
||||
scope.Complete();
|
||||
}
|
||||
|
||||
@@ -131,7 +131,7 @@ namespace Umbraco.Tests.TestHelpers
|
||||
|
||||
// ensure the configuration matches the current version for tests
|
||||
var globalSettingsMock = Mock.Get(Factory.GetInstance<IGlobalSettings>()); //this will modify the IGlobalSettings instance stored in the container
|
||||
globalSettingsMock.Setup(x => x.ConfigurationStatus).Returns(Current.UmbracoVersion.Current.ToString(3));
|
||||
globalSettingsMock.Setup(x => x.ConfigurationStatus).Returns(UmbracoVersion.Current.ToString(3));
|
||||
|
||||
using (ProfilingLogger.TraceDuration<TestWithDatabaseBase>("Initialize database."))
|
||||
{
|
||||
@@ -303,7 +303,7 @@ namespace Umbraco.Tests.TestHelpers
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var schemaHelper = new DatabaseSchemaCreator(scope.Database, Logger);
|
||||
var schemaHelper = new DatabaseSchemaCreator(scope.Database, Logger, UmbracoVersion);
|
||||
//Create the umbraco database and its base data
|
||||
schemaHelper.InitializeDatabaseSchema();
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
redirectUrl = Url.Action("AuthorizeUpgrade", "BackOffice")
|
||||
});
|
||||
}
|
||||
@Html.BareMinimumServerVariablesScript(Url, externalLoginUrl, Model.Features, Model.GlobalSettings)
|
||||
@Html.BareMinimumServerVariablesScript(Url, externalLoginUrl, Model.Features, Model.GlobalSettings, Model.UmbracoVersion)
|
||||
|
||||
<script type="text/javascript">
|
||||
document.angularReady = function (app) {
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
on-login="hideLoginScreen()">
|
||||
</umb-login>
|
||||
|
||||
@Html.BareMinimumServerVariablesScript(Url, Url.Action("ExternalLogin", "BackOffice", new { area = ViewData.GetUmbracoPath() }), Model.Features, Current.Configs.Global())
|
||||
@Html.BareMinimumServerVariablesScript(Url, Url.Action("ExternalLogin", "BackOffice", new { area = ViewData.GetUmbracoPath() }), Model.Features, Current.Configs.Global(), Model.UmbracoVersion)
|
||||
|
||||
<script>
|
||||
|
||||
|
||||
@@ -42,14 +42,15 @@ namespace Umbraco.Web.Editors
|
||||
private readonly IRuntimeState _runtimeState;
|
||||
private BackOfficeUserManager<BackOfficeIdentityUser> _userManager;
|
||||
private BackOfficeSignInManager _signInManager;
|
||||
private IUmbracoVersion _umbracoVersion;
|
||||
private readonly IUmbracoVersion _umbracoVersion;
|
||||
|
||||
public BackOfficeController(IManifestParser manifestParser, UmbracoFeatures features, IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ServiceContext services, AppCaches appCaches, IProfilingLogger profilingLogger, IRuntimeState runtimeState, UmbracoHelper umbracoHelper)
|
||||
public BackOfficeController(IManifestParser manifestParser, UmbracoFeatures features, IGlobalSettings globalSettings, IUmbracoContextAccessor umbracoContextAccessor, ServiceContext services, AppCaches appCaches, IProfilingLogger profilingLogger, IRuntimeState runtimeState, UmbracoHelper umbracoHelper, IUmbracoVersion umbracoVersion)
|
||||
: base(globalSettings, umbracoContextAccessor, services, appCaches, profilingLogger, umbracoHelper)
|
||||
{
|
||||
_manifestParser = manifestParser;
|
||||
_features = features;
|
||||
_runtimeState = runtimeState;
|
||||
_umbracoVersion = umbracoVersion;
|
||||
}
|
||||
|
||||
protected BackOfficeSignInManager SignInManager => _signInManager ?? (_signInManager = OwinContext.GetBackOfficeSignInManager());
|
||||
@@ -65,8 +66,8 @@ namespace Umbraco.Web.Editors
|
||||
public async Task<ActionResult> Default()
|
||||
{
|
||||
return await RenderDefaultOrProcessExternalLoginAsync(
|
||||
() => View(GlobalSettings.Path.EnsureEndsWith('/') + "Views/Default.cshtml", new BackOfficeModel(_features, GlobalSettings)),
|
||||
() => View(GlobalSettings.Path.EnsureEndsWith('/') + "Views/Default.cshtml", new BackOfficeModel(_features, GlobalSettings)));
|
||||
() => View(GlobalSettings.Path.EnsureEndsWith('/') + "Views/Default.cshtml", new BackOfficeModel(_features, GlobalSettings, _umbracoVersion)),
|
||||
() => View(GlobalSettings.Path.EnsureEndsWith('/') + "Views/Default.cshtml", new BackOfficeModel(_features, GlobalSettings, _umbracoVersion)));
|
||||
}
|
||||
|
||||
[HttpGet]
|
||||
@@ -149,7 +150,7 @@ namespace Umbraco.Web.Editors
|
||||
{
|
||||
return await RenderDefaultOrProcessExternalLoginAsync(
|
||||
//The default view to render when there is no external login info or errors
|
||||
() => View(GlobalSettings.Path.EnsureEndsWith('/') + "Views/AuthorizeUpgrade.cshtml", new BackOfficeModel(_features, GlobalSettings)),
|
||||
() => View(GlobalSettings.Path.EnsureEndsWith('/') + "Views/AuthorizeUpgrade.cshtml", new BackOfficeModel(_features, GlobalSettings, _umbracoVersion)),
|
||||
//The ActionResult to perform if external login is successful
|
||||
() => Redirect("/"));
|
||||
}
|
||||
|
||||
@@ -6,13 +6,15 @@ namespace Umbraco.Web.Editors
|
||||
|
||||
public class BackOfficeModel
|
||||
{
|
||||
public BackOfficeModel(UmbracoFeatures features, IGlobalSettings globalSettings)
|
||||
public BackOfficeModel(UmbracoFeatures features, IGlobalSettings globalSettings, IUmbracoVersion umbracoVersion)
|
||||
{
|
||||
Features = features;
|
||||
GlobalSettings = globalSettings;
|
||||
UmbracoVersion = umbracoVersion;
|
||||
}
|
||||
|
||||
|
||||
public UmbracoFeatures Features { get; }
|
||||
public IGlobalSettings GlobalSettings { get; }
|
||||
public IUmbracoVersion UmbracoVersion { get; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ namespace Umbraco.Web.Editors
|
||||
private readonly UmbracoFeatures _features;
|
||||
public IEnumerable<ILanguage> Languages { get; }
|
||||
|
||||
public BackOfficePreviewModel(UmbracoFeatures features, IGlobalSettings globalSettings, IEnumerable<ILanguage> languages) : base(features, globalSettings)
|
||||
public BackOfficePreviewModel(UmbracoFeatures features, IGlobalSettings globalSettings, IUmbracoVersion umbracoVersion, IEnumerable<ILanguage> languages) : base(features, globalSettings, umbracoVersion)
|
||||
{
|
||||
_features = features;
|
||||
Languages = languages;
|
||||
|
||||
@@ -24,19 +24,22 @@ namespace Umbraco.Web.Editors
|
||||
private readonly IPublishedSnapshotService _publishedSnapshotService;
|
||||
private readonly IUmbracoContextAccessor _umbracoContextAccessor;
|
||||
private readonly ILocalizationService _localizationService;
|
||||
private readonly IUmbracoVersion _umbracoVersion;
|
||||
|
||||
public PreviewController(
|
||||
UmbracoFeatures features,
|
||||
IGlobalSettings globalSettings,
|
||||
IPublishedSnapshotService publishedSnapshotService,
|
||||
IUmbracoContextAccessor umbracoContextAccessor,
|
||||
ILocalizationService localizationService)
|
||||
ILocalizationService localizationService,
|
||||
IUmbracoVersion umbracoVersion)
|
||||
{
|
||||
_features = features;
|
||||
_globalSettings = globalSettings;
|
||||
_publishedSnapshotService = publishedSnapshotService;
|
||||
_umbracoContextAccessor = umbracoContextAccessor;
|
||||
_localizationService = localizationService;
|
||||
_umbracoVersion = umbracoVersion;
|
||||
}
|
||||
|
||||
[UmbracoAuthorize(redirectToUmbracoLogin: true)]
|
||||
@@ -45,7 +48,7 @@ namespace Umbraco.Web.Editors
|
||||
{
|
||||
var availableLanguages = _localizationService.GetAllLanguages();
|
||||
|
||||
var model = new BackOfficePreviewModel(_features, _globalSettings, availableLanguages);
|
||||
var model = new BackOfficePreviewModel(_features, _globalSettings, _umbracoVersion, availableLanguages);
|
||||
|
||||
if (model.PreviewExtendedHeaderView.IsNullOrWhiteSpace() == false)
|
||||
{
|
||||
|
||||
@@ -38,7 +38,7 @@ namespace Umbraco.Web.Editors
|
||||
_umbracoVersion.Current.Build,
|
||||
_umbracoVersion.Comment);
|
||||
|
||||
return new UpgradeCheckResponse(result.UpgradeType.ToString(), result.Comment, result.UpgradeUrl);
|
||||
return new UpgradeCheckResponse(result.UpgradeType.ToString(), result.Comment, result.UpgradeUrl, _umbracoVersion);
|
||||
}
|
||||
catch (System.Net.WebException)
|
||||
{
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Configuration;
|
||||
using Umbraco.Core.Logging;
|
||||
using Umbraco.Core.Migrations.Install;
|
||||
using Umbraco.Core.Migrations.Upgrade;
|
||||
@@ -17,12 +18,14 @@ namespace Umbraco.Web.Install.InstallSteps
|
||||
private readonly DatabaseBuilder _databaseBuilder;
|
||||
private readonly IRuntimeState _runtime;
|
||||
private readonly ILogger _logger;
|
||||
private readonly IUmbracoVersion _umbracoVersion;
|
||||
|
||||
public DatabaseUpgradeStep(DatabaseBuilder databaseBuilder, IRuntimeState runtime, ILogger logger)
|
||||
public DatabaseUpgradeStep(DatabaseBuilder databaseBuilder, IRuntimeState runtime, ILogger logger, IUmbracoVersion umbracoVersion)
|
||||
{
|
||||
_databaseBuilder = databaseBuilder;
|
||||
_runtime = runtime;
|
||||
_logger = logger;
|
||||
_umbracoVersion = umbracoVersion;
|
||||
}
|
||||
|
||||
public override Task<InstallSetupResult> ExecuteAsync(object model)
|
||||
@@ -35,7 +38,7 @@ namespace Umbraco.Web.Install.InstallSteps
|
||||
{
|
||||
_logger.Info<DatabaseUpgradeStep>("Running 'Upgrade' service");
|
||||
|
||||
var plan = new UmbracoPlan();
|
||||
var plan = new UmbracoPlan(_umbracoVersion);
|
||||
plan.AddPostMigration<ClearCsrfCookies>(); // needed when running installer (back-office)
|
||||
|
||||
var result = _databaseBuilder.UpgradeSchemaAndData(plan);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using System.Runtime.Serialization;
|
||||
using System.Web;
|
||||
using Umbraco.Core.Composing;
|
||||
using Umbraco.Core.Configuration;
|
||||
|
||||
namespace Umbraco.Web.Models
|
||||
{
|
||||
@@ -17,11 +18,11 @@ namespace Umbraco.Web.Models
|
||||
public string Url { get; set; }
|
||||
|
||||
public UpgradeCheckResponse() { }
|
||||
public UpgradeCheckResponse(string upgradeType, string upgradeComment, string upgradeUrl)
|
||||
public UpgradeCheckResponse(string upgradeType, string upgradeComment, string upgradeUrl, IUmbracoVersion umbracoVersion)
|
||||
{
|
||||
Type = upgradeType;
|
||||
Comment = upgradeComment;
|
||||
Url = upgradeUrl + "?version=" + HttpUtility.UrlEncode(Current.UmbracoVersion.Current.ToString(3));
|
||||
Url = upgradeUrl + "?version=" + HttpUtility.UrlEncode(umbracoVersion.Current.ToString(3));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user