using System; using Microsoft.AspNetCore.SignalR; using Microsoft.Extensions.Logging; using Selector.Web.Hubs; namespace Selector.Web.Service { public interface IUserMappingFactory where TMap : ICacheHubMapping where THub : Hub where T : class { public TMap Get(string userId, string username); } public interface INowPlayingMappingFactory: IUserMappingFactory { } public class NowPlayingMappingFactory : INowPlayingMappingFactory { private readonly ILoggerFactory LoggerFactory; public NowPlayingMappingFactory(ILoggerFactory loggerFactory) { LoggerFactory = loggerFactory; } public NowPlayingMapping Get(string userId, string username) { return new NowPlayingMapping( LoggerFactory?.CreateLogger(), userId, username ); } } }