using Core.Blueprint.Common.DependencyInjection;
using Core.Blueprint.Redis.Runtime;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
namespace Core.Blueprint.Redis.DependencyInjection;
///
/// Registers runtime redis integration defaults for blueprint consumers.
///
public static class BlueprintRedisServiceCollectionExtensions
{
///
/// Adds redis runtime settings and baseline runtime services.
///
/// Service collection.
/// Redis key prefix.
/// Service collection for fluent chaining.
public static IServiceCollection AddBlueprintRedisModule(
this IServiceCollection services,
string keyPrefix = "agilewebs:")
{
services.AddBlueprintRuntimeCore();
services.TryAddSingleton(new BlueprintRedisRuntimeSettings(ResolveKeyPrefix(keyPrefix)));
return services;
}
private static string ResolveKeyPrefix(string keyPrefix)
{
if (!string.IsNullOrWhiteSpace(keyPrefix))
{
return keyPrefix;
}
return "agilewebs:";
}
}