/// <summary> /// Add Ray /// </summary> /// <param name="services"><see cref="IServiceCollection"/></param> /// <param name="configuration">Ray and Ray module configuration</param> /// <param name="builder">Provide a action for building Ray</param> /// <returns></returns> internal static IServiceCollection AddRay(this IServiceCollection services, IConfiguration configuration, Action <IRayBuilder> builder) { var build = new RayBuilder(services, configuration); if (builder == null) { throw new RayConfigurationException("Did not inject MQ providers and Storage providers into Ray"); } builder.Invoke(build); //Ray builder build.Build(); return(services); }
/// <summary> /// Add Ray /// </summary> /// <param name="services"><see cref="IServiceCollection"/></param> /// <param name="configuration">Ray and Ray module configuration</param> /// <param name="builder">Provide a action for building Ray</param> /// <returns></returns> internal static IServiceCollection AddRay(this IServiceCollection services, IConfiguration configuration, Action <IRayBuilder> builder) { services.AddSingleton(typeof(IKeyedServiceCollection <,>), typeof(KeyedServiceCollection <,>)); services.AddLogging(); var build = new RayBuilder(services, configuration); if (builder == null) { throw new RayConfigurationException("Did not inject MQ providers and Storage providers into Ray"); } builder.Invoke(build); //Ray builder build.Build(); return(services); }