working on U4-5927 - this extends the base event class to have EventMessages which event consumers can add to, the trick is that there is a factory for these EventMessages, in a web context, the factory is a request based factory so that during a request all instances of the EventMessages are the same instance. All services then accept an instance of IEventMessagesFactory which they can then use when raising events. We'll then use this to send messages to the UI. Not sure if i should make this a resolver yet or not. Still a WIP!!

This commit is contained in:
Shannon
2015-07-23 20:04:40 +02:00
parent 445dff7c5e
commit a6a2b02cd8
45 changed files with 361 additions and 356 deletions

View File

@@ -1,4 +1,5 @@
using System;
using Umbraco.Core.Events;
using Umbraco.Core.Logging;
using Umbraco.Core.Persistence;
using Umbraco.Core.Persistence.UnitOfWork;
@@ -11,15 +12,18 @@ namespace Umbraco.Core.Services
public abstract class RepositoryService : IService
{
protected ILogger Logger { get; private set; }
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)
protected RepositoryService(IDatabaseUnitOfWorkProvider provider, RepositoryFactory repositoryFactory, ILogger logger, IEventMessagesFactory eventMessagesFactory)
{
if (provider == null) throw new ArgumentNullException("provider");
if (repositoryFactory == null) throw new ArgumentNullException("repositoryFactory");
if (logger == null) throw new ArgumentNullException("logger");
if (eventMessagesFactory == null) throw new ArgumentNullException("eventMessagesFactory");
Logger = logger;
EventMessagesFactory = eventMessagesFactory;
RepositoryFactory = repositoryFactory;
UowProvider = provider;
}