Exemplo n.º 1
0
 public static VersagenServiceConfig AddSignalRWriters <THub>(this VersagenServiceConfig config, string JavaScriptReceiveFunction = "ReceiveVersagenMessage") where THub : Hub
 {
     config.VersagenServices.AddScoped <SignalRWriterDirectory <THub> >()
     .AddTransient <IVersaWriterDirectory>(p =>
                                           p.GetRequiredService <SignalRWriterDirectory <THub> >())
     .AddSingleton <SignalRWriterDirectoryBackingStore>()
     .AddSingleton(c => new VersaSignalRConfig {
         NameOfWriterFunction = JavaScriptReceiveFunction
     });
     return(config);
 }
 public static VersagenServiceConfig ASPBasicSupport(this VersagenServiceConfig collection, Func <IServiceProvider, IVersaWriter> broadcastChatBuilder)
 {
     collection.VersagenServices.AddSingleton <IScenarioEventDistributor <MessageEvent>, VersaScenarioDistributor>();
     collection.VersagenServices
     .TryAddSingleton <ICommandContextFactory <CommandContext, CommandContext.Builder, IMessageEvent, VersaCommand> > (
         provider =>
         new ASPDebugContextBuilder(provider, broadcastChatBuilder(provider))
         );
     collection.VersagenServices.TryAddSingleton <AuthTranslator <string>, DEBUGTextIDAuthenticator>();
     return(collection);
 }
 public static VersagenServiceConfig AddASPSupport(this VersagenServiceConfig config)
 {
     return(config);
 }
        /// <summary>
        /// TODO: Integrate Versagen's own auth system into this.
        /// </summary>
        /// <typeparam name="TUser"></typeparam>
        /// <typeparam name="TRole"></typeparam>
        /// <param name="collection"></param>
        /// <returns></returns>
        public static VersagenIdentityConfigIntermediate AddIdentityPlayer <TUser, TRole>(this VersagenServiceConfig collection)
            where TUser : IdentityUser, IPlayer
            where TRole : IdentityRole
        {
            VersaUserManager <TUser> FetchFunc(IServiceProvider p) => p.GetRequiredService <VersaUserManager <TUser> >();

            var idBuild = collection.VersagenServices.AddIdentity <TUser, TRole>()
                          .AddUserManager <VersaUserManager <TUser> >();

            //TODO: Test if actually necessary to do all this or not.
            collection.VersagenServices.AddTransient <IAuthTranslator <string> >(FetchFunc)
            .AddTransient <IPlayerTranslator <string, TUser> >(FetchFunc)
            .AddTransient <IPlayerTranslator <TUser, string, TUser> >(FetchFunc)
            .AddTransient <IPlayerStore>(FetchFunc)
            .AddTransient <IPlayerStore <TUser> >(FetchFunc);

            var retVal = new VersagenIdentityConfigIntermediate
            {
                IdentityBuilder = idBuild, VersagenConfig = collection
            };

            return(retVal);
        }