diff --git a/src/Umbraco.Core/Configuration/Grid/GridEditorsConfig.cs b/src/Umbraco.Core/Configuration/Grid/GridEditorsConfig.cs index 389c620637..c74cb9d081 100644 --- a/src/Umbraco.Core/Configuration/Grid/GridEditorsConfig.cs +++ b/src/Umbraco.Core/Configuration/Grid/GridEditorsConfig.cs @@ -32,6 +32,8 @@ namespace Umbraco.Core.Configuration.Grid { Func> getResult = () => { + var parser = new ManifestParser(_logger, _appPlugins, _runtimeCache); + var editors = new List(); var gridConfig = Path.Combine(_configFolder.FullName, "grid.editors.config.js"); if (File.Exists(gridConfig)) @@ -40,7 +42,7 @@ namespace Umbraco.Core.Configuration.Grid { var arr = JArray.Parse(File.ReadAllText(gridConfig)); //ensure the contents parse correctly to objects - var parsed = ManifestParser.GetGridEditors(arr); + var parsed = parser.GetGridEditors(arr); editors.AddRange(parsed); } catch (Exception ex) @@ -49,7 +51,7 @@ namespace Umbraco.Core.Configuration.Grid } } - var parser = new ManifestParser(_appPlugins, _runtimeCache); + var builder = new ManifestBuilder(_runtimeCache, parser); foreach (var gridEditor in builder.GridEditors) { diff --git a/src/Umbraco.Core/Configuration/UmbracoConfig.cs b/src/Umbraco.Core/Configuration/UmbracoConfig.cs index 3cd9bab776..e36004cdf8 100644 --- a/src/Umbraco.Core/Configuration/UmbracoConfig.cs +++ b/src/Umbraco.Core/Configuration/UmbracoConfig.cs @@ -105,10 +105,7 @@ namespace Umbraco.Core.Configuration return _umbracoSettings; } - - } - /// /// Only for testing /// @@ -129,6 +126,7 @@ namespace Umbraco.Core.Configuration } return _gridConfig; + } //TODO: Add other configurations here ! } diff --git a/src/Umbraco.Core/CoreBootManager.cs b/src/Umbraco.Core/CoreBootManager.cs index 2c8ffe4f7f..ec98c7a755 100644 --- a/src/Umbraco.Core/CoreBootManager.cs +++ b/src/Umbraco.Core/CoreBootManager.cs @@ -87,10 +87,7 @@ namespace Umbraco.Core { if (_isInitialized) throw new InvalidOperationException("The boot manager has already been initialized"); - - InitializeLoggerResolver(); - InitializeProfilerResolver(); - + ProfilingLogger = ProfilingLogger?? new ProfilingLogger(LoggerResolver.Current.Logger, ProfilerResolver.Current.Profiler); _timer = ProfilingLogger.TraceDuration( @@ -165,13 +162,16 @@ namespace Umbraco.Core () => PluginManager.ResolveAssignedMapperTypes())); container.Register(); container.Register(factory => new ServiceContext( + factory.GetInstance(), factory.GetInstance(), factory.GetInstance(), factory.GetInstance(), factory.GetInstance(), factory.GetInstance(), + factory.GetInstance(), factory.GetAllInstances())); + container.Register(new PerContainerLifetime()); container.Register(factory => FileSystemProviderManager.Current.GetFileSystemProvider()); @@ -395,7 +395,7 @@ namespace Umbraco.Core // dist calls enabled, in which case we'll use the config server registrar if (UmbracoConfig.For.UmbracoSettings().DistributedCall.Enabled) { - ServerRegistrarResolver.Current = new ServerRegistrarResolver(new ConfigServerRegistrar()); + ServerRegistrarResolver.Current = new ServerRegistrarResolver(new ConfigServerRegistrar(UmbracoConfig.For.UmbracoSettings())); } else { @@ -404,15 +404,16 @@ namespace Umbraco.Core new Lazy(() => ApplicationContext.Services.ServerRegistrationService), new DatabaseServerRegistrarOptions())); } - + //by default we'll use the database server messenger with default options (no callbacks), // this will be overridden in the web startup ServerMessengerResolver.Current = new ServerMessengerResolver( - new DatabaseServerMessenger(ApplicationContext, true, new DatabaseServerMessengerOptions())); + Container, + factory => new DatabaseServerMessenger(ApplicationContext, true, new DatabaseServerMessengerOptions())); MappingResolver.Current = new MappingResolver( - ServiceProvider, ProfilingLogger.Logger, + Container, ProfilingLogger.Logger, () => PluginManager.ResolveAssignedMapperTypes()); diff --git a/src/Umbraco.Core/DatabaseContext.cs b/src/Umbraco.Core/DatabaseContext.cs index 17b274d4ba..77ef7c626d 100644 --- a/src/Umbraco.Core/DatabaseContext.cs +++ b/src/Umbraco.Core/DatabaseContext.cs @@ -589,7 +589,7 @@ namespace Umbraco.Core /// This assumes all of the previous checks are done! /// /// - internal Result UpgradeSchemaAndData(IMigrationEntryService migrationEntryService) + internal Result UpgradeSchemaAndData(IMigrationEntryService migrationEntryService, IMigrationResolver migrationResolver) { try { @@ -649,9 +649,10 @@ namespace Umbraco.Core //DO the upgrade! - var runner = new MigrationRunner(migrationEntryService, _logger, currentInstalledVersion, UmbracoVersion.GetSemanticVersion(), GlobalSettings.UmbracoMigrationName); - + var runner = new MigrationRunner(migrationResolver, migrationEntryService, _logger, currentInstalledVersion, UmbracoVersion.GetSemanticVersion(), GlobalSettings.UmbracoMigrationName); + var upgraded = runner.Execute(database, DatabaseProvider, SqlSyntax, true); + if (upgraded == false) { throw new ApplicationException("Upgrading failed, either an error occurred during the upgrade process or an event canceled the upgrade process, see log for full details"); diff --git a/src/Umbraco.Core/Persistence/Mappers/MigrationEntryMapper.cs b/src/Umbraco.Core/Persistence/Mappers/MigrationEntryMapper.cs index 5c0838ede9..d31afddbbd 100644 --- a/src/Umbraco.Core/Persistence/Mappers/MigrationEntryMapper.cs +++ b/src/Umbraco.Core/Persistence/Mappers/MigrationEntryMapper.cs @@ -1,6 +1,7 @@ using System.Collections.Concurrent; using Umbraco.Core.Models; using Umbraco.Core.Models.Rdbms; +using Umbraco.Core.Persistence.SqlSyntax; namespace Umbraco.Core.Persistence.Mappers { @@ -10,11 +11,8 @@ namespace Umbraco.Core.Persistence.Mappers { private static readonly ConcurrentDictionary PropertyInfoCacheInstance = new ConcurrentDictionary(); - //NOTE: its an internal class but the ctor must be public since we're using Activator.CreateInstance to create it - // otherwise that would fail because there is no public constructor. - public MigrationEntryMapper() + public MigrationEntryMapper(ISqlSyntaxProvider sqlSyntax) : base(sqlSyntax) { - BuildMap(); } #region Overrides of BaseMapper @@ -24,7 +22,7 @@ namespace Umbraco.Core.Persistence.Mappers get { return PropertyInfoCacheInstance; } } - internal override void BuildMap() + protected override void BuildMap() { CacheMap(src => src.Id, dto => dto.Id); CacheMap(src => src.CreateDate, dto => dto.CreateDate); @@ -34,5 +32,7 @@ namespace Umbraco.Core.Persistence.Mappers } #endregion + + } } \ No newline at end of file diff --git a/src/Umbraco.Core/Persistence/Mappers/TaskTypeMapper.cs b/src/Umbraco.Core/Persistence/Mappers/TaskTypeMapper.cs index 4399fd323b..99853b97cc 100644 --- a/src/Umbraco.Core/Persistence/Mappers/TaskTypeMapper.cs +++ b/src/Umbraco.Core/Persistence/Mappers/TaskTypeMapper.cs @@ -1,6 +1,7 @@ using System.Collections.Concurrent; using Umbraco.Core.Models; using Umbraco.Core.Models.Rdbms; +using Umbraco.Core.Persistence.SqlSyntax; namespace Umbraco.Core.Persistence.Mappers { @@ -13,11 +14,8 @@ namespace Umbraco.Core.Persistence.Mappers { private static readonly ConcurrentDictionary PropertyInfoCacheInstance = new ConcurrentDictionary(); - //NOTE: its an internal class but the ctor must be public since we're using Activator.CreateInstance to create it - // otherwise that would fail because there is no public constructor. - public TaskTypeMapper() + public TaskTypeMapper(ISqlSyntaxProvider sqlSyntax) : base(sqlSyntax) { - BuildMap(); } #region Overrides of BaseMapper @@ -27,12 +25,14 @@ namespace Umbraco.Core.Persistence.Mappers get { return PropertyInfoCacheInstance; } } - internal override void BuildMap() + protected override void BuildMap() { CacheMap(src => src.Id, dto => dto.Id); CacheMap(src => src.Alias, dto => dto.Alias); } #endregion + + } } \ No newline at end of file diff --git a/src/Umbraco.Core/Persistence/Migrations/MigrationResolver.cs b/src/Umbraco.Core/Persistence/Migrations/MigrationResolver.cs index 2b81424a21..96bd89648d 100644 --- a/src/Umbraco.Core/Persistence/Migrations/MigrationResolver.cs +++ b/src/Umbraco.Core/Persistence/Migrations/MigrationResolver.cs @@ -26,10 +26,5 @@ namespace Umbraco.Core.Persistence.Migrations { get { return Values; } } - - { - ApplicationContext.Current.DatabaseContext.SqlSyntax, - ApplicationContext.Current.ProfilingLogger.Logger - }); } } \ No newline at end of file diff --git a/src/Umbraco.Core/Persistence/Migrations/MigrationRunner.cs b/src/Umbraco.Core/Persistence/Migrations/MigrationRunner.cs index 0d4cc66ad5..9be10ce905 100644 --- a/src/Umbraco.Core/Persistence/Migrations/MigrationRunner.cs +++ b/src/Umbraco.Core/Persistence/Migrations/MigrationRunner.cs @@ -20,6 +20,7 @@ namespace Umbraco.Core.Persistence.Migrations /// public class MigrationRunner { + private readonly IMigrationResolver _resolver; private readonly IMigrationEntryService _migrationEntryService; private readonly ILogger _logger; private readonly SemVersion _currentVersion; @@ -27,28 +28,16 @@ namespace Umbraco.Core.Persistence.Migrations private readonly string _productName; private readonly IMigration[] _migrations; - - [Obsolete("Use the ctor that specifies all dependencies instead")] - public MigrationRunner(ILogger logger, Version currentVersion, Version targetVersion, string productName) - : this(logger, currentVersion, targetVersion, productName, null) - { - } - - [Obsolete("Use the ctor that specifies all dependencies instead")] - public MigrationRunner(ILogger logger, Version currentVersion, Version targetVersion, string productName, params IMigration[] migrations) - : this(ApplicationContext.Current.Services.MigrationEntryService, logger, new SemVersion(currentVersion), new SemVersion(targetVersion), productName, migrations) - { - - } - - public MigrationRunner(IMigrationEntryService migrationEntryService, ILogger logger, SemVersion currentVersion, SemVersion targetVersion, string productName, params IMigration[] migrations) + public MigrationRunner(IMigrationResolver resolver, IMigrationEntryService migrationEntryService, ILogger logger, SemVersion currentVersion, SemVersion targetVersion, string productName, params IMigration[] migrations) { + if (resolver == null) throw new ArgumentNullException("resolver"); if (migrationEntryService == null) throw new ArgumentNullException("migrationEntryService"); if (logger == null) throw new ArgumentNullException("logger"); if (currentVersion == null) throw new ArgumentNullException("currentVersion"); if (targetVersion == null) throw new ArgumentNullException("targetVersion"); Mandate.ParameterNotNullOrEmpty(productName, "productName"); + _resolver = resolver; _migrationEntryService = migrationEntryService; _logger = logger; _currentVersion = currentVersion; @@ -58,17 +47,6 @@ namespace Umbraco.Core.Persistence.Migrations _migrations = migrations.Length == 0 ? null : migrations; } - /// - /// Executes the migrations against the database. - /// - /// The PetaPoco Database, which the migrations will be run against - /// Boolean indicating whether this is an upgrade or downgrade - /// True if migrations were applied, otherwise False - public virtual bool Execute(Database database, bool isUpgrade = true) - { - return Execute(database, database.GetDatabaseProvider(), isUpgrade); - } - /// /// Executes the migrations against the database. /// diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Expressions/AlterColumnExpression.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Expressions/AlterColumnExpression.cs index 77234d1cfb..1a538666ff 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Expressions/AlterColumnExpression.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Expressions/AlterColumnExpression.cs @@ -8,7 +8,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Alter.Expressions { public AlterColumnExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { Column = new ColumnDefinition() { ModificationType = ModificationType.Alter }; } diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Expressions/AlterDefaultConstraintExpression.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Expressions/AlterDefaultConstraintExpression.cs index cd83f55a35..5595b5417a 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Expressions/AlterDefaultConstraintExpression.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Expressions/AlterDefaultConstraintExpression.cs @@ -5,7 +5,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Alter.Expressions public class AlterDefaultConstraintExpression : MigrationExpressionBase { public AlterDefaultConstraintExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { } diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Expressions/AlterTableExpression.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Expressions/AlterTableExpression.cs index b5906ed324..6524ed0655 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Expressions/AlterTableExpression.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Alter/Expressions/AlterTableExpression.cs @@ -6,7 +6,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Alter.Expressions { public AlterTableExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { } diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Create/CreateBuilder.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Create/CreateBuilder.cs index 2bf6da8ec0..f3f2f43f12 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Create/CreateBuilder.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Create/CreateBuilder.cs @@ -18,65 +18,63 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Create public CreateBuilder(IMigrationContext context, params DatabaseProviders[] databaseProviders) { - if (context == null) throw new ArgumentNullException("context"); - if (sqlSyntax == null) throw new ArgumentNullException("sqlSyntax"); - + if (context == null) throw new ArgumentNullException("context"); _context = context; _databaseProviders = databaseProviders; } public ICreateTableWithColumnSyntax Table(string tableName) { - var expression = new CreateTableExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax) { TableName = tableName }; + var expression = new CreateTableExpression(_context.CurrentDatabaseProvider, _databaseProviders, _context.SqlSyntax) { TableName = tableName }; _context.Expressions.Add(expression); return new CreateTableBuilder(_context, _databaseProviders, expression); } public ICreateColumnOnTableSyntax Column(string columnName) { - var expression = new CreateColumnExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax) { Column = { Name = columnName } }; + var expression = new CreateColumnExpression(_context.CurrentDatabaseProvider, _databaseProviders, _context.SqlSyntax) { Column = { Name = columnName } }; _context.Expressions.Add(expression); return new CreateColumnBuilder(_context, _databaseProviders, expression); } public ICreateForeignKeyFromTableSyntax ForeignKey() { - var expression = new CreateForeignKeyExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax); + var expression = new CreateForeignKeyExpression(_context.CurrentDatabaseProvider, _databaseProviders, _context.SqlSyntax); _context.Expressions.Add(expression); return new CreateForeignKeyBuilder(expression); } public ICreateForeignKeyFromTableSyntax ForeignKey(string foreignKeyName) { - var expression = new CreateForeignKeyExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax) { ForeignKey = { Name = foreignKeyName } }; + var expression = new CreateForeignKeyExpression(_context.CurrentDatabaseProvider, _databaseProviders, _context.SqlSyntax) { ForeignKey = { Name = foreignKeyName } }; _context.Expressions.Add(expression); return new CreateForeignKeyBuilder(expression); } public ICreateIndexForTableSyntax Index() { - var expression = new CreateIndexExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax); + var expression = new CreateIndexExpression(_context.CurrentDatabaseProvider, _databaseProviders, _context.SqlSyntax); _context.Expressions.Add(expression); return new CreateIndexBuilder(expression); } public ICreateIndexForTableSyntax Index(string indexName) { - var expression = new CreateIndexExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax) { Index = { Name = indexName } }; + var expression = new CreateIndexExpression(_context.CurrentDatabaseProvider, _databaseProviders, _context.SqlSyntax) { Index = { Name = indexName } }; _context.Expressions.Add(expression); return new CreateIndexBuilder(expression); } public ICreateConstraintOnTableSyntax PrimaryKey() { - var expression = new CreateConstraintExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax, ConstraintType.PrimaryKey); + var expression = new CreateConstraintExpression(_context.CurrentDatabaseProvider, _databaseProviders, _context.SqlSyntax, ConstraintType.PrimaryKey); _context.Expressions.Add(expression); return new CreateConstraintBuilder(expression); } public ICreateConstraintOnTableSyntax PrimaryKey(string primaryKeyName) { - var expression = new CreateConstraintExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax, ConstraintType.PrimaryKey); + var expression = new CreateConstraintExpression(_context.CurrentDatabaseProvider, _databaseProviders, _context.SqlSyntax, ConstraintType.PrimaryKey); expression.Constraint.ConstraintName = primaryKeyName; _context.Expressions.Add(expression); return new CreateConstraintBuilder(expression); @@ -84,14 +82,14 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Create public ICreateConstraintOnTableSyntax UniqueConstraint() { - var expression = new CreateConstraintExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax, ConstraintType.Unique); + var expression = new CreateConstraintExpression(_context.CurrentDatabaseProvider, _databaseProviders, _context.SqlSyntax, ConstraintType.Unique); _context.Expressions.Add(expression); return new CreateConstraintBuilder(expression); } public ICreateConstraintOnTableSyntax UniqueConstraint(string constraintName) { - var expression = new CreateConstraintExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax, ConstraintType.Unique); + var expression = new CreateConstraintExpression(_context.CurrentDatabaseProvider, _databaseProviders, _context.SqlSyntax, ConstraintType.Unique); expression.Constraint.ConstraintName = constraintName; _context.Expressions.Add(expression); return new CreateConstraintBuilder(expression); @@ -99,7 +97,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Create public ICreateConstraintOnTableSyntax Constraint(string constraintName) { - var expression = new CreateConstraintExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax, ConstraintType.NonUnique); + var expression = new CreateConstraintExpression(_context.CurrentDatabaseProvider, _databaseProviders, _context.SqlSyntax, ConstraintType.NonUnique); expression.Constraint.ConstraintName = constraintName; _context.Expressions.Add(expression); return new CreateConstraintBuilder(expression); diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Create/Expressions/CreateConstraintExpression.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Create/Expressions/CreateConstraintExpression.cs index a06775929b..24dd72b7db 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Create/Expressions/CreateConstraintExpression.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Create/Expressions/CreateConstraintExpression.cs @@ -7,7 +7,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Create.Expressions public class CreateConstraintExpression : MigrationExpressionBase { public CreateConstraintExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax, ConstraintType constraint) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { Constraint = new ConstraintDefinition(constraint); } diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Create/Expressions/CreateTableExpression.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Create/Expressions/CreateTableExpression.cs index 57d08b43ef..68f1da2ce7 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Create/Expressions/CreateTableExpression.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Create/Expressions/CreateTableExpression.cs @@ -10,7 +10,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Create.Expressions public CreateTableExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { Columns = new List(); } diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/DeleteBuilder.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/DeleteBuilder.cs index 947005c856..a57571262b 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/DeleteBuilder.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/DeleteBuilder.cs @@ -23,55 +23,55 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Delete public void Table(string tableName) { - var expression = new DeleteTableExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax) { TableName = tableName }; + var expression = new DeleteTableExpression(_context.CurrentDatabaseProvider, _databaseProviders, _context.SqlSyntax) { TableName = tableName }; _context.Expressions.Add(expression); } public IDeleteColumnFromTableSyntax Column(string columnName) { - var expression = new DeleteColumnExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax) {ColumnNames = {columnName}}; + var expression = new DeleteColumnExpression(_context.CurrentDatabaseProvider, _databaseProviders, _context.SqlSyntax) {ColumnNames = {columnName}}; _context.Expressions.Add(expression); return new DeleteColumnBuilder(expression); } public IDeleteForeignKeyFromTableSyntax ForeignKey() { - var expression = new DeleteForeignKeyExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax); + var expression = new DeleteForeignKeyExpression(_context.CurrentDatabaseProvider, _databaseProviders, _context.SqlSyntax); _context.Expressions.Add(expression); return new DeleteForeignKeyBuilder(expression); } public IDeleteForeignKeyOnTableSyntax ForeignKey(string foreignKeyName) { - var expression = new DeleteForeignKeyExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax) {ForeignKey = {Name = foreignKeyName}}; + var expression = new DeleteForeignKeyExpression(_context.CurrentDatabaseProvider, _databaseProviders, _context.SqlSyntax) {ForeignKey = {Name = foreignKeyName}}; _context.Expressions.Add(expression); return new DeleteForeignKeyBuilder(expression); } public IDeleteDataSyntax FromTable(string tableName) { - var expression = new DeleteDataExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax) { TableName = tableName }; + var expression = new DeleteDataExpression(_context.CurrentDatabaseProvider, _databaseProviders, _context.SqlSyntax) { TableName = tableName }; _context.Expressions.Add(expression); return new DeleteDataBuilder(expression); } public IDeleteIndexForTableSyntax Index() { - var expression = new DeleteIndexExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax); + var expression = new DeleteIndexExpression(_context.CurrentDatabaseProvider, _databaseProviders, _context.SqlSyntax); _context.Expressions.Add(expression); return new DeleteIndexBuilder(expression); } public IDeleteIndexForTableSyntax Index(string indexName) { - var expression = new DeleteIndexExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax) { Index = { Name = indexName } }; + var expression = new DeleteIndexExpression(_context.CurrentDatabaseProvider, _databaseProviders, _context.SqlSyntax) { Index = { Name = indexName } }; _context.Expressions.Add(expression); return new DeleteIndexBuilder(expression); } public IDeleteConstraintOnTableSyntax PrimaryKey(string primaryKeyName) { - var expression = new DeleteConstraintExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax, ConstraintType.PrimaryKey) + var expression = new DeleteConstraintExpression(_context.CurrentDatabaseProvider, _databaseProviders, _context.SqlSyntax, ConstraintType.PrimaryKey) { Constraint = { ConstraintName = primaryKeyName } }; @@ -81,7 +81,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Delete public IDeleteConstraintOnTableSyntax UniqueConstraint(string constraintName) { - var expression = new DeleteConstraintExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax, ConstraintType.Unique) + var expression = new DeleteConstraintExpression(_context.CurrentDatabaseProvider, _databaseProviders, _context.SqlSyntax, ConstraintType.Unique) { Constraint = { ConstraintName = constraintName } }; @@ -91,7 +91,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Delete public IDeleteDefaultConstraintOnTableSyntax DefaultConstraint() { - var expression = new DeleteDefaultConstraintExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax); + var expression = new DeleteDefaultConstraintExpression(_context.CurrentDatabaseProvider, _databaseProviders, _context.SqlSyntax); _context.Expressions.Add(expression); return new DeleteDefaultConstraintBuilder(expression); } diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteColumnExpression.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteColumnExpression.cs index 381e5c8271..f972b38fea 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteColumnExpression.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteColumnExpression.cs @@ -9,7 +9,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Delete.Expressions { public DeleteColumnExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { ColumnNames = new List(); } diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteConstraintExpression.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteConstraintExpression.cs index 21ef6bb517..97e1cf4216 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteConstraintExpression.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteConstraintExpression.cs @@ -7,7 +7,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Delete.Expressions { public DeleteConstraintExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax, ConstraintType type) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { Constraint = new ConstraintDefinition(type); } diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteDataExpression.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteDataExpression.cs index 97c601a2a1..31d11fa0f3 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteDataExpression.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteDataExpression.cs @@ -10,7 +10,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Delete.Expressions private readonly List _rows = new List(); public DeleteDataExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { } diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteDefaultConstraintExpression.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteDefaultConstraintExpression.cs index 70a74da28e..66e6dcaa9e 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteDefaultConstraintExpression.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteDefaultConstraintExpression.cs @@ -5,7 +5,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Delete.Expressions public class DeleteDefaultConstraintExpression : MigrationExpressionBase { public DeleteDefaultConstraintExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { } diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteForeignKeyExpression.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteForeignKeyExpression.cs index 97342e851c..d3a112607d 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteForeignKeyExpression.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteForeignKeyExpression.cs @@ -11,7 +11,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Delete.Expressions public DeleteForeignKeyExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { ForeignKey = new ForeignKeyDefinition(); } diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteIndexExpression.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteIndexExpression.cs index e504223669..4d4b1d1b14 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteIndexExpression.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteIndexExpression.cs @@ -7,13 +7,13 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Delete.Expressions { public DeleteIndexExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { Index = new IndexDefinition(); } public DeleteIndexExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax, IndexDefinition index) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { Index = index; } diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteTableExpression.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteTableExpression.cs index 0456091a4b..69282461ca 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteTableExpression.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Delete/Expressions/DeleteTableExpression.cs @@ -6,7 +6,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Delete.Expressions { public DeleteTableExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { } diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Execute/Expressions/ExecuteCodeStatementExpression.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Execute/Expressions/ExecuteCodeStatementExpression.cs index e5f487d15d..c5ab17db44 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Execute/Expressions/ExecuteCodeStatementExpression.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Execute/Expressions/ExecuteCodeStatementExpression.cs @@ -6,7 +6,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Execute.Expressions public class ExecuteCodeStatementExpression : MigrationExpressionBase { public ExecuteCodeStatementExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { } diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Execute/Expressions/ExecuteSqlStatementExpression.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Execute/Expressions/ExecuteSqlStatementExpression.cs index 1164ba7caa..624944e53f 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Execute/Expressions/ExecuteSqlStatementExpression.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Execute/Expressions/ExecuteSqlStatementExpression.cs @@ -6,7 +6,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Execute.Expressions { public ExecuteSqlStatementExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { } diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Expressions/CreateColumnExpression.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Expressions/CreateColumnExpression.cs index ad16da5286..e5c69762be 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Expressions/CreateColumnExpression.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Expressions/CreateColumnExpression.cs @@ -7,7 +7,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Expressions { public CreateColumnExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { Column = new ColumnDefinition { ModificationType = ModificationType.Create }; } diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Expressions/CreateForeignKeyExpression.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Expressions/CreateForeignKeyExpression.cs index 45e40e961f..71f9303c7b 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Expressions/CreateForeignKeyExpression.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Expressions/CreateForeignKeyExpression.cs @@ -6,13 +6,13 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Expressions public class CreateForeignKeyExpression : MigrationExpressionBase { public CreateForeignKeyExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax, ForeignKeyDefinition fkDef) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { ForeignKey = fkDef; } public CreateForeignKeyExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { ForeignKey = new ForeignKeyDefinition(); } diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Expressions/CreateIndexExpression.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Expressions/CreateIndexExpression.cs index 7fa38cd3ae..49f804f400 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Expressions/CreateIndexExpression.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Expressions/CreateIndexExpression.cs @@ -8,13 +8,13 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Expressions { public CreateIndexExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax, IndexDefinition index) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { Index = index; } public CreateIndexExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { Index = new IndexDefinition(); } diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/IfDatabase/IfDatabaseBuilder.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/IfDatabase/IfDatabaseBuilder.cs index e0d20c4875..85622fd14e 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/IfDatabase/IfDatabaseBuilder.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/IfDatabase/IfDatabaseBuilder.cs @@ -22,7 +22,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.IfDatabase public ICreateBuilder Create { - get { return new CreateBuilder(_context, _sqlSyntax, _databaseProviders); } + get { return new CreateBuilder(_context, _databaseProviders); } } public IExecuteBuilder Execute @@ -32,7 +32,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.IfDatabase public IDeleteBuilder Delete { - get { return new DeleteBuilder(_context, _sqlSyntax, _databaseProviders); } + get { return new DeleteBuilder(_context, _databaseProviders); } } public IRenameBuilder Rename diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Insert/Expressions/InsertDataExpression.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Insert/Expressions/InsertDataExpression.cs index 28b8c71d39..4e76887cbc 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Insert/Expressions/InsertDataExpression.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Insert/Expressions/InsertDataExpression.cs @@ -11,7 +11,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Insert.Expressions private readonly List _rows = new List(); public InsertDataExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { } diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Rename/Expressions/RenameColumnExpression.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Rename/Expressions/RenameColumnExpression.cs index 1f84401923..c99a1f95f8 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Rename/Expressions/RenameColumnExpression.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Rename/Expressions/RenameColumnExpression.cs @@ -5,7 +5,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Rename.Expressions public class RenameColumnExpression : MigrationExpressionBase { public RenameColumnExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { } diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Rename/Expressions/RenameTableExpression.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Rename/Expressions/RenameTableExpression.cs index ec60117d7e..96a28e339a 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Rename/Expressions/RenameTableExpression.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Rename/Expressions/RenameTableExpression.cs @@ -5,7 +5,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Rename.Expressions public class RenameTableExpression : MigrationExpressionBase { public RenameTableExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { } diff --git a/src/Umbraco.Core/Persistence/Migrations/Syntax/Update/Expressions/UpdateDataExpression.cs b/src/Umbraco.Core/Persistence/Migrations/Syntax/Update/Expressions/UpdateDataExpression.cs index 18bec8b938..dda76a6ba1 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Syntax/Update/Expressions/UpdateDataExpression.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Syntax/Update/Expressions/UpdateDataExpression.cs @@ -6,7 +6,7 @@ namespace Umbraco.Core.Persistence.Migrations.Syntax.Update.Expressions public class UpdateDataExpression : MigrationExpressionBase { public UpdateDataExpression(DatabaseProviders current, DatabaseProviders[] databaseProviders, ISqlSyntaxProvider sqlSyntax) - : base(current, databaseProviders, sqlSyntax) + : base(sqlSyntax, current, databaseProviders) { } diff --git a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenFourZero/EnsureContentTypeUniqueIdsAreConsistent.cs b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenFourZero/EnsureContentTypeUniqueIdsAreConsistent.cs index 20200a3230..4d017dd230 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenFourZero/EnsureContentTypeUniqueIdsAreConsistent.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenFourZero/EnsureContentTypeUniqueIdsAreConsistent.cs @@ -33,7 +33,7 @@ namespace Umbraco.Core.Persistence.Migrations.Upgrades.TargetVersionSevenFourZer .From(SqlSyntax) .InnerJoin(SqlSyntax) .On(SqlSyntax, dto => dto.NodeId, dto => dto.NodeId) - .WhereIn(x => x.NodeObjectType, objectTypes); + .WhereIn(SqlSyntax, x => x.NodeObjectType, objectTypes); var rows = Context.Database.Fetch(sql); diff --git a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenFourZero/FixListViewMediaSortOrder.cs b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenFourZero/FixListViewMediaSortOrder.cs index e1fa9e9257..00915e1947 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenFourZero/FixListViewMediaSortOrder.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenFourZero/FixListViewMediaSortOrder.cs @@ -16,7 +16,8 @@ namespace Umbraco.Core.Persistence.Migrations.Upgrades.TargetVersionSevenFourZer public override void Up() { - var mediaListviewIncludeProperties = Context.Database.Fetch(new Sql().Select("*").From(SqlSyntax).Where(x => x.Id == -9)).FirstOrDefault(); + var mediaListviewIncludeProperties = Context.Database.Fetch( + new Sql().Select("*").From(SqlSyntax).Where(SqlSyntax, x => x.Id == -9)).FirstOrDefault(); if (mediaListviewIncludeProperties != null) { if (mediaListviewIncludeProperties.Value.Contains("\"alias\":\"sort\"")) diff --git a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenThreeZero/MigrateAndRemoveTemplateMasterColumn.cs b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenThreeZero/MigrateAndRemoveTemplateMasterColumn.cs index 01db36abd9..8ef10b178f 100644 --- a/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenThreeZero/MigrateAndRemoveTemplateMasterColumn.cs +++ b/src/Umbraco.Core/Persistence/Migrations/Upgrades/TargetVersionSevenThreeZero/MigrateAndRemoveTemplateMasterColumn.cs @@ -74,7 +74,7 @@ namespace Umbraco.Core.Persistence.Migrations.Upgrades.TargetVersionSevenThreeZe Execute.Code(database => { //NOTE: we are using dynamic because we need to get the data in a column that no longer exists in the schema - var templates = database.Fetch(new Sql().Select("*").From()); + var templates = database.Fetch(new Sql().Select("*").From(SqlSyntax)); foreach (var template in templates) { var sql = string.Format(SqlSyntax.UpdateData, diff --git a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs index 2b150529b3..07d80bdcb0 100644 --- a/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/ContentRepository.cs @@ -20,6 +20,7 @@ using Umbraco.Core.Persistence.DatabaseModelDefinitions; using Umbraco.Core.Persistence.Factories; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Cache; +using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.Persistence.Mappers; using Umbraco.Core.Persistence.SqlSyntax; using Umbraco.Core.Persistence.UnitOfWork; @@ -38,8 +39,8 @@ namespace Umbraco.Core.Persistence.Repositories private readonly ContentPreviewRepository _contentPreviewRepository; private readonly ContentXmlRepository _contentXmlRepository; - public ContentRepository(IDatabaseUnitOfWork work, CacheHelper cacheHelper, ILogger logger, ISqlSyntaxProvider syntaxProvider, IContentTypeRepository contentTypeRepository, ITemplateRepository templateRepository, ITagRepository tagRepository, IContentSection contentSection) - : base(work, cacheHelper, logger, syntaxProvider, contentSection) + public ContentRepository(IDatabaseUnitOfWork work, CacheHelper cacheHelper, ILogger logger, ISqlSyntaxProvider syntaxProvider, IContentTypeRepository contentTypeRepository, ITemplateRepository templateRepository, ITagRepository tagRepository, IContentSection contentSection, IMappingResolver mappingResolver) + : base(work, cacheHelper, logger, syntaxProvider, contentSection, mappingResolver) { if (contentTypeRepository == null) throw new ArgumentNullException("contentTypeRepository"); if (templateRepository == null) throw new ArgumentNullException("templateRepository"); @@ -654,8 +655,8 @@ namespace Umbraco.Core.Persistence.Repositories var translator = new SqlTranslator(sqlClause, query); var sql = translator.Translate() .Where(SqlSyntax, x => x.Published) - .OrderBy(x => x.Level, SqlSyntax) - .OrderBy(x => x.SortOrder, SqlSyntax); + .OrderBy(SqlSyntax, x => x.Level) + .OrderBy(SqlSyntax, x => x.SortOrder); //NOTE: This doesn't allow properties to be part of the query var dtos = Database.Fetch(sql); diff --git a/src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs index 2d4e2cb638..a3698b6ec8 100644 --- a/src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/ContentTypeBaseRepository.cs @@ -34,7 +34,7 @@ namespace Umbraco.Core.Persistence.Repositories protected ContentTypeBaseRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax, IMappingResolver mappingResolver) : base(work, cache, logger, sqlSyntax, mappingResolver) { - _guidRepo = new GuidReadOnlyContentTypeBaseRepository(this, work, cache, logger, sqlSyntax); + _guidRepo = new GuidReadOnlyContentTypeBaseRepository(this, work, cache, logger, sqlSyntax, mappingResolver); } private readonly GuidReadOnlyContentTypeBaseRepository _guidRepo; @@ -65,7 +65,7 @@ namespace Umbraco.Core.Persistence.Repositories //update all descendants var descendants = this.GetByQuery( - new Query().Where(type => type.Path.StartsWith(toMove.Path + ","))); + Query.Where(type => type.Path.StartsWith(toMove.Path + ","))); foreach (var descendant in descendants) { moveInfo.Add(new MoveEventInfo(descendant, descendant.Path, descendant.ParentId)); @@ -96,7 +96,7 @@ namespace Umbraco.Core.Persistence.Repositories var translator = new SqlTranslator(sqlClause, query); var sql = translator.Translate() - .OrderBy(x => x.PropertyTypeGroupId, SqlSyntax); + .OrderBy(SqlSyntax, x => x.PropertyTypeGroupId); var dtos = Database.Fetch(new GroupPropertyTypeRelator().Map, sql); @@ -1225,8 +1225,8 @@ AND umbracoNode.id <> @id", public GuidReadOnlyContentTypeBaseRepository( ContentTypeBaseRepository parentRepo, - IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax) - : base(work, cache, logger, sqlSyntax) + IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax, IMappingResolver mappingResolver) + : base(work, cache, logger, sqlSyntax, mappingResolver) { _parentRepo = parentRepo; } diff --git a/src/Umbraco.Core/Persistence/Repositories/ContentTypeRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ContentTypeRepository.cs index 18c02f9767..a1d2e92564 100644 --- a/src/Umbraco.Core/Persistence/Repositories/ContentTypeRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/ContentTypeRepository.cs @@ -48,7 +48,7 @@ namespace Umbraco.Core.Persistence.Repositories } else { - var sql = new Sql().Select("id").From(SqlSyntax).Where(dto => dto.NodeObjectType == NodeObjectTypeId); + var sql = new Sql().Select("id").From(SqlSyntax).Where(SqlSyntax, dto => dto.NodeObjectType == NodeObjectTypeId); var allIds = Database.Fetch(sql).ToArray(); return ContentTypeQueryMapper.GetContentTypes(allIds, Database, SqlSyntax, this, _templateRepository); } @@ -59,7 +59,7 @@ namespace Umbraco.Core.Persistence.Repositories var sqlClause = GetBaseQuery(false); var translator = new SqlTranslator(sqlClause, query); var sql = translator.Translate() - .OrderBy(x => x.Text, SqlSyntax); + .OrderBy(SqlSyntax, x => x.Text); var dtos = Database.Fetch(sql); return dtos.Any() @@ -248,7 +248,7 @@ namespace Umbraco.Core.Persistence.Repositories } else { - var sql = new Sql().Select("id").From(SqlSyntax).Where(dto => dto.NodeObjectType == NodeObjectTypeId); + var sql = new Sql().Select("id").From(SqlSyntax).Where(SqlSyntax, dto => dto.NodeObjectType == NodeObjectTypeId); var allIds = Database.Fetch(sql).ToArray(); return ContentTypeQueryMapper.GetContentTypes(allIds, Database, SqlSyntax, this, _templateRepository); } diff --git a/src/Umbraco.Core/Persistence/Repositories/DataTypeDefinitionRepository.cs b/src/Umbraco.Core/Persistence/Repositories/DataTypeDefinitionRepository.cs index 041e308cc9..22db218564 100644 --- a/src/Umbraco.Core/Persistence/Repositories/DataTypeDefinitionRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/DataTypeDefinitionRepository.cs @@ -277,6 +277,8 @@ AND umbracoNode.id <> @id", #endregion + + public PreValueCollection GetPreValuesCollectionByDataTypeId(int dataTypeId) { var cached = _cacheHelper.RuntimeCache.GetCacheItemsByKeySearch(GetPrefixedCacheKey(dataTypeId)); @@ -357,8 +359,7 @@ AND umbracoNode.id <> @id", AddOrUpdate(toMove); //update all descendants - var descendants = this.GetByQuery( - new Query().Where(type => type.Path.StartsWith(toMove.Path + ","))); + var descendants = this.GetByQuery(Query.Where(type => type.Path.StartsWith(toMove.Path + ","))); foreach (var descendant in descendants) { moveInfo.Add(new MoveEventInfo(descendant, descendant.Path, descendant.ParentId)); @@ -382,7 +383,7 @@ AND umbracoNode.id <> @id", var sql = new Sql().Select("*") .From(SqlSyntax) .Where(SqlSyntax, dto => dto.DataTypeNodeId == dataType.Id) - .OrderBy(dto => dto.SortOrder, SqlSyntax); + .OrderBy(SqlSyntax, dto => dto.SortOrder); currentVals = Database.Fetch(sql).ToArray(); } diff --git a/src/Umbraco.Core/Persistence/Repositories/DictionaryRepository.cs b/src/Umbraco.Core/Persistence/Repositories/DictionaryRepository.cs index 82af6f4aaf..8c8dd2e3fa 100644 --- a/src/Umbraco.Core/Persistence/Repositories/DictionaryRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/DictionaryRepository.cs @@ -36,7 +36,7 @@ namespace Umbraco.Core.Persistence.Repositories { var sql = GetBaseQuery(false) .Where(GetBaseWhereClause(), new {Id = id}) - .OrderBy(x => x.UniqueId, SqlSyntax); + .OrderBy(SqlSyntax, x => x.UniqueId); var dto = Database.Fetch(new DictionaryLanguageTextRelator().Map, sql).FirstOrDefault(); if (dto == null) @@ -74,7 +74,7 @@ namespace Umbraco.Core.Persistence.Repositories var sqlClause = GetBaseQuery(false); var translator = new SqlTranslator(sqlClause, query); var sql = translator.Translate(); - sql.OrderBy(x => x.UniqueId, SqlSyntax); + sql.OrderBy(SqlSyntax, x => x.UniqueId); //This will be cached var allLanguages = _languageRepository.GetAll().ToArray(); @@ -251,7 +251,7 @@ namespace Umbraco.Core.Persistence.Repositories private IEnumerable GetRootDictionaryItems() { - var query = Query.Builder.Where(x => x.ParentId == null); + var query = Query.Where(x => x.ParentId == null); return GetByQuery(query); } @@ -270,12 +270,12 @@ namespace Umbraco.Core.Persistence.Repositories .Select(@group => { var sqlClause = GetBaseQuery(false) - .Where(x => x.Parent != null) + .Where(SqlSyntax, x => x.Parent != null) .Where(string.Format("{0} IN (@parentIds)", SqlSyntax.GetQuotedColumnName("parent")), new { parentIds = @group }); - var translator = new SqlTranslator(sqlClause, Query.Builder); + var translator = new SqlTranslator(sqlClause, Query); var sql = translator.Translate(); - sql.OrderBy(x => x.UniqueId, SqlSyntax); + sql.OrderBy(SqlSyntax, x => x.UniqueId); return Database.Fetch(new DictionaryLanguageTextRelator().Map, sql) .Select(x => ConvertFromDto(x, allLanguages)); diff --git a/src/Umbraco.Core/Persistence/Repositories/DomainRepository.cs b/src/Umbraco.Core/Persistence/Repositories/DomainRepository.cs index 21ba8b4baf..9f166a7e4c 100644 --- a/src/Umbraco.Core/Persistence/Repositories/DomainRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/DomainRepository.cs @@ -8,6 +8,7 @@ using Umbraco.Core.Models; using Umbraco.Core.Models.EntityBase; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence.FaultHandling; +using Umbraco.Core.Persistence.Mappers; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.SqlSyntax; using Umbraco.Core.Persistence.UnitOfWork; @@ -20,8 +21,8 @@ namespace Umbraco.Core.Persistence.Repositories { private readonly RepositoryCacheOptions _cacheOptions; - public DomainRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax) - : base(work, cache, logger, sqlSyntax) + public DomainRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax, IMappingResolver mappingResolver) + : base(work, cache, logger, sqlSyntax, mappingResolver) { //Custom cache options for better performance _cacheOptions = new RepositoryCacheOptions diff --git a/src/Umbraco.Core/Persistence/Repositories/EntityContainerRepository.cs b/src/Umbraco.Core/Persistence/Repositories/EntityContainerRepository.cs index 6fd5045e04..f8e48e78d0 100644 --- a/src/Umbraco.Core/Persistence/Repositories/EntityContainerRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/EntityContainerRepository.cs @@ -7,6 +7,7 @@ using Umbraco.Core.Models; using Umbraco.Core.Models.EntityBase; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence.Factories; +using Umbraco.Core.Persistence.Mappers; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.SqlSyntax; using Umbraco.Core.Persistence.UnitOfWork; @@ -18,8 +19,8 @@ namespace Umbraco.Core.Persistence.Repositories /// internal class EntityContainerRepository : PetaPocoRepositoryBase { - public EntityContainerRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax) - : base(work, cache, logger, sqlSyntax) + public EntityContainerRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax, IMappingResolver mappingResolver) + : base(work, cache, logger, sqlSyntax, mappingResolver) { } /// @@ -110,7 +111,7 @@ namespace Umbraco.Core.Persistence.Repositories { var nodeDto = Database.FirstOrDefault(new Sql().Select("*") .From(SqlSyntax) - .Where(dto => dto.NodeId == entity.Id && dto.NodeObjectType == entity.ContainerObjectType)); + .Where(SqlSyntax, dto => dto.NodeId == entity.Id && dto.NodeObjectType == entity.ContainerObjectType)); if (nodeDto == null) return; @@ -143,7 +144,7 @@ namespace Umbraco.Core.Persistence.Repositories // guard against duplicates var nodeDto = Database.FirstOrDefault(new Sql().Select("*") .From(SqlSyntax) - .Where(dto => dto.ParentId == entity.ParentId && dto.Text == entity.Name && dto.NodeObjectType == entity.ContainerObjectType)); + .Where(SqlSyntax, dto => dto.ParentId == entity.ParentId && dto.Text == entity.Name && dto.NodeObjectType == entity.ContainerObjectType)); if (nodeDto != null) throw new InvalidOperationException("A container with the same name already exists."); @@ -154,7 +155,7 @@ namespace Umbraco.Core.Persistence.Repositories { var parentDto = Database.FirstOrDefault(new Sql().Select("*") .From(SqlSyntax) - .Where(dto => dto.NodeId == entity.ParentId && dto.NodeObjectType == entity.ContainerObjectType)); + .Where(SqlSyntax, dto => dto.NodeId == entity.ParentId && dto.NodeObjectType == entity.ContainerObjectType)); if (parentDto == null) throw new NullReferenceException("Could not find parent container with id " + entity.ParentId); @@ -205,14 +206,14 @@ namespace Umbraco.Core.Persistence.Repositories // find container to update var nodeDto = Database.FirstOrDefault(new Sql().Select("*") .From(SqlSyntax) - .Where(dto => dto.NodeId == entity.Id && dto.NodeObjectType == entity.ContainerObjectType)); + .Where(SqlSyntax, dto => dto.NodeId == entity.Id && dto.NodeObjectType == entity.ContainerObjectType)); if (nodeDto == null) throw new InvalidOperationException("Could not find container with id " + entity.Id); // guard against duplicates var dupNodeDto = Database.FirstOrDefault(new Sql().Select("*") .From(SqlSyntax) - .Where(dto => dto.ParentId == entity.ParentId && dto.Text == entity.Name && dto.NodeObjectType == entity.ContainerObjectType)); + .Where(SqlSyntax, dto => dto.ParentId == entity.ParentId && dto.Text == entity.Name && dto.NodeObjectType == entity.ContainerObjectType)); if (dupNodeDto != null && dupNodeDto.NodeId != nodeDto.NodeId) throw new InvalidOperationException("A container with the same name already exists."); @@ -226,7 +227,7 @@ namespace Umbraco.Core.Persistence.Repositories { var parent = Database.FirstOrDefault(new Sql().Select("*") .From(SqlSyntax) - .Where(dto => dto.NodeId == entity.ParentId && dto.NodeObjectType == entity.ContainerObjectType)); + .Where(SqlSyntax, dto => dto.NodeId == entity.ParentId && dto.NodeObjectType == entity.ContainerObjectType)); if (parent == null) throw new NullReferenceException("Could not find parent container with id " + entity.ParentId); diff --git a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IDataTypeDefinitionRepository.cs b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IDataTypeDefinitionRepository.cs index 6d7265f717..cb3e4f96a6 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IDataTypeDefinitionRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IDataTypeDefinitionRepository.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using Umbraco.Core.Events; using Umbraco.Core.Models; using Umbraco.Core.Persistence.UnitOfWork; @@ -7,6 +8,7 @@ namespace Umbraco.Core.Persistence.Repositories { public interface IDataTypeDefinitionRepository : IRepositoryQueryable { + PreValueCollection GetPreValuesCollectionByDataTypeId(int dataTypeId); string GetPreValueAsString(int preValueId); diff --git a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IMediaRepository.cs b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IMediaRepository.cs index b712622e63..11a4e3566f 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IMediaRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IMediaRepository.cs @@ -9,8 +9,6 @@ namespace Umbraco.Core.Persistence.Repositories { public interface IMediaRepository : IRepositoryVersionable, IRecycleBinRepository, IDeleteMediaFilesRepository { - IMedia GetMediaByPath(string mediaPath); - /// /// Used to add/update published xml for the media item /// diff --git a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IRepositoryQueryable.cs b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IRepositoryQueryable.cs index 4eab7d58ef..5aac97c046 100644 --- a/src/Umbraco.Core/Persistence/Repositories/Interfaces/IRepositoryQueryable.cs +++ b/src/Umbraco.Core/Persistence/Repositories/Interfaces/IRepositoryQueryable.cs @@ -14,10 +14,15 @@ namespace Umbraco.Core.Persistence.Repositories public interface IRepositoryQueryable : IRepository { /// - /// Creates a new query instance + /// Returns a query instance /// Query Query { get; } + /// + /// Returns a query factory instance + /// + QueryFactory QueryFactory { get; } + /// /// Gets all entities of the specified type and query /// diff --git a/src/Umbraco.Core/Persistence/Repositories/LanguageRepository.cs b/src/Umbraco.Core/Persistence/Repositories/LanguageRepository.cs index 2f379b4587..d16cab25ca 100644 --- a/src/Umbraco.Core/Persistence/Repositories/LanguageRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/LanguageRepository.cs @@ -7,6 +7,7 @@ using Umbraco.Core.Models.EntityBase; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence.Factories; +using Umbraco.Core.Persistence.Mappers; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.SqlSyntax; using Umbraco.Core.Persistence.UnitOfWork; @@ -18,8 +19,8 @@ namespace Umbraco.Core.Persistence.Repositories /// internal class LanguageRepository : PetaPocoRepositoryBase, ILanguageRepository { - public LanguageRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax) - : base(work, cache, logger, sqlSyntax) + public LanguageRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax, IMappingResolver mappingResolver) + : base(work, cache, logger, sqlSyntax, mappingResolver) { //Custom cache options for better performance _cacheOptions = new RepositoryCacheOptions diff --git a/src/Umbraco.Core/Persistence/Repositories/MediaRepository.cs b/src/Umbraco.Core/Persistence/Repositories/MediaRepository.cs index 162ad88ca0..528e80088f 100644 --- a/src/Umbraco.Core/Persistence/Repositories/MediaRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/MediaRepository.cs @@ -15,6 +15,7 @@ using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence.DatabaseModelDefinitions; using Umbraco.Core.Persistence.Factories; +using Umbraco.Core.Persistence.Mappers; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.SqlSyntax; using Umbraco.Core.Persistence.UnitOfWork; @@ -32,15 +33,15 @@ namespace Umbraco.Core.Persistence.Repositories private readonly ContentXmlRepository _contentXmlRepository; private readonly ContentPreviewRepository _contentPreviewRepository; - public MediaRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax, IMediaTypeRepository mediaTypeRepository, ITagRepository tagRepository, IContentSection contentSection) - : base(work, cache, logger, sqlSyntax, contentSection) + public MediaRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax, IMediaTypeRepository mediaTypeRepository, ITagRepository tagRepository, IContentSection contentSection, IMappingResolver mappingResolver) + : base(work, cache, logger, sqlSyntax, contentSection, mappingResolver) { if (mediaTypeRepository == null) throw new ArgumentNullException("mediaTypeRepository"); if (tagRepository == null) throw new ArgumentNullException("tagRepository"); _mediaTypeRepository = mediaTypeRepository; _tagRepository = tagRepository; - _contentXmlRepository = new ContentXmlRepository(work, CacheHelper.CreateDisabledCacheHelper(), logger, sqlSyntax); - _contentPreviewRepository = new ContentPreviewRepository(work, CacheHelper.CreateDisabledCacheHelper(), logger, sqlSyntax); + _contentXmlRepository = new ContentXmlRepository(work, CacheHelper.CreateDisabledCacheHelper(), logger, sqlSyntax, mappingResolver); + _contentPreviewRepository = new ContentPreviewRepository(work, CacheHelper.CreateDisabledCacheHelper(), logger, sqlSyntax, mappingResolver); EnsureUniqueNaming = contentSection.EnsureUniqueNaming; } @@ -52,7 +53,7 @@ namespace Umbraco.Core.Persistence.Repositories { var sql = GetBaseQuery(false); sql.Where(GetBaseWhereClause(), new { Id = id }); - sql.OrderByDescending(x => x.VersionDate); + sql.OrderByDescending(SqlSyntax, x => x.VersionDate); var dto = Database.Fetch(sql).FirstOrDefault(); @@ -80,7 +81,7 @@ namespace Umbraco.Core.Persistence.Repositories var sqlClause = GetBaseQuery(false); var translator = new SqlTranslator(sqlClause, query); var sql = translator.Translate() - .OrderBy(x => x.SortOrder); + .OrderBy(SqlSyntax, x => x.SortOrder); return ProcessQuery(sql); } @@ -93,12 +94,12 @@ namespace Umbraco.Core.Persistence.Repositories { var sql = new Sql(); sql.Select(isCount ? "COUNT(*)" : "*") - .From() - .InnerJoin() - .On(left => left.NodeId, right => right.NodeId) - .InnerJoin() - .On(left => left.NodeId, right => right.NodeId) - .Where(x => x.NodeObjectType == NodeObjectTypeId); + .From(SqlSyntax) + .InnerJoin(SqlSyntax) + .On(SqlSyntax, left => left.NodeId, right => right.NodeId) + .InnerJoin(SqlSyntax) + .On(SqlSyntax, left => left.NodeId, right => right.NodeId) + .Where(SqlSyntax, x => x.NodeObjectType == NodeObjectTypeId); return sql; } @@ -141,7 +142,7 @@ namespace Umbraco.Core.Persistence.Repositories { var sql = GetBaseQuery(false); sql.Where("cmsContentVersion.VersionId = @VersionId", new { VersionId = versionId }); - sql.OrderByDescending(x => x.VersionDate); + sql.OrderByDescending(SqlSyntax, x => x.VersionDate); var dto = Database.Fetch(sql).FirstOrDefault(); @@ -175,10 +176,10 @@ namespace Umbraco.Core.Persistence.Repositories var mediaObjectType = Guid.Parse(Constants.ObjectTypes.Media); var subQuery = new Sql() .Select("DISTINCT cmsContentXml.nodeId") - .From() - .InnerJoin() - .On(left => left.NodeId, right => right.NodeId) - .Where(dto => dto.NodeObjectType == mediaObjectType); + .From(SqlSyntax) + .InnerJoin(SqlSyntax) + .On(SqlSyntax, left => left.NodeId, right => right.NodeId) + .Where(SqlSyntax, dto => dto.NodeObjectType == mediaObjectType); var deleteSql = SqlSyntax.GetDeleteSubquery("cmsContentXml", "nodeId", subQuery); Database.Execute(deleteSql); @@ -191,13 +192,13 @@ namespace Umbraco.Core.Persistence.Repositories var mediaObjectType = Guid.Parse(Constants.ObjectTypes.Media); var subQuery = new Sql() .Select("DISTINCT cmsContentXml.nodeId") - .From() - .InnerJoin() - .On(left => left.NodeId, right => right.NodeId) - .InnerJoin() - .On(left => left.NodeId, right => right.NodeId) - .Where(dto => dto.NodeObjectType == mediaObjectType) - .Where(dto => dto.ContentTypeId == id1); + .From(SqlSyntax) + .InnerJoin(SqlSyntax) + .On(SqlSyntax, left => left.NodeId, right => right.NodeId) + .InnerJoin(SqlSyntax) + .On(SqlSyntax, left => left.NodeId, right => right.NodeId) + .Where(SqlSyntax, dto => dto.NodeObjectType == mediaObjectType) + .Where(SqlSyntax, dto => dto.ContentTypeId == id1); var deleteSql = SqlSyntax.GetDeleteSubquery("cmsContentXml", "nodeId", subQuery); Database.Execute(deleteSql); @@ -207,8 +208,7 @@ namespace Umbraco.Core.Persistence.Repositories //now insert the data, again if something fails here, the whole transaction is reversed if (contentTypeIds == null) { - var query = Query.Builder; - RebuildXmlStructuresProcessQuery(serializer, query, tr, groupSize); + RebuildXmlStructuresProcessQuery(serializer, Query, tr, groupSize); } else { @@ -216,7 +216,7 @@ namespace Umbraco.Core.Persistence.Repositories { //copy local var id = contentTypeId; - var query = Query.Builder.Where(x => x.ContentTypeId == id && x.Trashed == false); + var query = Query.Where(x => x.ContentTypeId == id && x.Trashed == false); RebuildXmlStructuresProcessQuery(serializer, query, tr, groupSize); } } @@ -239,7 +239,7 @@ namespace Umbraco.Core.Persistence.Repositories select new ContentXmlDto { NodeId = descendant.Id, Xml = xml.ToDataString() }).ToArray(); //bulk insert it into the database - Database.BulkInsertRecords(xmlItems, tr); + Database.BulkInsertRecords(SqlSyntax, xmlItems, tr); processed += xmlItems.Length; @@ -553,8 +553,8 @@ namespace Umbraco.Core.Persistence.Repositories var sql = new Sql(); sql.Select("*") - .From() - .Where(x => x.NodeObjectType == NodeObjectTypeId && x.ParentId == parentId && x.Text.StartsWith(nodeName)); + .From(SqlSyntax) + .Where(SqlSyntax, x => x.NodeObjectType == NodeObjectTypeId && x.ParentId == parentId && x.Text.StartsWith(nodeName)); int uniqueNumber = 1; var currentName = nodeName; diff --git a/src/Umbraco.Core/Persistence/Repositories/MediaTypeRepository.cs b/src/Umbraco.Core/Persistence/Repositories/MediaTypeRepository.cs index 3616a145ce..1bf84c55d4 100644 --- a/src/Umbraco.Core/Persistence/Repositories/MediaTypeRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/MediaTypeRepository.cs @@ -9,6 +9,7 @@ using Umbraco.Core.Models.EntityBase; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence.Factories; +using Umbraco.Core.Persistence.Mappers; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.SqlSyntax; using Umbraco.Core.Persistence.UnitOfWork; @@ -22,8 +23,8 @@ namespace Umbraco.Core.Persistence.Repositories internal class MediaTypeRepository : ContentTypeBaseRepository, IMediaTypeRepository { - public MediaTypeRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax) - : base(work, cache, logger, sqlSyntax) + public MediaTypeRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax, IMappingResolver mappingResolver) + : base(work, cache, logger, sqlSyntax, mappingResolver) { } @@ -44,7 +45,7 @@ namespace Umbraco.Core.Persistence.Repositories } else { - var sql = new Sql().Select("id").From(SqlSyntax).Where(dto => dto.NodeObjectType == NodeObjectTypeId); + var sql = new Sql().Select("id").From(SqlSyntax).Where(SqlSyntax, dto => dto.NodeObjectType == NodeObjectTypeId); var allIds = Database.Fetch(sql).ToArray(); return ContentTypeQueryMapper.GetMediaTypes(allIds, Database, SqlSyntax, this); } @@ -55,7 +56,7 @@ namespace Umbraco.Core.Persistence.Repositories var sqlClause = GetBaseQuery(false); var translator = new SqlTranslator(sqlClause, query); var sql = translator.Translate() - .OrderBy(x => x.Text, SqlSyntax); + .OrderBy(SqlSyntax, x => x.Text); var dtos = Database.Fetch(sql); return dtos.Any() @@ -83,7 +84,7 @@ namespace Umbraco.Core.Persistence.Repositories .From(SqlSyntax) .InnerJoin(SqlSyntax) .On(SqlSyntax, left => left.NodeId, right => right.NodeId) - .Where(x => x.NodeObjectType == NodeObjectTypeId); + .Where(SqlSyntax, x => x.NodeObjectType == NodeObjectTypeId); return sql; } @@ -167,7 +168,7 @@ namespace Umbraco.Core.Persistence.Repositories } else { - var sql = new Sql().Select("id").From(SqlSyntax).Where(dto => dto.NodeObjectType == NodeObjectTypeId); + var sql = new Sql().Select("id").From(SqlSyntax).Where(SqlSyntax, dto => dto.NodeObjectType == NodeObjectTypeId); var allIds = Database.Fetch(sql).ToArray(); return ContentTypeQueryMapper.GetMediaTypes(allIds, Database, SqlSyntax, this); } diff --git a/src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs b/src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs index ac5529b523..e1b2b877e3 100644 --- a/src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/MemberRepository.cs @@ -20,6 +20,7 @@ using Umbraco.Core.Persistence.Relators; using Umbraco.Core.Persistence.SqlSyntax; using Umbraco.Core.Persistence.UnitOfWork; using Umbraco.Core.Dynamics; +using Umbraco.Core.Persistence.Mappers; namespace Umbraco.Core.Persistence.Repositories { @@ -34,16 +35,16 @@ namespace Umbraco.Core.Persistence.Repositories private readonly ContentXmlRepository _contentXmlRepository; private readonly ContentPreviewRepository _contentPreviewRepository; - public MemberRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax, IMemberTypeRepository memberTypeRepository, IMemberGroupRepository memberGroupRepository, ITagRepository tagRepository, IContentSection contentSection) - : base(work, cache, logger, sqlSyntax, contentSection) + public MemberRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax, IMemberTypeRepository memberTypeRepository, IMemberGroupRepository memberGroupRepository, ITagRepository tagRepository, IContentSection contentSection, IMappingResolver mappingResolver) + : base(work, cache, logger, sqlSyntax, contentSection, mappingResolver) { if (memberTypeRepository == null) throw new ArgumentNullException("memberTypeRepository"); if (tagRepository == null) throw new ArgumentNullException("tagRepository"); _memberTypeRepository = memberTypeRepository; _tagRepository = tagRepository; _memberGroupRepository = memberGroupRepository; - _contentXmlRepository = new ContentXmlRepository(work, CacheHelper.CreateDisabledCacheHelper(), logger, sqlSyntax); - _contentPreviewRepository = new ContentPreviewRepository(work, CacheHelper.CreateDisabledCacheHelper(), logger, sqlSyntax); + _contentXmlRepository = new ContentXmlRepository(work, CacheHelper.CreateDisabledCacheHelper(), logger, sqlSyntax, mappingResolver); + _contentPreviewRepository = new ContentPreviewRepository(work, CacheHelper.CreateDisabledCacheHelper(), logger, sqlSyntax, mappingResolver); } #region Overrides of RepositoryBase @@ -52,7 +53,7 @@ namespace Umbraco.Core.Persistence.Repositories { var sql = GetBaseQuery(false); sql.Where(GetBaseWhereClause(), new { Id = id }); - sql.OrderByDescending(x => x.VersionDate); + sql.OrderByDescending(SqlSyntax, x => x.VersionDate); var dto = Database.Fetch(sql).FirstOrDefault(); @@ -93,7 +94,7 @@ namespace Umbraco.Core.Persistence.Repositories var sql = translator.Translate(); baseQuery.Append(new Sql("WHERE umbracoNode.id IN (" + sql.SQL + ")", sql.Arguments)) - .OrderBy(x => x.SortOrder); + .OrderBy(SqlSyntax, x => x.SortOrder); return ProcessQuery(baseQuery); } @@ -101,7 +102,7 @@ namespace Umbraco.Core.Persistence.Repositories { var translator = new SqlTranslator(baseQuery, query); var sql = translator.Translate() - .OrderBy(x => x.SortOrder); + .OrderBy(SqlSyntax, x => x.SortOrder); return ProcessQuery(sql); } @@ -116,18 +117,18 @@ namespace Umbraco.Core.Persistence.Repositories { var sql = new Sql(); sql.Select(isCount ? "COUNT(*)" : "*") - .From() - .InnerJoin() - .On(left => left.NodeId, right => right.NodeId) - .InnerJoin() - .On(left => left.NodeId, right => right.NodeId) + .From(SqlSyntax) + .InnerJoin(SqlSyntax) + .On(SqlSyntax, left => left.NodeId, right => right.NodeId) + .InnerJoin(SqlSyntax) + .On(SqlSyntax, left => left.NodeId, right => right.NodeId) //We're joining the type so we can do a query against the member type - not sure if this adds much overhead or not? // the execution plan says it doesn't so we'll go with that and in that case, it might be worth joining the content // types by default on the document and media repo's so we can query by content type there too. - .InnerJoin().On(left => left.NodeId, right => right.ContentTypeId) - .InnerJoin() - .On(left => left.NodeId, right => right.NodeId) - .Where(x => x.NodeObjectType == NodeObjectTypeId); + .InnerJoin(SqlSyntax).On(SqlSyntax, left => left.NodeId, right => right.ContentTypeId) + .InnerJoin(SqlSyntax) + .On(SqlSyntax, left => left.NodeId, right => right.NodeId) + .Where(SqlSyntax, x => x.NodeObjectType == NodeObjectTypeId); return sql; } @@ -141,16 +142,16 @@ namespace Umbraco.Core.Persistence.Repositories { var sql = new Sql(); sql.Select("DISTINCT(umbracoNode.id)") - .From() - .InnerJoin().On(left => left.NodeId, right => right.NodeId) - .InnerJoin().On(left => left.NodeId, right => right.ContentTypeId) - .InnerJoin().On(left => left.NodeId, right => right.NodeId) - .InnerJoin().On(left => left.NodeId, right => right.NodeId) - .LeftJoin().On(left => left.ContentTypeId, right => right.ContentTypeId) - .LeftJoin().On(left => left.DataTypeId, right => right.DataTypeId) - .LeftJoin().On(left => left.PropertyTypeId, right => right.Id) + .From(SqlSyntax) + .InnerJoin(SqlSyntax).On(SqlSyntax, left => left.NodeId, right => right.NodeId) + .InnerJoin(SqlSyntax).On(SqlSyntax, left => left.NodeId, right => right.ContentTypeId) + .InnerJoin(SqlSyntax).On(SqlSyntax, left => left.NodeId, right => right.NodeId) + .InnerJoin(SqlSyntax).On(SqlSyntax, left => left.NodeId, right => right.NodeId) + .LeftJoin(SqlSyntax).On(SqlSyntax, left => left.ContentTypeId, right => right.ContentTypeId) + .LeftJoin(SqlSyntax).On(SqlSyntax, left => left.DataTypeId, right => right.DataTypeId) + .LeftJoin(SqlSyntax).On(SqlSyntax, left => left.PropertyTypeId, right => right.Id) .Append("AND cmsPropertyData.versionId = cmsContentVersion.VersionId") - .Where(x => x.NodeObjectType == NodeObjectTypeId); + .Where(SqlSyntax, x => x.NodeObjectType == NodeObjectTypeId); return sql; } @@ -390,10 +391,10 @@ namespace Umbraco.Core.Persistence.Repositories var memberObjectType = Guid.Parse(Constants.ObjectTypes.Member); var subQuery = new Sql() .Select("DISTINCT cmsContentXml.nodeId") - .From() - .InnerJoin() - .On(left => left.NodeId, right => right.NodeId) - .Where(dto => dto.NodeObjectType == memberObjectType); + .From(SqlSyntax) + .InnerJoin(SqlSyntax) + .On(SqlSyntax, left => left.NodeId, right => right.NodeId) + .Where(SqlSyntax, dto => dto.NodeObjectType == memberObjectType); var deleteSql = SqlSyntax.GetDeleteSubquery("cmsContentXml", "nodeId", subQuery); Database.Execute(deleteSql); @@ -406,13 +407,13 @@ namespace Umbraco.Core.Persistence.Repositories var memberObjectType = Guid.Parse(Constants.ObjectTypes.Member); var subQuery = new Sql() .Select("DISTINCT cmsContentXml.nodeId") - .From() - .InnerJoin() - .On(left => left.NodeId, right => right.NodeId) - .InnerJoin() - .On(left => left.NodeId, right => right.NodeId) - .Where(dto => dto.NodeObjectType == memberObjectType) - .Where(dto => dto.ContentTypeId == id1); + .From(SqlSyntax) + .InnerJoin(SqlSyntax) + .On(SqlSyntax, left => left.NodeId, right => right.NodeId) + .InnerJoin(SqlSyntax) + .On(SqlSyntax, left => left.NodeId, right => right.NodeId) + .Where(SqlSyntax, dto => dto.NodeObjectType == memberObjectType) + .Where(SqlSyntax, dto => dto.ContentTypeId == id1); var deleteSql = SqlSyntax.GetDeleteSubquery("cmsContentXml", "nodeId", subQuery); Database.Execute(deleteSql); @@ -422,7 +423,7 @@ namespace Umbraco.Core.Persistence.Repositories //now insert the data, again if something fails here, the whole transaction is reversed if (contentTypeIds == null) { - var query = Query.Builder; + var query = Query; RebuildXmlStructuresProcessQuery(serializer, query, tr, groupSize); } else @@ -431,7 +432,7 @@ namespace Umbraco.Core.Persistence.Repositories { //copy local var id = contentTypeId; - var query = Query.Builder.Where(x => x.ContentTypeId == id && x.Trashed == false); + var query = Query.Where(x => x.ContentTypeId == id && x.Trashed == false); RebuildXmlStructuresProcessQuery(serializer, query, tr, groupSize); } } @@ -454,7 +455,7 @@ namespace Umbraco.Core.Persistence.Repositories select new ContentXmlDto { NodeId = descendant.Id, Xml = xml.ToDataString() }).ToArray(); //bulk insert it into the database - Database.BulkInsertRecords(xmlItems, tr); + Database.BulkInsertRecords(SqlSyntax, xmlItems, tr); processed += xmlItems.Length; @@ -466,7 +467,7 @@ namespace Umbraco.Core.Persistence.Repositories { var sql = GetBaseQuery(false); sql.Where("cmsContentVersion.VersionId = @VersionId", new { VersionId = versionId }); - sql.OrderByDescending(x => x.VersionDate); + sql.OrderByDescending(SqlSyntax, x => x.VersionDate); var dto = Database.Fetch(sql).FirstOrDefault(); @@ -501,12 +502,12 @@ namespace Umbraco.Core.Persistence.Repositories public IEnumerable FindMembersInRole(string roleName, string usernameToMatch, StringPropertyMatchType matchType = StringPropertyMatchType.StartsWith) { //get the group id - var grpQry = new Query().Where(group => group.Name.Equals(roleName)); + var grpQry = QueryFactory.Create().Where(group => group.Name.Equals(roleName)); var memberGroup = _memberGroupRepository.GetByQuery(grpQry).FirstOrDefault(); if (memberGroup == null) return Enumerable.Empty(); // get the members by username - var query = new Query(); + var query = Query; switch (matchType) { case StringPropertyMatchType.Exact: @@ -536,8 +537,8 @@ namespace Umbraco.Core.Persistence.Repositories foreach (var batch in inGroups) { var memberIdBatch = batch.Select(x => x.Id); - var sql = new Sql().Select("*").From() - .Where(dto => dto.MemberGroup == memberGroup.Id) + var sql = new Sql().Select("*").From(SqlSyntax) + .Where(SqlSyntax, dto => dto.MemberGroup == memberGroup.Id) .Where("Member IN (@memberIds)", new { memberIds = memberIdBatch }); var memberIdsInGroup = Database.Fetch(sql) .Select(x => x.Member).ToArray(); @@ -556,18 +557,18 @@ namespace Umbraco.Core.Persistence.Repositories /// public IEnumerable GetByMemberGroup(string groupName) { - var grpQry = new Query().Where(group => group.Name.Equals(groupName)); + var grpQry = QueryFactory.Create().Where(group => group.Name.Equals(groupName)); var memberGroup = _memberGroupRepository.GetByQuery(grpQry).FirstOrDefault(); if (memberGroup == null) return Enumerable.Empty(); - var subQuery = new Sql().Select("Member").From().Where(dto => dto.MemberGroup == memberGroup.Id); + var subQuery = new Sql().Select("Member").From(SqlSyntax).Where(SqlSyntax, dto => dto.MemberGroup == memberGroup.Id); var sql = GetBaseQuery(false) //TODO: An inner join would be better, though I've read that the query optimizer will always turn a // subquery with an IN clause into an inner join anyways. .Append(new Sql("WHERE umbracoNode.id IN (" + subQuery.SQL + ")", subQuery.Arguments)) - .OrderByDescending(x => x.VersionDate) - .OrderBy(x => x.SortOrder); + .OrderByDescending(SqlSyntax, x => x.VersionDate) + .OrderBy(SqlSyntax, x => x.SortOrder); return ProcessQuery(sql); @@ -578,8 +579,8 @@ namespace Umbraco.Core.Persistence.Repositories var sql = new Sql(); sql.Select("COUNT(*)") - .From() - .Where(x => x.LoginName == username); + .From(SqlSyntax) + .Where(SqlSyntax, x => x.LoginName == username); return Database.ExecuteScalar(sql) > 0; } diff --git a/src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs b/src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs index 91b6e67cf9..c85db5a4e2 100644 --- a/src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/MemberTypeRepository.cs @@ -8,6 +8,7 @@ using Umbraco.Core.Models; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence.Factories; +using Umbraco.Core.Persistence.Mappers; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.Relators; using Umbraco.Core.Persistence.SqlSyntax; @@ -21,8 +22,8 @@ namespace Umbraco.Core.Persistence.Repositories internal class MemberTypeRepository : ContentTypeBaseRepository, IMemberTypeRepository { - public MemberTypeRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax) - : base(work, cache, logger, sqlSyntax) + public MemberTypeRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax, IMappingResolver mappingResolver) + : base(work, cache, logger, sqlSyntax, mappingResolver) { } diff --git a/src/Umbraco.Core/Persistence/Repositories/MigrationEntryRepository.cs b/src/Umbraco.Core/Persistence/Repositories/MigrationEntryRepository.cs index 19df777666..aa07241d4c 100644 --- a/src/Umbraco.Core/Persistence/Repositories/MigrationEntryRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/MigrationEntryRepository.cs @@ -6,6 +6,7 @@ using Umbraco.Core.Logging; using Umbraco.Core.Models; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence.Factories; +using Umbraco.Core.Persistence.Mappers; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.SqlSyntax; using Umbraco.Core.Persistence.UnitOfWork; @@ -14,8 +15,8 @@ namespace Umbraco.Core.Persistence.Repositories { internal class MigrationEntryRepository : PetaPocoRepositoryBase, IMigrationEntryRepository { - public MigrationEntryRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax) - : base(work, cache, logger, sqlSyntax) + public MigrationEntryRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax, IMappingResolver mappingResolver) + : base(work, cache, logger, sqlSyntax, mappingResolver) { } diff --git a/src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs b/src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs index 752cab4143..4a6a7e7a30 100644 --- a/src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/PermissionRepository.cs @@ -184,7 +184,7 @@ namespace Umbraco.Core.Persistence.Repositories UserId = userId }).ToArray(); - _unitOfWork.Database.BulkInsertRecords(actions, trans); + _unitOfWork.Database.BulkInsertRecords(_sqlSyntax, actions, trans); trans.Complete(); diff --git a/src/Umbraco.Core/Persistence/Repositories/PetaPocoRepositoryBase.cs b/src/Umbraco.Core/Persistence/Repositories/PetaPocoRepositoryBase.cs index 72b50619d9..5d7cfa48a2 100644 --- a/src/Umbraco.Core/Persistence/Repositories/PetaPocoRepositoryBase.cs +++ b/src/Umbraco.Core/Persistence/Repositories/PetaPocoRepositoryBase.cs @@ -20,10 +20,14 @@ namespace Umbraco.Core.Persistence.Repositories { public ISqlSyntaxProvider SqlSyntax { get; private set; } + private QueryFactory _queryFactory; /// /// Returns the Query factory /// - public QueryFactory QueryFactory { get; private set; } + public override QueryFactory QueryFactory + { + get { return _queryFactory; } + } /// /// Used to create a new query instance @@ -39,7 +43,7 @@ namespace Umbraco.Core.Persistence.Repositories { if (sqlSyntax == null) throw new ArgumentNullException("sqlSyntax"); SqlSyntax = sqlSyntax; - QueryFactory = new QueryFactory(SqlSyntax, mappingResolver); + _queryFactory = new QueryFactory(SqlSyntax, mappingResolver); } /// diff --git a/src/Umbraco.Core/Persistence/Repositories/RecycleBinRepository.cs b/src/Umbraco.Core/Persistence/Repositories/RecycleBinRepository.cs index be1f03a73f..e7b2d664b9 100644 --- a/src/Umbraco.Core/Persistence/Repositories/RecycleBinRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/RecycleBinRepository.cs @@ -8,7 +8,7 @@ using Umbraco.Core.IO; using Umbraco.Core.Logging; using Umbraco.Core.Models.EntityBase; using Umbraco.Core.Models.Rdbms; - +using Umbraco.Core.Persistence.Mappers; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.SqlSyntax; using Umbraco.Core.Persistence.UnitOfWork; @@ -18,8 +18,8 @@ namespace Umbraco.Core.Persistence.Repositories internal abstract class RecycleBinRepository : VersionableRepositoryBase, IRecycleBinRepository where TEntity : class, IUmbracoEntity { - protected RecycleBinRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax, IContentSection contentSection) - : base(work, cache, logger, sqlSyntax, contentSection) + protected RecycleBinRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax, IContentSection contentSection, IMappingResolver mappingResolver) + : base(work, cache, logger, sqlSyntax, contentSection, mappingResolver) { } @@ -27,7 +27,7 @@ namespace Umbraco.Core.Persistence.Repositories public virtual IEnumerable GetEntitiesInRecycleBin() { - return GetByQuery(new Query().Where(entity => entity.Trashed)); + return GetByQuery(Query.Where(entity => entity.Trashed)); } /// @@ -116,10 +116,10 @@ namespace Umbraco.Core.Persistence.Repositories //Alias: Constants.Conventions.Media.File and PropertyEditorAlias: Constants.PropertyEditors.UploadField var sql = new Sql(); sql.Select("DISTINCT(dataNvarchar)") - .From() - .InnerJoin().On(left => left.NodeId, right => right.NodeId) - .InnerJoin().On(left => left.PropertyTypeId, right => right.Id) - .InnerJoin().On(left => left.DataTypeId, right => right.DataTypeId) + .From(SqlSyntax) + .InnerJoin(SqlSyntax).On(SqlSyntax, left => left.NodeId, right => right.NodeId) + .InnerJoin(SqlSyntax).On(SqlSyntax, left => left.PropertyTypeId, right => right.Id) + .InnerJoin(SqlSyntax).On(SqlSyntax, left => left.DataTypeId, right => right.DataTypeId) .Where("umbracoNode.trashed = '1' AND umbracoNode.nodeObjectType = @NodeObjectType AND dataNvarchar IS NOT NULL AND (cmsPropertyType.Alias = @FileAlias OR cmsDataType.propertyEditorAlias = @PropertyEditorAlias)", new { FileAlias = Constants.Conventions.Media.File, NodeObjectType = NodeObjectTypeId, PropertyEditorAlias = Constants.PropertyEditors.UploadFieldAlias }); diff --git a/src/Umbraco.Core/Persistence/Repositories/RepositoryBase.cs b/src/Umbraco.Core/Persistence/Repositories/RepositoryBase.cs index f5aceef299..172619e2f7 100644 --- a/src/Umbraco.Core/Persistence/Repositories/RepositoryBase.cs +++ b/src/Umbraco.Core/Persistence/Repositories/RepositoryBase.cs @@ -92,6 +92,11 @@ namespace Umbraco.Core.Persistence.Repositories /// public abstract Query Query { get; } + /// + /// Returns a query factory instance + /// + public abstract QueryFactory QueryFactory { get; } + #region IRepository Members /// diff --git a/src/Umbraco.Core/Persistence/Repositories/ServerRegistrationRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ServerRegistrationRepository.cs index 20d3c38042..2926525f48 100644 --- a/src/Umbraco.Core/Persistence/Repositories/ServerRegistrationRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/ServerRegistrationRepository.cs @@ -7,6 +7,7 @@ using Umbraco.Core.Models; using Umbraco.Core.Models.EntityBase; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence.Factories; +using Umbraco.Core.Persistence.Mappers; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.SqlSyntax; using Umbraco.Core.Persistence.UnitOfWork; @@ -17,8 +18,8 @@ namespace Umbraco.Core.Persistence.Repositories { private readonly ICacheProvider _staticCache; - public ServerRegistrationRepository(IDatabaseUnitOfWork work, ICacheProvider staticCache, ILogger logger, ISqlSyntaxProvider sqlSyntax) - : base(work, CacheHelper.CreateDisabledCacheHelper(), logger, sqlSyntax) + public ServerRegistrationRepository(IDatabaseUnitOfWork work, ICacheProvider staticCache, ILogger logger, ISqlSyntaxProvider sqlSyntax, IMappingResolver mappingResolver) + : base(work, CacheHelper.CreateDisabledCacheHelper(), logger, sqlSyntax, mappingResolver) { _staticCache = staticCache; } diff --git a/src/Umbraco.Core/Persistence/Repositories/TagRepository.cs b/src/Umbraco.Core/Persistence/Repositories/TagRepository.cs index 8b76330dbe..a62d98fa1f 100644 --- a/src/Umbraco.Core/Persistence/Repositories/TagRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/TagRepository.cs @@ -8,6 +8,7 @@ using Umbraco.Core.Models.EntityBase; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence.Factories; +using Umbraco.Core.Persistence.Mappers; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.SqlSyntax; using Umbraco.Core.Persistence.UnitOfWork; @@ -16,8 +17,8 @@ namespace Umbraco.Core.Persistence.Repositories { internal class TagRepository : PetaPocoRepositoryBase, ITagRepository { - internal TagRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax) - : base(work, cache, logger, sqlSyntax) + internal TagRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax, IMappingResolver mappingResolver) + : base(work, cache, logger, sqlSyntax, mappingResolver) { } @@ -175,7 +176,7 @@ namespace Umbraco.Core.Persistence.Repositories .On(SqlSyntax, left => left.Id, right => right.PropertyTypeId) .InnerJoin(SqlSyntax) .On(SqlSyntax, left => left.NodeId, right => right.NodeId) - .Where(dto => dto.UniqueId == key); + .Where(SqlSyntax, dto => dto.UniqueId == key); return CreateTaggedEntityCollection(Database.Fetch(sql)).FirstOrDefault(); } @@ -193,7 +194,7 @@ namespace Umbraco.Core.Persistence.Repositories .On(SqlSyntax, left => left.Id, right => right.PropertyTypeId) .InnerJoin(SqlSyntax) .On(SqlSyntax, left => left.NodeId, right => right.NodeId) - .Where(dto => dto.NodeId == id); + .Where(SqlSyntax, dto => dto.NodeId == id); return CreateTaggedEntityCollection(Database.Fetch(sql)).FirstOrDefault(); } @@ -211,13 +212,13 @@ namespace Umbraco.Core.Persistence.Repositories .On(SqlSyntax, left => left.Id, right => right.PropertyTypeId) .InnerJoin(SqlSyntax) .On(SqlSyntax, left => left.NodeId, right => right.NodeId) - .Where(dto => dto.Group == tagGroup); + .Where(SqlSyntax, dto => dto.Group == tagGroup); if (objectType != TaggableObjectTypes.All) { var nodeObjectType = GetNodeObjectType(objectType); sql = sql - .Where(dto => dto.NodeObjectType == nodeObjectType); + .Where(SqlSyntax, dto => dto.NodeObjectType == nodeObjectType); } return CreateTaggedEntityCollection( @@ -237,18 +238,18 @@ namespace Umbraco.Core.Persistence.Repositories .On(SqlSyntax, left => left.Id, right => right.PropertyTypeId) .InnerJoin(SqlSyntax) .On(SqlSyntax, left => left.NodeId, right => right.NodeId) - .Where(dto => dto.Tag == tag); + .Where(SqlSyntax, dto => dto.Tag == tag); if (objectType != TaggableObjectTypes.All) { var nodeObjectType = GetNodeObjectType(objectType); sql = sql - .Where(dto => dto.NodeObjectType == nodeObjectType); + .Where(SqlSyntax, dto => dto.NodeObjectType == nodeObjectType); } if (tagGroup.IsNullOrWhiteSpace() == false) { - sql = sql.Where(dto => dto.Group == tagGroup); + sql = sql.Where(SqlSyntax, dto => dto.Group == tagGroup); } return CreateTaggedEntityCollection( @@ -279,7 +280,7 @@ namespace Umbraco.Core.Persistence.Repositories { var nodeObjectType = GetNodeObjectType(objectType); sql = sql - .Where(dto => dto.NodeObjectType == nodeObjectType); + .Where(SqlSyntax, dto => dto.NodeObjectType == nodeObjectType); } sql = ApplyGroupFilterToTagsQuery(sql, group); @@ -296,7 +297,7 @@ namespace Umbraco.Core.Persistence.Repositories sql = ApplyRelationshipJoinToTagsQuery(sql); sql = sql - .Where(dto => dto.NodeId == contentId); + .Where(SqlSyntax, dto => dto.NodeId == contentId); sql = ApplyGroupFilterToTagsQuery(sql, group); @@ -310,7 +311,7 @@ namespace Umbraco.Core.Persistence.Repositories sql = ApplyRelationshipJoinToTagsQuery(sql); sql = sql - .Where(dto => dto.UniqueId == contentId); + .Where(SqlSyntax, dto => dto.UniqueId == contentId); sql = ApplyGroupFilterToTagsQuery(sql, group); @@ -326,8 +327,8 @@ namespace Umbraco.Core.Persistence.Repositories sql = sql .InnerJoin(SqlSyntax) .On(SqlSyntax, left => left.Id, right => right.PropertyTypeId) - .Where(dto => dto.NodeId == contentId) - .Where(dto => dto.Alias == propertyTypeAlias); + .Where(SqlSyntax, dto => dto.NodeId == contentId) + .Where(SqlSyntax, dto => dto.Alias == propertyTypeAlias); sql = ApplyGroupFilterToTagsQuery(sql, group); @@ -343,8 +344,8 @@ namespace Umbraco.Core.Persistence.Repositories sql = sql .InnerJoin(SqlSyntax) .On(SqlSyntax, left => left.Id, right => right.PropertyTypeId) - .Where(dto => dto.UniqueId == contentId) - .Where(dto => dto.Alias == propertyTypeAlias); + .Where(SqlSyntax, dto => dto.UniqueId == contentId) + .Where(SqlSyntax, dto => dto.Alias == propertyTypeAlias); sql = ApplyGroupFilterToTagsQuery(sql, group); @@ -383,7 +384,7 @@ namespace Umbraco.Core.Persistence.Repositories { if (@group.IsNullOrWhiteSpace() == false) { - sql = sql.Where(dto => dto.Group == group); + sql = sql.Where(SqlSyntax, dto => dto.Group == group); } return sql; diff --git a/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs b/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs index 2ea6d79d43..65b0e87201 100644 --- a/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs +++ b/src/Umbraco.Core/Persistence/Repositories/TemplateRepository.cs @@ -13,6 +13,7 @@ using Umbraco.Core.Models.EntityBase; using Umbraco.Core.Models.Rdbms; using Umbraco.Core.Persistence.Factories; +using Umbraco.Core.Persistence.Mappers; using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.SqlSyntax; using Umbraco.Core.Persistence.UnitOfWork; @@ -34,8 +35,8 @@ namespace Umbraco.Core.Persistence.Repositories private readonly MasterPageHelper _masterPageHelper; private readonly RepositoryCacheOptions _cacheOptions; - internal TemplateRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax, IFileSystem masterpageFileSystem, IFileSystem viewFileSystem, ITemplatesSection templateConfig) - : base(work, cache, logger, sqlSyntax) + internal TemplateRepository(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax, IFileSystem masterpageFileSystem, IFileSystem viewFileSystem, ITemplatesSection templateConfig, IMappingResolver mappingResolver) + : base(work, cache, logger, sqlSyntax, mappingResolver) { _masterpagesFileSystem = masterpageFileSystem; _viewsFileSystem = viewFileSystem; @@ -67,7 +68,7 @@ namespace Umbraco.Core.Persistence.Repositories protected override ITemplate PerformGet(int id) { - var sql = GetBaseQuery(false).Where(x => x.NodeId == id); + var sql = GetBaseQuery(false).Where(SqlSyntax, x => x.NodeId == id); var result = Database.Fetch(sql).FirstOrDefault(); if (result == null) return null; @@ -88,7 +89,7 @@ namespace Umbraco.Core.Persistence.Repositories } else { - sql.Where(x => x.NodeObjectType == NodeObjectTypeId); + sql.Where(SqlSyntax, x => x.NodeObjectType == NodeObjectTypeId); } var dtos = Database.Fetch(sql); @@ -137,7 +138,7 @@ namespace Umbraco.Core.Persistence.Repositories .From(SqlSyntax) .InnerJoin(SqlSyntax) .On(SqlSyntax, left => left.NodeId, right => right.NodeId) - .Where(x => x.NodeObjectType == NodeObjectTypeId); + .Where(SqlSyntax, x => x.NodeObjectType == NodeObjectTypeId); return sql; } @@ -479,7 +480,7 @@ namespace Umbraco.Core.Persistence.Repositories public ITemplate Get(string alias) { - var sql = GetBaseQuery(false).Where(x => x.Alias == alias); + var sql = GetBaseQuery(false).Where(SqlSyntax, x => x.Alias == alias); var dto = Database.Fetch(sql).FirstOrDefault(); @@ -510,11 +511,11 @@ namespace Umbraco.Core.Persistence.Repositories var sql = GetBaseQuery(false); if (masterTemplateId <= 0) { - sql.Where(x => x.ParentId <= 0); + sql.Where(SqlSyntax, x => x.ParentId <= 0); } else { - sql.Where(x => x.ParentId == masterTemplateId); + sql.Where(SqlSyntax, x => x.ParentId == masterTemplateId); } var dtos = Database.Fetch(sql).ToArray(); @@ -529,16 +530,16 @@ namespace Umbraco.Core.Persistence.Repositories var sql = GetBaseQuery(false); if (alias.IsNullOrWhiteSpace()) { - sql.Where(x => x.ParentId <= 0); + sql.Where(SqlSyntax, x => x.ParentId <= 0); } else { //unfortunately SQLCE doesn't support scalar subqueries in the where clause, otherwise we could have done this // in a single query, now we have to lookup the path to acheive the same thing - var parent = Database.ExecuteScalar(new Sql().Select("nodeId").From(SqlSyntax).Where(dto => dto.Alias == alias)); + var parent = Database.ExecuteScalar(new Sql().Select("nodeId").From(SqlSyntax).Where(SqlSyntax, dto => dto.Alias == alias)); if (parent.HasValue == false) return Enumerable.Empty(); - sql.Where(x => x.ParentId == parent.Value); + sql.Where(SqlSyntax, x => x.ParentId == parent.Value); } var dtos = Database.Fetch(sql).ToArray(); @@ -560,7 +561,7 @@ namespace Umbraco.Core.Persistence.Repositories .From(SqlSyntax) .InnerJoin(SqlSyntax) .On(SqlSyntax, dto => dto.NodeId, dto => dto.NodeId) - .Where(dto => dto.NodeId == masterTemplateId)); + .Where(SqlSyntax, dto => dto.NodeId == masterTemplateId)); if (path.IsNullOrWhiteSpace()) return Enumerable.Empty(); @@ -798,7 +799,7 @@ namespace Umbraco.Core.Persistence.Repositories private bool AliasAlreadExists(ITemplate template) { - var sql = GetBaseQuery(true).Where(x => x.Alias == template.Alias && x.NodeId != template.Id); + var sql = GetBaseQuery(true).Where(SqlSyntax, x => x.Alias == template.Alias && x.NodeId != template.Id); var count = Database.ExecuteScalar(sql); return count > 0; } diff --git a/src/Umbraco.Core/Persistence/Repositories/VersionableRepositoryBase.cs b/src/Umbraco.Core/Persistence/Repositories/VersionableRepositoryBase.cs index 56b0b63ad5..f0b6d22ad5 100644 --- a/src/Umbraco.Core/Persistence/Repositories/VersionableRepositoryBase.cs +++ b/src/Umbraco.Core/Persistence/Repositories/VersionableRepositoryBase.cs @@ -22,6 +22,7 @@ using Umbraco.Core.PropertyEditors; using Umbraco.Core.Services; using Umbraco.Core.Dynamics; using Umbraco.Core.IO; +using Umbraco.Core.Persistence.Mappers; namespace Umbraco.Core.Persistence.Repositories { @@ -30,8 +31,8 @@ namespace Umbraco.Core.Persistence.Repositories { private readonly IContentSection _contentSection; - protected VersionableRepositoryBase(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax, IContentSection contentSection) - : base(work, cache, logger, sqlSyntax) + protected VersionableRepositoryBase(IDatabaseUnitOfWork work, CacheHelper cache, ILogger logger, ISqlSyntaxProvider sqlSyntax, IContentSection contentSection, IMappingResolver mappingResolver) + : base(work, cache, logger, sqlSyntax, mappingResolver) { _contentSection = contentSection; } diff --git a/src/Umbraco.Core/Persistence/RepositoryFactory.cs b/src/Umbraco.Core/Persistence/RepositoryFactory.cs index faad2bd1fa..139615874e 100644 --- a/src/Umbraco.Core/Persistence/RepositoryFactory.cs +++ b/src/Umbraco.Core/Persistence/RepositoryFactory.cs @@ -3,7 +3,8 @@ using System; using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.IO; using Umbraco.Core.Logging; - +using Umbraco.Core.Persistence.Mappers; +using Umbraco.Core.Persistence.Querying; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.SqlSyntax; using Umbraco.Core.Persistence.UnitOfWork; @@ -19,77 +20,60 @@ namespace Umbraco.Core.Persistence private readonly ISqlSyntaxProvider _sqlSyntax; private readonly CacheHelper _cacheHelper; private readonly IUmbracoSettingsSection _settings; + private readonly IMappingResolver _mappingResolver; #region Ctors - public RepositoryFactory(CacheHelper cacheHelper, ILogger logger, ISqlSyntaxProvider sqlSyntax, IUmbracoSettingsSection settings) + public RepositoryFactory(CacheHelper cacheHelper, ILogger logger, ISqlSyntaxProvider sqlSyntax, IUmbracoSettingsSection settings, IMappingResolver mappingResolver) { if (cacheHelper == null) throw new ArgumentNullException("cacheHelper"); if (logger == null) throw new ArgumentNullException("logger"); //if (sqlSyntax == null) throw new ArgumentNullException("sqlSyntax"); if (settings == null) throw new ArgumentNullException("settings"); + if (mappingResolver == null) throw new ArgumentNullException("mappingResolver"); _cacheHelper = cacheHelper; _logger = logger; _sqlSyntax = sqlSyntax; _settings = settings; + _mappingResolver = mappingResolver; } - [Obsolete("Use the ctor specifying all dependencies instead")] - public RepositoryFactory() - : this(ApplicationContext.Current.ApplicationCache, LoggerResolver.Current.Logger, SqlSyntaxContext.SqlSyntaxProvider, UmbracoConfig.For.UmbracoSettings()) - { - } + - [Obsolete("Use the ctor specifying all dependencies instead")] - public RepositoryFactory(CacheHelper cacheHelper) - : this(cacheHelper, LoggerResolver.Current.Logger, SqlSyntaxContext.SqlSyntaxProvider, UmbracoConfig.For.UmbracoSettings()) - { - } - - [Obsolete("Use the ctor specifying all dependencies instead, NOTE: disableAllCache has zero effect")] - public RepositoryFactory(bool disableAllCache, CacheHelper cacheHelper) - : this(cacheHelper, LoggerResolver.Current.Logger, SqlSyntaxContext.SqlSyntaxProvider, UmbracoConfig.For.UmbracoSettings()) - { - if (cacheHelper == null) throw new ArgumentNullException("cacheHelper"); - _cacheHelper = cacheHelper; - } - - [Obsolete("Use the ctor specifying all dependencies instead")] - public RepositoryFactory(bool disableAllCache) - : this(disableAllCache ? CacheHelper.CreateDisabledCacheHelper() : ApplicationContext.Current.ApplicationCache, LoggerResolver.Current.Logger, SqlSyntaxContext.SqlSyntaxProvider, UmbracoConfig.For.UmbracoSettings()) - { - } - - #endregion + internal virtual NotificationsRepository CreateNotificationsRepository(IDatabaseUnitOfWork uow) + { + return new NotificationsRepository(uow, _sqlSyntax); + } + public virtual IExternalLoginRepository CreateExternalLoginRepository(IDatabaseUnitOfWork uow) { return new ExternalLoginRepository(uow, _cacheHelper, - _logger, _sqlSyntax); + _logger, _sqlSyntax, _mappingResolver); } public virtual IPublicAccessRepository CreatePublicAccessRepository(IDatabaseUnitOfWork uow) { return new PublicAccessRepository(uow, _cacheHelper, - _logger, _sqlSyntax); + _logger, _sqlSyntax, _mappingResolver); } public virtual ITaskRepository CreateTaskRepository(IDatabaseUnitOfWork uow) { return new TaskRepository(uow, CacheHelper.CreateDisabledCacheHelper(), //never cache - _logger, _sqlSyntax); + _logger, _sqlSyntax, _mappingResolver); } public virtual IAuditRepository CreateAuditRepository(IDatabaseUnitOfWork uow) { return new AuditRepository(uow, CacheHelper.CreateDisabledCacheHelper(), //never cache - _logger, _sqlSyntax); + _logger, _sqlSyntax, _mappingResolver); } public virtual ITagRepository CreateTagRepository(IDatabaseUnitOfWork uow) @@ -109,7 +93,7 @@ namespace Umbraco.Core.Persistence CreateContentTypeRepository(uow), CreateTemplateRepository(uow), CreateTagRepository(uow), - _settings.Content) + _settings.Content, _mappingResolver) { EnsureUniqueNaming = _settings.Content.EnsureUniqueNaming }; @@ -121,7 +105,7 @@ namespace Umbraco.Core.Persistence uow, _cacheHelper, _logger, _sqlSyntax, - CreateTemplateRepository(uow)); + CreateTemplateRepository(uow), _mappingResolver); } public virtual IDataTypeDefinitionRepository CreateDataTypeDefinitionRepository(IDatabaseUnitOfWork uow) @@ -131,7 +115,7 @@ namespace Umbraco.Core.Persistence _cacheHelper, _cacheHelper, _logger, _sqlSyntax, - CreateContentTypeRepository(uow)); + CreateContentTypeRepository(uow), _mappingResolver); } public virtual IDictionaryRepository CreateDictionaryRepository(IDatabaseUnitOfWork uow) @@ -141,7 +125,7 @@ namespace Umbraco.Core.Persistence _cacheHelper, _logger, _sqlSyntax, - CreateLanguageRepository(uow)); + CreateLanguageRepository(uow), _mappingResolver); } public virtual ILanguageRepository CreateLanguageRepository(IDatabaseUnitOfWork uow) @@ -149,7 +133,7 @@ namespace Umbraco.Core.Persistence return new LanguageRepository( uow, _cacheHelper, - _logger, _sqlSyntax); + _logger, _sqlSyntax, _mappingResolver); } public virtual IMediaRepository CreateMediaRepository(IDatabaseUnitOfWork uow) @@ -160,7 +144,7 @@ namespace Umbraco.Core.Persistence _logger, _sqlSyntax, CreateMediaTypeRepository(uow), CreateTagRepository(uow), - _settings.Content); + _settings.Content, _mappingResolver); } public virtual IMediaTypeRepository CreateMediaTypeRepository(IDatabaseUnitOfWork uow) @@ -168,7 +152,7 @@ namespace Umbraco.Core.Persistence return new MediaTypeRepository( uow, _cacheHelper, - _logger, _sqlSyntax); + _logger, _sqlSyntax, _mappingResolver); } public virtual IRelationRepository CreateRelationRepository(IDatabaseUnitOfWork uow) @@ -177,7 +161,7 @@ namespace Umbraco.Core.Persistence uow, CacheHelper.CreateDisabledCacheHelper(), //never cache _logger, _sqlSyntax, - CreateRelationTypeRepository(uow)); + CreateRelationTypeRepository(uow), _mappingResolver); } public virtual IRelationTypeRepository CreateRelationTypeRepository(IDatabaseUnitOfWork uow) @@ -185,7 +169,7 @@ namespace Umbraco.Core.Persistence return new RelationTypeRepository( uow, CacheHelper.CreateDisabledCacheHelper(), //never cache - _logger, _sqlSyntax); + _logger, _sqlSyntax, _mappingResolver); } public virtual IScriptRepository CreateScriptRepository(IUnitOfWork uow) @@ -223,7 +207,7 @@ namespace Umbraco.Core.Persistence return new MigrationEntryRepository( uow, CacheHelper.CreateDisabledCacheHelper(), //never cache - _logger, _sqlSyntax); + _logger, _sqlSyntax, _mappingResolver); } public virtual IServerRegistrationRepository CreateServerRegistrationRepository(IDatabaseUnitOfWork uow) @@ -231,7 +215,7 @@ namespace Umbraco.Core.Persistence return new ServerRegistrationRepository( uow, _cacheHelper.StaticCache, - _logger, _sqlSyntax); + _logger, _sqlSyntax, _mappingResolver); } public virtual IUserTypeRepository CreateUserTypeRepository(IDatabaseUnitOfWork uow) @@ -240,7 +224,7 @@ namespace Umbraco.Core.Persistence uow, //There's not many user types but we query on users all the time so the result needs to be cached _cacheHelper, - _logger, _sqlSyntax); + _logger, _sqlSyntax, _mappingResolver); } public virtual IUserRepository CreateUserRepository(IDatabaseUnitOfWork uow) @@ -250,14 +234,14 @@ namespace Umbraco.Core.Persistence //Need to cache users - we look up user information more than anything in the back office! _cacheHelper, _logger, _sqlSyntax, - CreateUserTypeRepository(uow)); + CreateUserTypeRepository(uow), _mappingResolver); } internal virtual IMacroRepository CreateMacroRepository(IDatabaseUnitOfWork uow) { return new MacroRepository(uow, _cacheHelper, - _logger, _sqlSyntax); + _logger, _sqlSyntax, _mappingResolver); } public virtual IMemberRepository CreateMemberRepository(IDatabaseUnitOfWork uow) @@ -269,14 +253,14 @@ namespace Umbraco.Core.Persistence CreateMemberTypeRepository(uow), CreateMemberGroupRepository(uow), CreateTagRepository(uow), - _settings.Content); + _settings.Content, _mappingResolver); } public virtual IMemberTypeRepository CreateMemberTypeRepository(IDatabaseUnitOfWork uow) { return new MemberTypeRepository(uow, _cacheHelper, - _logger, _sqlSyntax); + _logger, _sqlSyntax, _mappingResolver); } public virtual IMemberGroupRepository CreateMemberGroupRepository(IDatabaseUnitOfWork uow) @@ -284,24 +268,24 @@ namespace Umbraco.Core.Persistence return new MemberGroupRepository(uow, _cacheHelper, _logger, _sqlSyntax, - _cacheHelper); + _cacheHelper, _mappingResolver); } public virtual IEntityRepository CreateEntityRepository(IDatabaseUnitOfWork uow) { - return new EntityRepository(uow); + return new EntityRepository(uow, _sqlSyntax, _mappingResolver); } public virtual IDomainRepository CreateDomainRepository(IDatabaseUnitOfWork uow) { - return new DomainRepository(uow, _cacheHelper, _logger, _sqlSyntax); + return new DomainRepository(uow, _cacheHelper, _logger, _sqlSyntax, _mappingResolver); } public ITaskTypeRepository CreateTaskTypeRepository(IDatabaseUnitOfWork uow) { return new TaskTypeRepository(uow, CacheHelper.CreateDisabledCacheHelper(), //never cache - _logger, _sqlSyntax); + _logger, _sqlSyntax, _mappingResolver); } internal virtual EntityContainerRepository CreateEntityContainerRepository(IDatabaseUnitOfWork uow) @@ -309,7 +293,7 @@ namespace Umbraco.Core.Persistence return new EntityContainerRepository( uow, _cacheHelper, - _logger, _sqlSyntax); + _logger, _sqlSyntax, _mappingResolver); } } } \ No newline at end of file diff --git a/src/Umbraco.Core/Services/ContentService.cs b/src/Umbraco.Core/Services/ContentService.cs index e2cfbe6125..1605b86b4c 100644 --- a/src/Umbraco.Core/Services/ContentService.cs +++ b/src/Umbraco.Core/Services/ContentService.cs @@ -46,7 +46,8 @@ namespace Umbraco.Core.Services IEventMessagesFactory eventMessagesFactory, IPublishingStrategy publishingStrategy, IDataTypeService dataTypeService, - IUserService userService) + IUserService userService, + IEnumerable urlSegmentProviders) : base(provider, repositoryFactory, logger, eventMessagesFactory) { if (publishingStrategy == null) throw new ArgumentNullException("publishingStrategy"); diff --git a/src/Umbraco.Core/Services/ContentTypeService.cs b/src/Umbraco.Core/Services/ContentTypeService.cs index b431fe79b2..0406636116 100644 --- a/src/Umbraco.Core/Services/ContentTypeService.cs +++ b/src/Umbraco.Core/Services/ContentTypeService.cs @@ -382,7 +382,7 @@ namespace Umbraco.Core.Services { var found = GetContentType(id); if (found == null) return Enumerable.Empty(); - var query = Query.Builder.Where(x => x.ParentId == found.Id); + var query = QueryFactory.Create().Where(x => x.ParentId == found.Id); var contentTypes = repository.GetByQuery(query); return contentTypes; } @@ -414,7 +414,7 @@ namespace Umbraco.Core.Services { var found = GetContentType(id); if (found == null) return false; - var query = Query.Builder.Where(x => x.ParentId == found.Id); + var query = QueryFactory.Create().Where(x => x.ParentId == found.Id); int count = repository.Count(query); return count > 0; } @@ -766,7 +766,7 @@ namespace Umbraco.Core.Services { var found = GetMediaType(id); if (found == null) return Enumerable.Empty(); - var query = Query.Builder.Where(x => x.ParentId == found.Id); + var query = QueryFactory.Create().Where(x => x.ParentId == found.Id); var contentTypes = repository.GetByQuery(query); return contentTypes; } @@ -798,7 +798,7 @@ namespace Umbraco.Core.Services { var found = GetMediaType(id); if (found == null) return false; - var query = Query.Builder.Where(x => x.ParentId == found.Id); + var query = QueryFactory.Create().Where(x => x.ParentId == found.Id); int count = repository.Count(query); return count > 0; } diff --git a/src/Umbraco.Core/Services/DataTypeService.cs b/src/Umbraco.Core/Services/DataTypeService.cs index bd505ec283..5453c4f51a 100644 --- a/src/Umbraco.Core/Services/DataTypeService.cs +++ b/src/Umbraco.Core/Services/DataTypeService.cs @@ -119,7 +119,7 @@ namespace Umbraco.Core.Services { using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork())) { - return repository.GetByQuery(new Query().Where(x => x.Name == name)).FirstOrDefault(); + return repository.GetByQuery(QueryFactory.Create().Where(x => x.Name == name)).FirstOrDefault(); } } @@ -145,9 +145,8 @@ namespace Umbraco.Core.Services { using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork())) { - var query = Query.Builder.Where(x => x.Key == id); + var query = QueryFactory.Create().Where(x => x.Key == id); var definitions = repository.GetByQuery(query); - return definitions.FirstOrDefault(); } } @@ -173,9 +172,8 @@ namespace Umbraco.Core.Services { using (var repository = RepositoryFactory.CreateDataTypeDefinitionRepository(UowProvider.GetUnitOfWork())) { - var query = Query.Builder.Where(x => x.PropertyEditorAlias == propertyEditorAlias); + var query = QueryFactory.Create().Where(x => x.PropertyEditorAlias == propertyEditorAlias); var definitions = repository.GetByQuery(query); - return definitions; } } @@ -477,27 +475,6 @@ namespace Umbraco.Core.Services Audit(AuditType.Delete, string.Format("Delete DataTypeDefinition performed by user"), userId, dataTypeDefinition.Id); } - /// - /// Gets the specified by it's unique ID - /// - /// Id of the DataType, which corresponds to the Guid Id of the control - /// object - [Obsolete("IDataType is obsolete and is no longer used, it will be removed from the codebase in future versions")] - public IDataType GetDataTypeById(Guid id) - { - return DataTypesResolver.Current.GetById(id); - } - - /// - /// Gets a complete list of all registered 's - /// - /// An enumerable list of objects - [Obsolete("IDataType is obsolete and is no longer used, it will be removed from the codebase in future versions")] - public IEnumerable GetAllDataTypes() - { - return DataTypesResolver.Current.DataTypes; - } - private void Audit(AuditType type, string message, int userId, int objectId) { var uow = UowProvider.GetUnitOfWork(); diff --git a/src/Umbraco.Core/Services/EntityService.cs b/src/Umbraco.Core/Services/EntityService.cs index 257416d054..60334293be 100644 --- a/src/Umbraco.Core/Services/EntityService.cs +++ b/src/Umbraco.Core/Services/EntityService.cs @@ -85,7 +85,10 @@ namespace Umbraco.Core.Services case UmbracoObjectTypes.Member: case UmbracoObjectTypes.DataType: case UmbracoObjectTypes.DocumentTypeContainer: - return uow.Database.ExecuteScalar(new Sql().Select("id").From().Where(dto => dto.UniqueId == key)); + return uow.Database.ExecuteScalar( + new Sql().Select("id") + .From(SqlSyntax) + .Where(SqlSyntax, dto => dto.UniqueId == key)); case UmbracoObjectTypes.RecycleBin: case UmbracoObjectTypes.Stylesheet: case UmbracoObjectTypes.MemberGroup: @@ -123,7 +126,10 @@ namespace Umbraco.Core.Services case UmbracoObjectTypes.DocumentType: case UmbracoObjectTypes.Member: case UmbracoObjectTypes.DataType: - return uow.Database.ExecuteScalar(new Sql().Select("uniqueID").From().Where(dto => dto.NodeId == id)); + return uow.Database.ExecuteScalar( + new Sql().Select("uniqueID") + .From(SqlSyntax) + .Where(SqlSyntax, dto => dto.NodeId == id)); case UmbracoObjectTypes.RecycleBin: case UmbracoObjectTypes.Stylesheet: case UmbracoObjectTypes.MemberGroup: @@ -317,7 +323,7 @@ namespace Umbraco.Core.Services { using (var repository = RepositoryFactory.CreateEntityRepository(UowProvider.GetUnitOfWork())) { - var query = Query.Builder.Where(x => x.ParentId == parentId); + var query = QueryFactory.Create().Where(x => x.ParentId == parentId); var contents = repository.GetByQuery(query); return contents; @@ -335,7 +341,7 @@ namespace Umbraco.Core.Services var objectTypeId = umbracoObjectType.GetGuid(); using (var repository = RepositoryFactory.CreateEntityRepository(UowProvider.GetUnitOfWork())) { - var query = Query.Builder.Where(x => x.ParentId == parentId); + var query = QueryFactory.Create().Where(x => x.ParentId == parentId); var contents = repository.GetByQuery(query, objectTypeId); return contents; @@ -353,7 +359,7 @@ namespace Umbraco.Core.Services { var entity = repository.Get(id); var pathMatch = entity.Path + ","; - var query = Query.Builder.Where(x => x.Path.StartsWith(pathMatch) && x.Id != id); + var query = QueryFactory.Create().Where(x => x.Path.StartsWith(pathMatch) && x.Id != id); var entities = repository.GetByQuery(query); return entities; @@ -372,7 +378,7 @@ namespace Umbraco.Core.Services using (var repository = RepositoryFactory.CreateEntityRepository(UowProvider.GetUnitOfWork())) { var entity = repository.Get(id); - var query = Query.Builder.Where(x => x.Path.StartsWith(entity.Path) && x.Id != id); + var query = QueryFactory.Create().Where(x => x.Path.StartsWith(entity.Path) && x.Id != id); var entities = repository.GetByQuery(query, objectTypeId); return entities; @@ -389,7 +395,7 @@ namespace Umbraco.Core.Services var objectTypeId = umbracoObjectType.GetGuid(); using (var repository = RepositoryFactory.CreateEntityRepository(UowProvider.GetUnitOfWork())) { - var query = Query.Builder.Where(x => x.ParentId == -1); + var query = QueryFactory.Create().Where(x => x.ParentId == -1); var entities = repository.GetByQuery(query, objectTypeId); return entities; @@ -486,7 +492,7 @@ namespace Umbraco.Core.Services { using (var uow = UowProvider.GetUnitOfWork()) { - var sql = new Sql().Select("nodeObjectType").From().Where(x => x.NodeId == id); + var sql = new Sql().Select("nodeObjectType").From(SqlSyntax).Where(SqlSyntax, x => x.NodeId == id); var nodeObjectTypeId = uow.Database.ExecuteScalar(sql); var objectTypeId = nodeObjectTypeId; return UmbracoObjectTypesExtensions.GetUmbracoObjectType(objectTypeId); @@ -502,7 +508,7 @@ namespace Umbraco.Core.Services { using (var uow = UowProvider.GetUnitOfWork()) { - var sql = new Sql().Select("nodeObjectType").From().Where(x => x.UniqueId == key); + var sql = new Sql().Select("nodeObjectType").From(SqlSyntax).Where(SqlSyntax, x => x.UniqueId == key); var nodeObjectTypeId = uow.Database.ExecuteScalar(sql); var objectTypeId = nodeObjectTypeId; return UmbracoObjectTypesExtensions.GetUmbracoObjectType(objectTypeId); diff --git a/src/Umbraco.Core/Services/FileService.cs b/src/Umbraco.Core/Services/FileService.cs index 6067ccd479..31d5f48c3b 100644 --- a/src/Umbraco.Core/Services/FileService.cs +++ b/src/Umbraco.Core/Services/FileService.cs @@ -317,7 +317,7 @@ namespace Umbraco.Core.Services { using (var repository = _repositoryFactory.CreateTemplateRepository(_dataUowProvider.GetUnitOfWork())) { - var query = Query.Builder.Where(x => x.Key == id); + var query = _repositoryFactory.QueryFactory.Create().Where(x => x.Key == id); return repository.GetByQuery(query).SingleOrDefault(); } } diff --git a/src/Umbraco.Core/Services/LocalizationService.cs b/src/Umbraco.Core/Services/LocalizationService.cs index 6d6cf0c101..73de5d6153 100644 --- a/src/Umbraco.Core/Services/LocalizationService.cs +++ b/src/Umbraco.Core/Services/LocalizationService.cs @@ -148,7 +148,7 @@ namespace Umbraco.Core.Services { using (var repository = RepositoryFactory.CreateDictionaryRepository(UowProvider.GetUnitOfWork())) { - var query = Query.Builder.Where(x => x.ParentId == parentId); + var query = QueryFactory.Create().Where(x => x.ParentId == parentId); var items = repository.GetByQuery(query); return items; @@ -176,7 +176,7 @@ namespace Umbraco.Core.Services { using (var repository = RepositoryFactory.CreateDictionaryRepository(UowProvider.GetUnitOfWork())) { - var query = Query.Builder.Where(x => x.ParentId == null); + var query = QueryFactory.Create().Where(x => x.ParentId == null); var items = repository.GetByQuery(query); return items; diff --git a/src/Umbraco.Core/Services/MacroService.cs b/src/Umbraco.Core/Services/MacroService.cs index 49853eab81..54e21af364 100644 --- a/src/Umbraco.Core/Services/MacroService.cs +++ b/src/Umbraco.Core/Services/MacroService.cs @@ -36,21 +36,12 @@ namespace Umbraco.Core.Services if (string.IsNullOrEmpty(macro.ScriptPath) == false) { - //we need to check if the file path saved is a virtual path starting with ~/Views/MacroPartials, if so then this is - //a partial view macro, not a script macro - //we also check if the file exists in ~/App_Plugins/[Packagename]/Views/MacroPartials, if so then it is also a partial view. - return (macro.ScriptPath.InvariantStartsWith(SystemDirectories.MvcViews + "/MacroPartials/") - || (Regex.IsMatch(macro.ScriptPath, "~/App_Plugins/.+?/Views/MacroPartials", RegexOptions.Compiled | RegexOptions.IgnoreCase))) - ? MacroTypes.PartialView - : MacroTypes.Script; + return MacroTypes.PartialView; } if (string.IsNullOrEmpty(macro.ControlType) == false && macro.ControlType.InvariantContains(".ascx")) return MacroTypes.UserControl; - if (string.IsNullOrEmpty(macro.ControlType) == false && string.IsNullOrEmpty(macro.ControlAssembly) == false) - return MacroTypes.CustomControl; - return MacroTypes.Unknown; } @@ -63,8 +54,7 @@ namespace Umbraco.Core.Services { using (var repository = RepositoryFactory.CreateMacroRepository(UowProvider.GetUnitOfWork())) { - var q = new Query(); - q.Where(macro => macro.Alias == alias); + var q = repository.Query.Where(macro => macro.Alias == alias); return repository.GetByQuery(q).FirstOrDefault(); } } diff --git a/src/Umbraco.Core/Services/RepositoryService.cs b/src/Umbraco.Core/Services/RepositoryService.cs index 88807f0291..ff34564e2d 100644 --- a/src/Umbraco.Core/Services/RepositoryService.cs +++ b/src/Umbraco.Core/Services/RepositoryService.cs @@ -2,6 +2,8 @@ using System; using Umbraco.Core.Events; using Umbraco.Core.Logging; using Umbraco.Core.Persistence; +using Umbraco.Core.Persistence.Querying; +using Umbraco.Core.Persistence.SqlSyntax; using Umbraco.Core.Persistence.UnitOfWork; namespace Umbraco.Core.Services @@ -15,7 +17,7 @@ namespace Umbraco.Core.Services protected IEventMessagesFactory EventMessagesFactory { get; private set; } protected RepositoryFactory RepositoryFactory { get; private set; } protected IDatabaseUnitOfWorkProvider UowProvider { get; private set; } - + protected RepositoryService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, ILogger logger, IEventMessagesFactory eventMessagesFactory) { if (provider == null) throw new ArgumentNullException("provider"); diff --git a/src/Umbraco.Core/Services/ServiceContext.cs b/src/Umbraco.Core/Services/ServiceContext.cs index f8a78aed3d..d137c24939 100644 --- a/src/Umbraco.Core/Services/ServiceContext.cs +++ b/src/Umbraco.Core/Services/ServiceContext.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using log4net; using Umbraco.Core.Logging; using System.IO; @@ -9,6 +10,7 @@ using Umbraco.Core.Persistence.UnitOfWork; using Umbraco.Core.Publishing; using umbraco.interfaces; using Umbraco.Core.Events; +using Umbraco.Core.Strings; namespace Umbraco.Core.Services { @@ -157,6 +159,7 @@ namespace Umbraco.Core.Services /// /// /// + /// public ServiceContext( RepositoryFactory repositoryFactory, IDatabaseUnitOfWorkProvider dbUnitOfWorkProvider, @@ -164,7 +167,8 @@ namespace Umbraco.Core.Services BasePublishingStrategy publishingStrategy, CacheHelper cache, ILogger logger, - IEventMessagesFactory eventMessagesFactory) + IEventMessagesFactory eventMessagesFactory, + IEnumerable urlSegmentProviders) { if (repositoryFactory == null) throw new ArgumentNullException("repositoryFactory"); if (dbUnitOfWorkProvider == null) throw new ArgumentNullException("dbUnitOfWorkProvider"); @@ -176,7 +180,8 @@ namespace Umbraco.Core.Services BuildServiceCache(dbUnitOfWorkProvider, fileUnitOfWorkProvider, publishingStrategy, cache, repositoryFactory, - logger, eventMessagesFactory); + logger, eventMessagesFactory, + urlSegmentProviders); } /// @@ -189,7 +194,8 @@ namespace Umbraco.Core.Services CacheHelper cache, RepositoryFactory repositoryFactory, ILogger logger, - IEventMessagesFactory eventMessagesFactory) + IEventMessagesFactory eventMessagesFactory, + IEnumerable urlSegmentProviders) { var provider = dbUnitOfWorkProvider; var fileProvider = fileUnitOfWorkProvider; diff --git a/src/Umbraco.Core/Services/UserService.cs b/src/Umbraco.Core/Services/UserService.cs index 55d7dd9742..11fba92013 100644 --- a/src/Umbraco.Core/Services/UserService.cs +++ b/src/Umbraco.Core/Services/UserService.cs @@ -202,7 +202,7 @@ namespace Umbraco.Core.Services { using (var repository = RepositoryFactory.CreateUserRepository(UowProvider.GetUnitOfWork())) { - var query = Query.Builder.Where(x => x.Email.Equals(email)); + var query = QueryFactory.Create().Where(x => x.Email.Equals(email)); var user = repository.GetByQuery(query).FirstOrDefault(); return user; @@ -218,7 +218,7 @@ namespace Umbraco.Core.Services { using (var repository = RepositoryFactory.CreateUserRepository(UowProvider.GetUnitOfWork())) { - var query = Query.Builder.Where(x => x.Username.Equals(username)); + var query = QueryFactory.Create().Where(x => x.Username.Equals(username)); var user = repository.GetByQuery(query).FirstOrDefault(); return user; } @@ -376,7 +376,7 @@ namespace Umbraco.Core.Services var uow = UowProvider.GetUnitOfWork(); using (var repository = RepositoryFactory.CreateUserRepository(uow)) { - var query = new Query(); + var query = QueryFactory.Create(); switch (matchType) { @@ -417,7 +417,7 @@ namespace Umbraco.Core.Services var uow = UowProvider.GetUnitOfWork(); using (var repository = RepositoryFactory.CreateUserRepository(uow)) { - var query = new Query(); + var query = QueryFactory.Create(); switch (matchType) { @@ -463,7 +463,7 @@ namespace Umbraco.Core.Services switch (countType) { case MemberCountType.All: - query = new Query(); + query = QueryFactory.Create(); return repository.Count(query); case MemberCountType.Online: throw new NotImplementedException(); @@ -476,12 +476,12 @@ namespace Umbraco.Core.Services //return repository.GetCountByQuery(query); case MemberCountType.LockedOut: query = - Query.Builder.Where( + QueryFactory.Create().Where( x => x.IsLockedOut); return repository.GetCountByQuery(query); case MemberCountType.Approved: query = - Query.Builder.Where( + QueryFactory.Create().Where( x => x.IsApproved); return repository.GetCountByQuery(query); default: @@ -599,7 +599,7 @@ namespace Umbraco.Core.Services { using (var repository = RepositoryFactory.CreateUserTypeRepository(UowProvider.GetUnitOfWork())) { - var query = Query.Builder.Where(x => x.Alias == alias); + var query = QueryFactory.Create().Where(x => x.Alias == alias); var contents = repository.GetByQuery(query); return contents.SingleOrDefault(); } @@ -627,7 +627,7 @@ namespace Umbraco.Core.Services { using (var repository = RepositoryFactory.CreateUserTypeRepository(UowProvider.GetUnitOfWork())) { - var query = Query.Builder.Where(x => x.Name == name); + var query = QueryFactory.Create().Where(x => x.Name == name); var contents = repository.GetByQuery(query); return contents.SingleOrDefault(); } diff --git a/src/Umbraco.Core/Sync/ConfigServerRegistrar.cs b/src/Umbraco.Core/Sync/ConfigServerRegistrar.cs index 59d2c132bb..de93134826 100644 --- a/src/Umbraco.Core/Sync/ConfigServerRegistrar.cs +++ b/src/Umbraco.Core/Sync/ConfigServerRegistrar.cs @@ -18,7 +18,7 @@ namespace Umbraco.Core.Sync private readonly string _umbracoApplicationUrl; public ConfigServerRegistrar(IUmbracoSettingsSection settings) - : this(settings.DistributedCall.Servers) + : this(settings.DistributedCall) { } // for tests diff --git a/src/Umbraco.Core/Sync/ServerRegistrarResolver.cs b/src/Umbraco.Core/Sync/ServerRegistrarResolver.cs index c410e67fbb..5f94c2a632 100644 --- a/src/Umbraco.Core/Sync/ServerRegistrarResolver.cs +++ b/src/Umbraco.Core/Sync/ServerRegistrarResolver.cs @@ -13,7 +13,7 @@ namespace Umbraco.Core.Sync /// /// Initializes a new instance of the class with a registrar. /// - /// An instance of a registrar. + /// An instance of a registrar. /// The resolver is created by the CoreBootManager and thus the constructor remains internal. public ServerRegistrarResolver(IServerRegistrar value) : base(value) { diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index afd20a70fa..70ca4c37c3 100644 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -1044,7 +1044,6 @@ ASPXCodeBehind - ASPXCodeBehind