diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/IContentRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IContentRepository.cs
similarity index 100%
rename from src/Umbraco.Infrastructure/Persistence/Repositories/IContentRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IContentRepository.cs
diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/IContentTypeRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IContentTypeRepository.cs
similarity index 100%
rename from src/Umbraco.Infrastructure/Persistence/Repositories/IContentTypeRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IContentTypeRepository.cs
diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/IContentTypeRepositoryBase.cs b/src/Umbraco.Core/Persistence/Repositories/IContentTypeRepositoryBase.cs
similarity index 100%
rename from src/Umbraco.Infrastructure/Persistence/Repositories/IContentTypeRepositoryBase.cs
rename to src/Umbraco.Core/Persistence/Repositories/IContentTypeRepositoryBase.cs
diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/IDataTypeRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IDataTypeRepository.cs
similarity index 100%
rename from src/Umbraco.Infrastructure/Persistence/Repositories/IDataTypeRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IDataTypeRepository.cs
diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/IDocumentBlueprintRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IDocumentBlueprintRepository.cs
similarity index 100%
rename from src/Umbraco.Infrastructure/Persistence/Repositories/IDocumentBlueprintRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IDocumentBlueprintRepository.cs
diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/IDocumentRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IDocumentRepository.cs
similarity index 100%
rename from src/Umbraco.Infrastructure/Persistence/Repositories/IDocumentRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IDocumentRepository.cs
diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/IEntityRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IEntityRepository.cs
similarity index 65%
rename from src/Umbraco.Infrastructure/Persistence/Repositories/IEntityRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IEntityRepository.cs
index bc4f82b02b..800981540b 100644
--- a/src/Umbraco.Infrastructure/Persistence/Repositories/IEntityRepository.cs
+++ b/src/Umbraco.Core/Persistence/Repositories/IEntityRepository.cs
@@ -1,11 +1,9 @@
using System;
using System.Collections.Generic;
-using NPoco;
using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Models.Entities;
using Umbraco.Cms.Core.Persistence.Querying;
using Umbraco.Cms.Core.Services;
-using Umbraco.Cms.Infrastructure.Persistence;
namespace Umbraco.Cms.Core.Persistence.Repositories
{
@@ -44,27 +42,6 @@ namespace Umbraco.Cms.Core.Persistence.Repositories
bool Exists(int id);
bool Exists(Guid key);
- ///
- /// Gets paged entities for a query and a subset of object types
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- ///
- /// A callback providing the ability to customize the generated SQL used to retrieve entities
- ///
- ///
- /// A collection of mixed entity types which would be of type , , ,
- ///
- ///
- IEnumerable GetPagedResultsByQuery(
- IQuery query, Guid[] objectTypes, long pageIndex, int pageSize, out long totalRecords,
- IQuery filter, Ordering ordering, Action> sqlCustomization = null);
-
///
/// Gets paged entities for a query and a specific object type
///
@@ -78,7 +55,5 @@ namespace Umbraco.Cms.Core.Persistence.Repositories
///
IEnumerable GetPagedResultsByQuery(IQuery query, Guid objectType, long pageIndex, int pageSize, out long totalRecords,
IQuery filter, Ordering ordering);
-
-
}
}
diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/IMediaRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IMediaRepository.cs
similarity index 100%
rename from src/Umbraco.Infrastructure/Persistence/Repositories/IMediaRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IMediaRepository.cs
diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/IMediaTypeRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IMediaTypeRepository.cs
similarity index 100%
rename from src/Umbraco.Infrastructure/Persistence/Repositories/IMediaTypeRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IMediaTypeRepository.cs
diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/IMemberRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IMemberRepository.cs
similarity index 100%
rename from src/Umbraco.Infrastructure/Persistence/Repositories/IMemberRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IMemberRepository.cs
diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/IMemberTypeRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IMemberTypeRepository.cs
similarity index 100%
rename from src/Umbraco.Infrastructure/Persistence/Repositories/IMemberTypeRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IMemberTypeRepository.cs
diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/IPublicAccessRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IPublicAccessRepository.cs
similarity index 100%
rename from src/Umbraco.Infrastructure/Persistence/Repositories/IPublicAccessRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IPublicAccessRepository.cs
diff --git a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Repositories.cs b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Repositories.cs
index d3ebb28f9c..e157f929b3 100644
--- a/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Repositories.cs
+++ b/src/Umbraco.Infrastructure/DependencyInjection/UmbracoBuilder.Repositories.cs
@@ -1,5 +1,6 @@
using Umbraco.Cms.Core.DependencyInjection;
using Umbraco.Cms.Core.Persistence.Repositories;
+using Umbraco.Cms.Infrastructure.Persistence.Repositories;
using Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement;
using Umbraco.Extensions;
@@ -28,7 +29,7 @@ namespace Umbraco.Cms.Infrastructure.DependencyInjection
builder.Services.AddUnique();
builder.Services.AddUnique();
builder.Services.AddUnique();
- builder.Services.AddUnique();
+ builder.Services.AddMultipleUnique();
builder.Services.AddUnique();
builder.Services.AddUnique();
builder.Services.AddUnique();
diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/IEntityRepositoryExtended.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/IEntityRepositoryExtended.cs
new file mode 100644
index 0000000000..7e1b2ad0df
--- /dev/null
+++ b/src/Umbraco.Infrastructure/Persistence/Repositories/IEntityRepositoryExtended.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Collections.Generic;
+using NPoco;
+using Umbraco.Cms.Core.Models.Entities;
+using Umbraco.Cms.Core.Persistence.Querying;
+using Umbraco.Cms.Core.Persistence.Repositories;
+using Umbraco.Cms.Core.Services;
+
+namespace Umbraco.Cms.Infrastructure.Persistence.Repositories
+{
+ public interface IEntityRepositoryExtended : IEntityRepository
+ {
+ ///
+ /// Gets paged entities for a query and a subset of object types
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ /// A callback providing the ability to customize the generated SQL used to retrieve entities
+ ///
+ ///
+ /// A collection of mixed entity types which would be of type , , ,
+ ///
+ ///
+ IEnumerable GetPagedResultsByQuery(
+ IQuery query, Guid[] objectTypes, long pageIndex, int pageSize, out long totalRecords,
+ IQuery filter, Ordering ordering, Action> sqlCustomization = null);
+ }
+}
diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/EntityRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/EntityRepository.cs
index 82cc897e45..965c85b6e6 100644
--- a/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/EntityRepository.cs
+++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/EntityRepository.cs
@@ -25,7 +25,7 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
/// Limited to objects that have a corresponding node (in umbracoNode table).
/// Returns objects, i.e. lightweight representation of entities.
///
- internal class EntityRepository : RepositoryBase, IEntityRepository
+ internal class EntityRepository : RepositoryBase, IEntityRepositoryExtended
{
public EntityRepository(IScopeAccessor scopeAccessor, AppCaches appCaches)
: base(scopeAccessor, appCaches)
diff --git a/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RelationRepository.cs b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RelationRepository.cs
index 63d49f06af..718ea04f63 100644
--- a/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RelationRepository.cs
+++ b/src/Umbraco.Infrastructure/Persistence/Repositories/Implement/RelationRepository.cs
@@ -26,9 +26,9 @@ namespace Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement
internal class RelationRepository : EntityRepositoryBase, IRelationRepository
{
private readonly IRelationTypeRepository _relationTypeRepository;
- private readonly IEntityRepository _entityRepository;
+ private readonly IEntityRepositoryExtended _entityRepository;
- public RelationRepository(IScopeAccessor scopeAccessor, ILogger logger, IRelationTypeRepository relationTypeRepository, IEntityRepository entityRepository)
+ public RelationRepository(IScopeAccessor scopeAccessor, ILogger logger, IRelationTypeRepository relationTypeRepository, IEntityRepositoryExtended entityRepository)
: base(scopeAccessor, AppCaches.NoCache, logger)
{
_relationTypeRepository = relationTypeRepository;