28 lines
		
	
	
		
			950 B
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			950 B
		
	
	
	
		
			C#
		
	
	
	
	
	
| 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<ICacheService>(provider =>
 | |
|                 new CacheService(redisConnectionString, provider.GetRequiredService<ILogger<CacheService>>()));
 | |
| 
 | |
|             return services;
 | |
|         }
 | |
|     }
 | |
| }
 | 
