private static void RegisterFusionDb(FusionBuilder fusion) { var listTypeDefinition = typeof(IKubernetesObject <V1ListMeta>); var listTypes = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(s => s.GetTypes()) .Where(p => listTypeDefinition.IsAssignableFrom(p)) .ToList(); var typeDefinition = typeof(IKubernetesObject <V1ObjectMeta>); var types = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(s => s.GetTypes()) .Where(p => typeDefinition.IsAssignableFrom(p)) .ToList(); foreach (var listType in listTypes) { try { var selectedSingleType = types.Single(type => listType.Name.Replace("List", "") == type.Name); var serviceType = typeof(KubernetesRepository <,>); var typeToAdd = serviceType.MakeGenericType(listType, selectedSingleType); fusion.AddComputeService(typeToAdd); } catch (Exception) { // ignored } } }
public static FusionBuilder AddBackendStatus <TBackendStatus>(this FusionBuilder fusion) where TBackendStatus : class, IBackendStatus { fusion.AddComputeService <TBackendStatus>(); fusion.Services.TryAddSingleton <IBackendStatus>(c => c.GetRequiredService <TBackendStatus>()); return(fusion); }
internal FusionRestEaseClientBuilder(FusionBuilder fusion) { Fusion = fusion; if (Services.Contains(AddedTagDescriptor)) { return; } // We want above Contains call to run in O(1), so... Services.Insert(0, AddedTagDescriptor); Fusion.AddReplicator(); Services.TryAddSingleton <WebSocketChannelProvider.Options>(); Services.TryAddSingleton <IChannelProvider, WebSocketChannelProvider>(); // FusionHttpMessageHandler (handles Fusion headers) Services.AddHttpClient(); Services.TryAddEnumerable(ServiceDescriptor.Singleton < IHttpMessageHandlerBuilderFilter, FusionHttpMessageHandlerBuilderFilter>()); Services.TryAddTransient <FusionHttpMessageHandler>(); // ResponseDeserializer & ReplicaResponseDeserializer Services.TryAddTransient <ResponseDeserializer>(c => new JsonResponseDeserializer() { JsonSerializerSettings = JsonNetSerializer.DefaultSettings }); Services.TryAddTransient <RequestBodySerializer>(c => new JsonRequestBodySerializer() { JsonSerializerSettings = JsonNetSerializer.DefaultSettings }); }
public static FusionBuilder AddBlazorUIComponents(this FusionBuilder fusion) { var services = fusion.Services; services.TryAddTransient <CommandRunner>(); services.TryAddScoped <BlazorModeHelper>(); return(fusion); }
public static FusionBuilder AddRestEaseClient(this FusionBuilder fusion, Action <FusionRestEaseClientBuilder> configureClient, Action <IServiceProvider, WebSocketChannelProvider.Options>?optionsBuilder = null) { var restEaseClient = fusion.AddRestEaseClient(optionsBuilder); configureClient.Invoke(restEaseClient); return(fusion); }
internal FusionAuthenticationBuilder(FusionBuilder fusion) { Fusion = fusion; Services.TryAddSingleton <ISessionFactory, SessionFactory>(); Services.TryAddScoped <ISessionProvider, SessionProvider>(); Services.TryAddTransient(c => (ISessionResolver)c.GetRequiredService <ISessionProvider>()); Services.TryAddTransient(c => c.GetRequiredService <ISessionProvider>().Session); Services.TryAddScoped <PresenceService>(); }
public static FusionBuilder AddBlazorUIServices(this FusionBuilder fusion) { var services = fusion.Services; services.TryAddScoped <UICommandRunner>(); services.TryAddScoped <UICommandFailureList>(); services.TryAddScoped <BlazorModeHelper>(); services.TryAddScoped <BlazorCircuitContext>(); return(fusion); }
public static FusionRestEaseClientBuilder AddRestEaseClient(this FusionBuilder fusion, Action <IServiceProvider, WebSocketChannelProvider.Options>?optionsBuilder = null) { var builder = new FusionRestEaseClientBuilder(fusion); if (optionsBuilder != null) { builder.ConfigureWebSocketChannel(optionsBuilder); } return(builder); }
public static FusionWebSocketServerBuilder AddWebSocketServer(this FusionBuilder fusion, Action <IServiceProvider, WebSocketServer.Options>?optionsBuilder = null) { var builder = new FusionWebSocketServerBuilder(fusion); if (optionsBuilder != null) { builder.ConfigureWebSocketServer(optionsBuilder); } return(builder); }
public static FusionBuilder AddFusionTime(this FusionBuilder fusion, Action <IServiceProvider, FusionTime.Options>?optionsBuilder = null) { var services = fusion.Services; services.TryAddSingleton(c => { var options = new FusionTime.Options(); optionsBuilder?.Invoke(c, options); return(options); }); fusion.AddComputeService <IFusionTime, Internal.FusionTime>(); return(fusion); }
public static FusionBuilder AddSandboxedKeyValueStore(this FusionBuilder fusion, Action <IServiceProvider, SandboxedKeyValueStore.Options>?optionsBuilder = null) { var services = fusion.Services; services.TryAddSingleton(c => { var options = new SandboxedKeyValueStore.Options(); optionsBuilder?.Invoke(c, options); return(options); }); fusion.AddComputeService <ISandboxedKeyValueStore, SandboxedKeyValueStore>(); return(fusion); }
public static FusionBuilder AddInMemoryKeyValueStore(this FusionBuilder fusion, Action <IServiceProvider, InMemoryKeyValueStore.Options>?optionsBuilder = null) { var services = fusion.Services; services.TryAddSingleton(c => { var options = new InMemoryKeyValueStore.Options(); optionsBuilder?.Invoke(c, options); return(options); }); fusion.AddComputeService <IKeyValueStore, InMemoryKeyValueStore>(); services.AddHostedService(c => (InMemoryKeyValueStore)c.GetRequiredService <IKeyValueStore>()); return(fusion); }
public static FusionBuilder AddLiveClock(this FusionBuilder fusion, Action <IServiceProvider, LiveClock.Options>?liveTimeOptionsBuilder = null) { var services = fusion.Services; services.TryAddSingleton <IPluralize>(new Pluralizer()); services.TryAddSingleton(c => { var options = new LiveClock.Options(); liveTimeOptionsBuilder?.Invoke(c, options); return(options); }); fusion.AddComputeService <ILiveClock, LiveClock>(); return(fusion); }
internal FusionWebSocketServerBuilder(FusionBuilder fusion) { Fusion = fusion; if (Services.Contains(AddedTagDescriptor)) { return; } // We want above Contains call to run in O(1), so... Services.Insert(0, AddedTagDescriptor); Fusion.AddPublisher(); Services.TryAddSingleton <WebSocketServer.Options>(); Services.TryAddSingleton <WebSocketServer>(); Services.AddMvcCore() .AddNewtonsoftJson( options => MemberwiseCopier.CopyMembers( JsonNetSerializer.DefaultSettings, options.SerializerSettings)); }
public static FusionWebServerBuilder AddWebServer(this FusionBuilder fusion, Action <IServiceProvider, WebSocketServer.Options>?optionsBuilder = null) => new(fusion, optionsBuilder);
public static FusionBuilder AddBackendStatus(this FusionBuilder fusion) => fusion.AddBackendStatus <BackendStatus>();