using Microsoft.Extensions.Logging; namespace Selector.Events { public interface IUserEventFirerFactory { public Task Get(IPlayerWatcher watcher = null); } public class UserEventFirerFactory: IUserEventFirerFactory { private readonly ILoggerFactory LoggerFactory; private readonly UserEventBus UserEvent; public UserEventFirerFactory(ILoggerFactory loggerFactory, UserEventBus userEvent) { LoggerFactory = loggerFactory; UserEvent = userEvent; } public Task Get(IPlayerWatcher watcher = null) { return Task.FromResult(new UserEventFirer( watcher, UserEvent, LoggerFactory.CreateLogger() )); } } }