Move services infra -> core

This commit is contained in:
Paul Johnson
2022-01-14 10:57:31 +00:00
parent 39c3fecc45
commit 2a4c974568
41 changed files with 88 additions and 89 deletions

View File

@@ -28,6 +28,7 @@ using Umbraco.Cms.Core.Mail;
using Umbraco.Cms.Core.Manifest;
using Umbraco.Cms.Core.Models.PublishedContent;
using Umbraco.Cms.Core.Notifications;
using Umbraco.Cms.Core.Packaging;
using Umbraco.Cms.Core.PropertyEditors;
using Umbraco.Cms.Core.PublishedCache;
using Umbraco.Cms.Core.PublishedCache.Internal;
@@ -240,7 +241,7 @@ namespace Umbraco.Cms.Core.DependencyInjection
GlobalSettings globalSettings = f.GetRequiredService<IOptions<GlobalSettings>>().Value;
var singleServer = globalSettings.DisableElectionForSingleServer;
return singleServer
? (IServerRoleAccessor)new SingleServerRoleAccessor()
? new SingleServerRoleAccessor()
: new ElectedServerRoleAccessor(f.GetRequiredService<IServerRegistrationService>());
});
@@ -263,6 +264,41 @@ namespace Umbraco.Cms.Core.DependencyInjection
// Register telemetry service used to gather data about installed packages
Services.AddUnique<ITelemetryService, TelemetryService>();
Services.AddUnique<IKeyValueService, KeyValueService>();
Services.AddUnique<IPublicAccessService, PublicAccessService>();
Services.AddUnique<IContentVersionService, ContentVersionService>();
Services.AddUnique<IUserService, UserService>();
Services.AddUnique<ILocalizationService, LocalizationService>();
Services.AddUnique<IMacroService, MacroService>();
Services.AddUnique<IMemberGroupService, MemberGroupService>();
Services.AddUnique<IRedirectUrlService, RedirectUrlService>();
Services.AddUnique<IConsentService, ConsentService>();
Services.AddUnique<IPropertyValidationService, PropertyValidationService>();
Services.AddUnique<IDomainService, DomainService>();
Services.AddUnique<ITagService, TagService>();
Services.AddUnique<IContentService, ContentService>();
Services.AddUnique<IContentVersionCleanupPolicy, DefaultContentVersionCleanupPolicy>();
Services.AddUnique<IMemberService, MemberService>();
Services.AddUnique<IMediaService, MediaService>();
Services.AddUnique<IContentTypeService, ContentTypeService>();
Services.AddUnique<IContentTypeBaseServiceProvider, ContentTypeBaseServiceProvider>();
Services.AddUnique<IMediaTypeService, MediaTypeService>();
Services.AddUnique<IFileService, FileService>();
Services.AddUnique<IEntityService, EntityService>();
Services.AddUnique<IRelationService, RelationService>();
Services.AddUnique<IMemberTypeService, MemberTypeService>();
Services.AddUnique<INotificationService, NotificationService>();
Services.AddUnique<IExternalLoginService, ExternalLoginService>();
Services.AddUnique<ILocalizedTextService>(factory => new LocalizedTextService(
factory.GetRequiredService<Lazy<LocalizedTextServiceFileSources>>(),
factory.GetRequiredService<ILogger<LocalizedTextService>>()));
Services.AddUnique<IEntityXmlSerializer, EntityXmlSerializer>();
Services.AddSingleton<ConflictingPackageData>();
Services.AddSingleton<CompiledPackageXmlParser>();
}
}
}

View File

@@ -1,7 +1,13 @@
using Umbraco.Cms.Core.Models;
using System;
using System.Collections.Generic;
using Umbraco.Cms.Core.Models;
namespace Umbraco.Cms.Core.Persistence.Repositories
{
public interface IEntityContainerRepository : IReadRepository<int, EntityContainer>, IWriteRepository<EntityContainer>
{ }
{
EntityContainer Get(Guid id);
IEnumerable<EntityContainer> Get(string name, int level);
}
}

View File

@@ -106,5 +106,7 @@ namespace Umbraco.Cms.Core.Persistence.Repositories
int ClearLoginSessions(int userId);
int ClearLoginSessions(TimeSpan timespan);
void ClearLoginSession(Guid sessionId);
IEnumerable<IUser> GetNextUsers(int id, int count);
}
}

View File

@@ -6,7 +6,7 @@ using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
/// <summary>
/// Implements <see cref="IConsentService"/>.

View File

@@ -14,10 +14,9 @@ using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
using Umbraco.Cms.Core.Services.Changes;
using Umbraco.Cms.Core.Strings;
using Umbraco.Cms.Infrastructure.Persistence.Querying;
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
/// <summary>
/// Implements the content service.

View File

@@ -1,7 +1,7 @@
using System;
using Umbraco.Cms.Core.Models;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
public class ContentTypeBaseServiceProvider : IContentTypeBaseServiceProvider
{

View File

@@ -8,9 +8,8 @@ using Umbraco.Cms.Core.Notifications;
using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
using Umbraco.Cms.Core.Services.Changes;
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
/// <summary>
/// Represents the ContentType Service, which is an easy access to operations involving <see cref="IContentType"/>

View File

@@ -2,7 +2,7 @@ using Microsoft.Extensions.Logging;
using Umbraco.Cms.Core.Events;
using Umbraco.Cms.Core.Scoping;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
public abstract class ContentTypeServiceBase : RepositoryService
{

View File

@@ -11,10 +11,9 @@ using Umbraco.Cms.Core.Notifications;
using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
using Umbraco.Cms.Core.Services.Changes;
using Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement;
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
public abstract class ContentTypeServiceBase<TRepository, TItem> : ContentTypeServiceBase, IContentTypeBaseService<TItem>
where TRepository : IContentTypeRepositoryBase<TItem>
@@ -934,7 +933,7 @@ namespace Umbraco.Cms.Core.Services.Implement
{
scope.ReadLock(ReadLockIds); // also for containers
return ((EntityContainerRepository) _containerRepository).Get(containerId);
return _containerRepository.Get(containerId);
}
}
@@ -964,7 +963,7 @@ namespace Umbraco.Cms.Core.Services.Implement
{
scope.ReadLock(ReadLockIds); // also for containers
return ((EntityContainerRepository) _containerRepository).Get(name, level);
return _containerRepository.Get(name, level);
}
}

View File

@@ -10,7 +10,7 @@ using Umbraco.Cms.Core.Scoping;
using Umbraco.Extensions;
// ReSharper disable once CheckNamespace
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
internal class ContentVersionService : IContentVersionService
{

View File

@@ -6,10 +6,9 @@ using Umbraco.Cms.Core.Configuration.Models;
using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
using Umbraco.Cms.Core.Services;
using ContentVersionCleanupPolicySettings = Umbraco.Cms.Core.Models.ContentVersionCleanupPolicySettings;
namespace Umbraco.Cms.Infrastructure.Services.Implement
namespace Umbraco.Cms.Core.Services
{
public class DefaultContentVersionCleanupPolicy : IContentVersionCleanupPolicy
{

View File

@@ -6,7 +6,7 @@ using Umbraco.Cms.Core.Notifications;
using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
public class DomainService : RepositoryService, IDomainService
{

View File

@@ -10,11 +10,8 @@ using Umbraco.Cms.Core.Persistence;
using Umbraco.Cms.Core.Persistence.Querying;
using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
using Umbraco.Cms.Infrastructure.Persistence.Dtos;
using Umbraco.Cms.Infrastructure.Persistence.Querying;
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
public class EntityService : RepositoryService, IEntityService
{

View File

@@ -11,7 +11,7 @@ using Umbraco.Cms.Core.Serialization;
using Umbraco.Cms.Core.Strings;
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
/// <summary>
/// Serializes entities to XML

View File

@@ -7,7 +7,7 @@ using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
using Umbraco.Cms.Core.Security;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
public class ExternalLoginService : RepositoryService, IExternalLoginService
{

View File

@@ -16,7 +16,7 @@ using Umbraco.Cms.Core.Scoping;
using Umbraco.Cms.Core.Strings;
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
/// <summary>
/// Represents the File Service, which is an easy access to operations involving <see cref="IFile"/> objects like Scripts, Stylesheets and Templates

View File

@@ -4,7 +4,7 @@ using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
internal class KeyValueService : IKeyValueService
{

View File

@@ -9,7 +9,7 @@ using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
/// <summary>
/// Represents the Localization Service, which is an easy access to operations involving <see cref="Language"/> and <see cref="DictionaryItem"/>

View File

@@ -6,7 +6,7 @@ using System.Xml.Linq;
using System.Xml.XPath;
using Microsoft.Extensions.Logging;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
/// <inheritdoc />
public class LocalizedTextService : ILocalizedTextService

View File

@@ -9,7 +9,7 @@ using Microsoft.Extensions.Logging;
using Umbraco.Cms.Core.Cache;
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
/// <summary>
/// Exposes the XDocument sources from files for the default localization text service and ensure caching is taken care of

View File

@@ -1,7 +1,7 @@
using System;
using System.IO;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
public class LocalizedTextServiceSupplementaryFileSource
{

View File

@@ -8,7 +8,7 @@ using Umbraco.Cms.Core.Notifications;
using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
/// <summary>
/// Represents the Macro Service, which is an easy access to operations involving <see cref="IMacro"/>

View File

@@ -14,10 +14,9 @@ using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
using Umbraco.Cms.Core.Services.Changes;
using Umbraco.Cms.Core.Strings;
using Umbraco.Cms.Infrastructure.Persistence.Querying;
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
/// <summary>
/// Represents the Media Service, which is an easy access to operations involving <see cref="IMedia"/>

View File

@@ -8,7 +8,7 @@ using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
using Umbraco.Cms.Core.Services.Changes;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
public class MediaTypeService : ContentTypeServiceBase<IMediaTypeRepository, IMediaType>, IMediaTypeService
{

View File

@@ -8,7 +8,7 @@ using Umbraco.Cms.Core.Notifications;
using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
internal class MemberGroupService : RepositoryService, IMemberGroupService
{

View File

@@ -10,10 +10,9 @@ using Umbraco.Cms.Core.Persistence;
using Umbraco.Cms.Core.Persistence.Querying;
using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
using Umbraco.Cms.Infrastructure.Persistence.Querying;
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
/// <summary>
/// Represents the MemberService.

View File

@@ -9,7 +9,7 @@ using Umbraco.Cms.Core.Scoping;
using Umbraco.Cms.Core.Services.Changes;
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
public class MemberTypeService : ContentTypeServiceBase<IMemberTypeRepository, IMemberType>, IMemberTypeService
{

View File

@@ -18,7 +18,7 @@ using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
public class NotificationService : INotificationService
{

View File

@@ -7,7 +7,7 @@ using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.PropertyEditors;
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
public class PropertyValidationService : IPropertyValidationService
{

View File

@@ -10,7 +10,7 @@ using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
internal class PublicAccessService : RepositoryService, IPublicAccessService
{

View File

@@ -6,7 +6,7 @@ using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
internal class RedirectUrlService : RepositoryService, IRedirectUrlService
{

View File

@@ -11,7 +11,7 @@ using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
public class RelationService : RepositoryService, IRelationService
{

View File

@@ -4,7 +4,7 @@ using Umbraco.Cms.Core.Events;
using Umbraco.Cms.Core.Persistence.Querying;
using Umbraco.Cms.Core.Scoping;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
/// <summary>
/// Represents a service that works on top of repositories.

View File

@@ -6,7 +6,7 @@ using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
/// <summary>
/// Tag service to query for tags in the tags db table. The tags returned are only relevant for published content & saved media or members

View File

@@ -14,11 +14,9 @@ using Umbraco.Cms.Core.Persistence;
using Umbraco.Cms.Core.Persistence.Querying;
using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Core.Scoping;
using Umbraco.Cms.Infrastructure.Persistence.Querying;
using Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement;
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Services.Implement
namespace Umbraco.Cms.Core.Services
{
/// <summary>
/// Represents the UserService, which is an easy access to operations involving <see cref="IProfile"/>, <see cref="IMembershipUser"/> and eventually Backoffice Users.
@@ -594,7 +592,7 @@ namespace Umbraco.Cms.Core.Services.Implement
{
using (var scope = ScopeProvider.CreateScope(autoComplete: true))
{
return ((UserRepository) _userRepository).GetNextUsers(id, count);
return _userRepository.GetNextUsers(id, count);
}
}

View File

@@ -15,7 +15,6 @@ using Umbraco.Cms.Core.Routing;
using Umbraco.Cms.Core.Services;
using Umbraco.Cms.Core.Services.Implement;
using Umbraco.Cms.Infrastructure.Packaging;
using Umbraco.Cms.Infrastructure.Services.Implement;
using Umbraco.Extensions;
namespace Umbraco.Cms.Infrastructure.DependencyInjection
@@ -33,47 +32,13 @@ namespace Umbraco.Cms.Infrastructure.DependencyInjection
// register the special idk map
builder.Services.AddUnique<IIdKeyMap, IdKeyMap>();
// register the services
builder.Services.AddUnique<IPropertyValidationService, PropertyValidationService>();
builder.Services.AddUnique<IKeyValueService, KeyValueService>();
builder.Services.AddUnique<IPublicAccessService, PublicAccessService>();
builder.Services.AddUnique<IDomainService, DomainService>();
builder.Services.AddUnique<IAuditService, AuditService>();
builder.Services.AddUnique<ICacheInstructionService, CacheInstructionService>();
builder.Services.AddUnique<IBasicAuthService, BasicAuthService>();
builder.Services.AddUnique<ITagService, TagService>();
builder.Services.AddUnique<IContentService, ContentService>();
builder.Services.AddUnique<IContentVersionService, ContentVersionService>();
builder.Services.AddUnique<IContentVersionCleanupPolicy, DefaultContentVersionCleanupPolicy>();
builder.Services.AddUnique<IUserService, UserService>();
builder.Services.AddUnique<IMemberService, MemberService>();
builder.Services.AddUnique<IMediaService, MediaService>();
builder.Services.AddUnique<IContentTypeService, ContentTypeService>();
builder.Services.AddUnique<IContentTypeBaseServiceProvider, ContentTypeBaseServiceProvider>();
builder.Services.AddUnique<IMediaTypeService, MediaTypeService>();
builder.Services.AddUnique<IDataTypeService, DataTypeService>();
builder.Services.AddUnique<IFileService, FileService>();
builder.Services.AddUnique<ILocalizationService, LocalizationService>();
builder.Services.AddUnique<IPackagingService, PackagingService>();
builder.Services.AddUnique<IServerRegistrationService, ServerRegistrationService>();
builder.Services.AddUnique<IEntityService, EntityService>();
builder.Services.AddUnique<IRelationService, RelationService>();
builder.Services.AddUnique<IMacroService, MacroService>();
builder.Services.AddUnique<IMemberTypeService, MemberTypeService>();
builder.Services.AddUnique<IMemberGroupService, MemberGroupService>();
builder.Services.AddUnique<INotificationService, NotificationService>();
builder.Services.AddUnique<IExternalLoginService, ExternalLoginService>();
builder.Services.AddUnique<IRedirectUrlService, RedirectUrlService>();
builder.Services.AddUnique<IConsentService, ConsentService>();
builder.Services.AddTransient(SourcesFactory);
builder.Services.AddUnique<ILocalizedTextService>(factory => new LocalizedTextService(
factory.GetRequiredService<Lazy<LocalizedTextServiceFileSources>>(),
factory.GetRequiredService<ILogger<LocalizedTextService>>()));
builder.Services.AddUnique<IEntityXmlSerializer, EntityXmlSerializer>();
builder.Services.AddSingleton<ConflictingPackageData>();
builder.Services.AddSingleton<CompiledPackageXmlParser>();
builder.Services.AddUnique<ICreatedPackagesRepository>(factory => CreatePackageRepository(factory, "createdPackages.config"));
builder.Services.AddSingleton<PackageDataInstallation>();
builder.Services.AddUnique<IPackageInstallation, PackageInstallation>();

View File

@@ -911,7 +911,7 @@ SELECT 4 AS [Key], COUNT(id) AS [Value] FROM umbracoUser WHERE userDisabled = 0
return sql;
}
internal IEnumerable<IUser> GetNextUsers(int id, int count)
public IEnumerable<IUser> GetNextUsers(int id, int count)
{
var idsQuery = SqlContext.Sql()
.Select<UserDto>(x => x.Id)

View File

@@ -12,7 +12,6 @@ using Umbraco.Cms.Core.PropertyEditors;
using Umbraco.Cms.Core.Scoping;
using Umbraco.Cms.Core.Serialization;
using Umbraco.Cms.Core.Strings;
using Umbraco.Cms.Infrastructure.Persistence.Repositories.Implement;
using Umbraco.Extensions;
namespace Umbraco.Cms.Core.Services.Implement
@@ -109,7 +108,7 @@ namespace Umbraco.Cms.Core.Services.Implement
{
using (var scope = ScopeProvider.CreateScope(autoComplete: true))
{
return ((EntityContainerRepository) _dataTypeContainerRepository).Get(containerId);
return _dataTypeContainerRepository.Get(containerId);
}
}
@@ -117,7 +116,7 @@ namespace Umbraco.Cms.Core.Services.Implement
{
using (var scope = ScopeProvider.CreateScope(autoComplete: true))
{
return ((EntityContainerRepository) _dataTypeContainerRepository).Get(name, level);
return _dataTypeContainerRepository.Get(name, level);
}
}

View File

@@ -8,7 +8,7 @@ using NUnit.Framework;
using Umbraco.Cms.Core.Configuration.Models;
using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Persistence.Repositories;
using Umbraco.Cms.Infrastructure.Services.Implement;
using Umbraco.Cms.Core.Services;
using Umbraco.Cms.Tests.UnitTests.AutoFixture;
using ContentVersionCleanupPolicySettings = Umbraco.Cms.Core.Models.ContentVersionCleanupPolicySettings;

View File

@@ -6,6 +6,7 @@ using System.Reflection;
using System.Text;
using NUnit.Framework;
using Umbraco.Cms.Core.Events;
using Umbraco.Cms.Core.Services;
using Umbraco.Cms.Core.Services.Implement;
namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Services

View File

@@ -9,6 +9,7 @@ using System.Xml.Linq;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using NUnit.Framework;
using Umbraco.Cms.Core.Services;
using Umbraco.Cms.Core.Services.Implement;
namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Services