public static IServiceCollection AddRobotify <TContentWriter, TRobotGroupsResolver>(this IServiceCollection serviceCollection, Action <RobotifyServiceConfigurer> configure) where TContentWriter : class, IRobotifyContentWriter where TRobotGroupsResolver : class, IRobotifyRobotsGroupsResolver { serviceCollection.AddOptions(); serviceCollection.TryAddSingleton <IConfigureOptions <RobotifyOptions>, ConfigureRobotifyOptions>(); serviceCollection.Configure <RobotifyOptions>(_ => { }); serviceCollection.AddSingleton <ITagHelperComponent, RobotifyMetaTagHelperComponent>(); var configurer = new RobotifyServiceConfigurer(serviceCollection); configure?.Invoke(configurer); return(serviceCollection.AddRobotifyServices <TContentWriter, TRobotGroupsResolver>()); }
/// <summary> /// Will attempt to read robot groups from the robotify appsettings configuration, from a node named "Groups" under "Robotify" /// </summary> /// <typeparam name="TAppender"></typeparam> /// <param name="configurer"></param> /// <returns></returns> public static RobotifyServiceConfigurer AddRobotGroupsFromAppSettings(this RobotifyServiceConfigurer configurer) { return(configurer.AddRobotGroupProvider <LoadFromAppSettingsRobotGroupProvider>()); }
/// <summary> /// Will include a standard disallow all robot group /// </summary> /// <typeparam name="TAppender"></typeparam> /// <param name="configurer"></param> /// <returns></returns> public static RobotifyServiceConfigurer AddDisallowAllRobotGroupProvider(this RobotifyServiceConfigurer configurer) { return(configurer.AddRobotGroupProvider <RobotifyDisallowAllRobotGroupProvider>()); }
public static RobotifyServiceConfigurer AddRobotGroupProvider <TAppender>(this RobotifyServiceConfigurer configurer) where TAppender : class, IRobotifyRobotGroupProvider { configurer.Services.AddScoped <IRobotifyRobotGroupProvider, TAppender>(); return(configurer); }