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); }
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 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); }