using Core.Blueprint.DAL.Redis.Contracts; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; namespace Core.Blueprint.DAL.Redis.Configuration { public static class RedisExtension { public static IServiceCollection AddRedisLayer(this IServiceCollection services, IConfiguration configuration) { var source = configuration.GetSection("ConnectionStrings"); var redisConnectionString = source["Redis"]?.ToString(); if (string.IsNullOrEmpty(redisConnectionString)) { throw new InvalidOperationException("Redis connection string is not configured."); } services.AddSingleton(provider => new CacheService(redisConnectionString, provider.GetRequiredService>())); return services; } } }