using linker.messenger.api; using linker.messenger.relay.client; using linker.messenger.relay.messenger; using linker.messenger.relay.server; using linker.messenger.relay.server.caching; using linker.messenger.relay.server.validator; using linker.messenger.sync; using Microsoft.Extensions.DependencyInjection; namespace linker.messenger.relay { public static class Entry { public static ServiceCollection AddRelayClient(this ServiceCollection serviceCollection) { serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); return serviceCollection; } public static ServiceProvider UseRelayClient(this ServiceProvider serviceProvider) { IMessengerResolver messengerResolver = serviceProvider.GetService(); messengerResolver.AddMessenger(new List { serviceProvider.GetService() }); SyncTreansfer syncTreansfer = serviceProvider.GetService(); syncTreansfer.AddSyncs(new List { serviceProvider.GetService() }); IApiServer apiServer = serviceProvider.GetService(); apiServer.AddPlugins(new List { serviceProvider.GetService() }); RelayClientTestTransfer relayClientTestTransfer = serviceProvider.GetService(); return serviceProvider; } public static ServiceCollection AddRelayServer(this ServiceCollection serviceCollection) { serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); return serviceCollection; } public static ServiceProvider UseRelayServer(this ServiceProvider serviceProvider) { IMessengerResolver messengerResolver = serviceProvider.GetService(); messengerResolver.AddMessenger(new List { serviceProvider.GetService() }); ResolverTransfer resolverTransfer = serviceProvider.GetService(); resolverTransfer.AddResolvers(new List { serviceProvider.GetService(), serviceProvider.GetService(), }); RelayServerNodeTransfer relayServerNodeTransfer = serviceProvider.GetService(); RelayServerMasterTransfer relayServerMasterTransfer = serviceProvider.GetService(); RelayServerValidatorTransfer relayServerValidatorTransfer = serviceProvider.GetService(); relayServerValidatorTransfer.AddValidators(new List { serviceProvider.GetService() }); return serviceProvider; } } }