Files
Umbraco-CMS/src/Umbraco.Infrastructure/Services/Implement/RepositoryService.cs
2021-02-23 12:24:51 +01:00

28 lines
1.1 KiB
C#

using System;
using Microsoft.Extensions.Logging;
using Umbraco.Cms.Core.Events;
using Umbraco.Cms.Core.Persistence.Querying;
using Umbraco.Cms.Core.Scoping;
namespace Umbraco.Cms.Core.Services.Implement
{
/// <summary>
/// Represents a service that works on top of repositories.
/// </summary>
public abstract class RepositoryService : IService
{
protected IEventMessagesFactory EventMessagesFactory { get; }
protected IScopeProvider ScopeProvider { get; }
protected ILoggerFactory LoggerFactory { get; }
protected RepositoryService(IScopeProvider provider, ILoggerFactory loggerFactory, IEventMessagesFactory eventMessagesFactory)
{
EventMessagesFactory = eventMessagesFactory ?? throw new ArgumentNullException(nameof(eventMessagesFactory));
ScopeProvider = provider ?? throw new ArgumentNullException(nameof(provider));
LoggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
}
protected IQuery<T> Query<T>() => ScopeProvider.SqlContext.Query<T>();
}
}