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;