using linker.messenger.api; using linker.messenger.decenter; using linker.messenger.sforward.client; using linker.messenger.sforward.server; using linker.messenger.sforward.server.validator; using linker.messenger.sync; using linker.plugins.sforward.messenger; using linker.plugins.sforward.proxy; using Microsoft.Extensions.DependencyInjection; namespace linker.messenger.sforward { public static class Entry { public static ServiceCollection AddSForwardClient(this ServiceCollection serviceCollection) { serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); return serviceCollection; } public static ServiceProvider UseSForwardClient(this ServiceProvider serviceProvider) { IApiServer apiServer = serviceProvider.GetService(); apiServer.AddPlugins(new List { serviceProvider.GetService() }); SForwardClientTransfer sForwardClientTransfer = serviceProvider.GetService(); IMessengerResolver messengerResolver = serviceProvider.GetService(); messengerResolver.AddMessenger(new List { serviceProvider.GetService() }); SyncTreansfer syncTransfer = serviceProvider.GetService(); syncTransfer.AddSyncs(new List { serviceProvider.GetService() }); DecenterClientTransfer decenterClientTransfer = serviceProvider.GetService(); decenterClientTransfer.AddDecenters(new List { serviceProvider.GetService() }); return serviceProvider; } public static ServiceCollection AddSForwardServer(this ServiceCollection serviceCollection) { serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); return serviceCollection; } public static ServiceProvider UseSForwardServer(this ServiceProvider serviceProvider) { IMessengerResolver messengerResolver = serviceProvider.GetService(); messengerResolver.AddMessenger(new List { serviceProvider.GetService() }); SForwardValidatorTransfer sForwardValidatorTransfer = serviceProvider.GetService(); sForwardValidatorTransfer.AddValidators(new List { serviceProvider.GetService() }); return serviceProvider; } } }