Esempio n. 1
0
        public static IServiceCollection AddWebSocketGangs(
            this IServiceCollection services,
            IGangSettings settings
            )
        {
            services.AddGangs(settings);
            services.TryAddSingleton <IGangSerializationService, WebSocketGangJsonSerializationService>();

            return(services);
        }
Esempio n. 2
0
 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>();
 }
Esempio n. 3
0
        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);
        }