using DysonNetwork.Shared.Proto; using Grpc.Net.ClientFactory; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; namespace DysonNetwork.Shared.Registry; public static class ServiceInjectionHelper { public static IServiceCollection AddRingService(this IServiceCollection services, ServiceRegistrar registrar) { var instance = registrar.GetServiceInstanceAsync("ring", "grpc").GetAwaiter().GetResult(); services .AddGrpcClient(o => o.Address = new Uri(instance)) .ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler() { ServerCertificateCustomValidationCallback = (_, _, _, _) => true } ); return services; } public static IServiceCollection AddAuthService(this IServiceCollection services, ServiceRegistrar registrar) { var instance = registrar.GetServiceInstanceAsync("pass", "grpc").GetAwaiter().GetResult(); services .AddGrpcClient(o => o.Address = new Uri(instance)) .ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler() { ServerCertificateCustomValidationCallback = (_, _, _, _) => true } ); services .AddGrpcClient(o => o.Address = new Uri(instance)) .ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler() { ServerCertificateCustomValidationCallback = (_, _, _, _) => true } ); return services; } public static IServiceCollection AddAccountService(this IServiceCollection services, ServiceRegistrar registrar) { var instance = registrar.GetServiceInstanceAsync("pass", "grpc").GetAwaiter().GetResult(); services .AddGrpcClient(o => o.Address = new Uri(instance)) .ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler() { ServerCertificateCustomValidationCallback = (_, _, _, _) => true } ); services.AddSingleton(); services .AddGrpcClient(o => o.Address = new Uri(instance) ) .ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler() { ServerCertificateCustomValidationCallback = (_, _, _, _) => true } ); services.AddGrpcClient(o => o.Address = new Uri(instance)) .ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler() { ServerCertificateCustomValidationCallback = (_, _, _, _) => true } ); services.AddGrpcClient(o => o.Address = new Uri(instance)) .ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler() { ServerCertificateCustomValidationCallback = (_, _, _, _) => true } ); services.AddGrpcClient(o => o.Address = new Uri(instance)) .ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler() { ServerCertificateCustomValidationCallback = (_, _, _, _) => true } ); services .AddGrpcClient(o => o.Address = new Uri(instance)) .ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler() { ServerCertificateCustomValidationCallback = (_, _, _, _) => true } ); services.AddSingleton(); services .AddGrpcClient(o => o.Address = new Uri(instance)) .ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler() { ServerCertificateCustomValidationCallback = (_, _, _, _) => true } ); services .AddGrpcClient(o => o.Address = new Uri(instance)) .ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler() { ServerCertificateCustomValidationCallback = (_, _, _, _) => true } ); return services; } public static IServiceCollection AddDriveService(this IServiceCollection services, ServiceRegistrar registrar) { var instance = registrar.GetServiceInstanceAsync("drive", "grpc").GetAwaiter().GetResult(); services.AddGrpcClient(o => o.Address = new Uri(instance)) .ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler() { ServerCertificateCustomValidationCallback = (_, _, _, _) => true } ); services.AddGrpcClient(o => o.Address = new Uri("https://_grpc.drive")) .ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler() { ServerCertificateCustomValidationCallback = (_, _, _, _) => true } ); return services; } public static IServiceCollection AddSphereService(this IServiceCollection services, ServiceRegistrar registrar) { var instance = registrar.GetServiceInstanceAsync("drive", "grpc").GetAwaiter().GetResult(); services .AddGrpcClient(o => o.Address = new Uri(instance)) .ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler() { ServerCertificateCustomValidationCallback = (_, _, _, _) => true } ); services .AddGrpcClient(o => o.Address = new Uri(instance)) .ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler() { ServerCertificateCustomValidationCallback = (_, _, _, _) => true } ); services.AddSingleton(); return services; } public static IServiceCollection AddDevelopService(this IServiceCollection services, ServiceRegistrar registrar) { var instance = registrar.GetServiceInstanceAsync("develop", "grpc").GetAwaiter().GetResult(); services.AddGrpcClient(o => o.Address = new Uri(instance)) .ConfigurePrimaryHttpMessageHandler(_ => new HttpClientHandler() { ServerCertificateCustomValidationCallback = (_, _, _, _) => true } ); return services; } }