public static IServiceCollection AddWebSocketGangs( this IServiceCollection services, IGangSettings settings ) { services.AddGangs(settings); services.TryAddSingleton <IGangSerializationService, WebSocketGangJsonSerializationService>(); return(services); }
public GangManager( ILogger <GangManager> logger, IGangSettings settings, GangCollection gangs, IGangControllerFactory controllerFactory, IGangSerializationService serializer, IGangManagerSequenceProvider sequence, GangEventExecutor <IGangManagerEvent> eventExecutor = null ) { _logger = logger; _settings = settings; _gangs = gangs; _controllerFactory = controllerFactory; _serializer = serializer; _sequence = sequence; _eventExecutor = eventExecutor; _events = new Subject <IGangManagerEvent>(); }
public static IServiceCollection AddGangs( this IServiceCollection services, IGangSettings settings) { services.AddSingleton(settings); services.AddSingleton <IGangManager, GangManager>(); services.AddSingleton <IGangControllerFactory, GangControllerFactory>(); services.AddTransient <GangCollection>(); services.AddSingleton <IGangManagerSequenceProvider, GangManagerInMemorySequenceProvider>(); // default auth func, just uses the token as the user id services.AddSingleton <GangAuthenticationFunc>( parameters => Task.FromResult( new GangSession( parameters.Token, null ) )); return(services); }