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); }