using linker.messenger.api; using linker.messenger.decenter; using linker.messenger.forward.proxy; using Microsoft.Extensions.DependencyInjection; namespace linker.messenger.forward { public static class Entry { public static ServiceCollection AddForwardClient(this ServiceCollection serviceCollection) { serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); return serviceCollection; } public static ServiceProvider UseForwardClient(this ServiceProvider serviceProvider) { IApiServer apiServer = serviceProvider.GetService(); apiServer.AddPlugins(new List { serviceProvider.GetService() }); ForwardTransfer forwardTransfer = serviceProvider.GetService(); IMessengerResolver messengerResolver = serviceProvider.GetService(); messengerResolver.AddMessenger(new List { serviceProvider.GetService() }); DecenterClientTransfer decenterClientTransfer = serviceProvider.GetService(); decenterClientTransfer.AddDecenters(new List { serviceProvider.GetService() }); ForwardProxy forwardProxy= serviceProvider.GetService(); return serviceProvider; } public static ServiceCollection AddForwardServer(this ServiceCollection serviceCollection) { serviceCollection.AddSingleton(); return serviceCollection; } public static ServiceProvider UseForwardServer(this ServiceProvider serviceProvider) { IMessengerResolver messengerResolver = serviceProvider.GetService(); messengerResolver.AddMessenger(new List { serviceProvider.GetService() }); return serviceProvider; } } }