using BotSharp.Platform.Abstraction; using BotSharp.Platform.Models; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using System; using System.Collections.Generic; using System.Text; namespace BotSharp.Core.AgentStorage { public class AgentStorageServiceRegister { public static void Register(IServiceCollection services) where TAgent : AgentBase { services.AddSingleton, AgentStorageFactory>(); services.AddSingleton>(); services.AddSingleton>(); services.AddSingleton>(); services.AddSingleton(factory => { Func> accesor = key => { if (key.Equals("AgentStorageInRedis")) { return factory.GetService>(); } else if (key.Equals("AgentStorageInMemory")) { return factory.GetService>(); } else if (key.Equals("AgentStorageInFile")) { return factory.GetService>(); } else { throw new ArgumentException($"Not Support key : {key}"); } }; return accesor; }); } } }