/// <summary> /// Configures Firestorm Stems using Stem types from the given <see cref="Assembly"/> within the given <see cref="baseNamespace"/>. /// </summary> public static IFirestormServicesBuilder AddRoots(this IFirestormServicesBuilder builder, Assembly assembly, string baseNamespace) { builder.AddDerivedRoots(); builder.Add(new AxisTypesLocation <Root>(assembly, baseNamespace)); return(builder); }
/// <summary> /// Configures the data source for this Firestorm API. /// </summary> public static IFirestormServicesBuilder AddDataSource(this IFirestormServicesBuilder builder, IDataSource dataSource) { //builder.AddDataSourceTypeFinder(); //builder.AddDataSourceRoots(); builder.Add <IDataSource>(dataSource); return(builder); }
/// <summary> /// Configures Firestorm endpoints. /// </summary> public static IFirestormServicesBuilder AddEndpoints(this IFirestormServicesBuilder builder, Func <IServiceProvider, EndpointConfiguration> factoryFunction) { builder.AddEndpointsInvoker(); builder.Add <EndpointConfiguration>(factoryFunction); return(builder); }
/// <summary> /// Configures Firestorm endpoints. /// </summary> public static IFirestormServicesBuilder AddEndpoints(this IFirestormServicesBuilder builder, EndpointConfiguration config) { builder.AddEndpointsInvoker(); builder.Add <EndpointConfiguration>(config); return(builder); }
/// <summary> /// Configures the <see cref="DerivedRootsResourceFactory"/>. /// </summary> private static IFirestormServicesBuilder AddDerivedRoots(this IFirestormServicesBuilder builder) { builder.Add <IRootResourceFactory>(sp => new DerivedRootsResourceFactory { RootTypeGetter = sp.GetService <AxisTypesLocation <Root> >().GetTypeGetter() }); return(builder); }
/// <summary> /// Configures Firestorm endpoints. /// Assumes <see cref="EndpointConfiguration"/> is already configured elsewhere. /// </summary> public static IFirestormServicesBuilder AddEndpointsInvoker(this IFirestormServicesBuilder builder) { builder .Add <IRequestInvoker, EndpointsRequestInvoker>() .EnableFeatures <EndpointServices>() .AddFeature <EndpointServices, DefaultEndpointFeature>(); return(builder); }
/// <summary> /// Configures Firestorm endpoints. /// </summary> public static IFirestormServicesBuilder AddEndpoints(this IFirestormServicesBuilder builder, Action <EndpointConfiguration> configureAction) { builder.AddEndpointsInvoker(); var config = new EndpointConfiguration(); configureAction(config); builder.Add <EndpointConfiguration>(config); return(builder); }
/// <summary> /// Configures the <see cref="DataSourceRootResourceFactory"/> for Stems. /// </summary> internal static IFirestormServicesBuilder AddDataSourceRoots(this IFirestormServicesBuilder builder) { builder.Add <IRootResourceFactory>(sp => new DataSourceRootResourceFactory { DataSource = sp.GetService <IDataSource>(), StemTypeGetter = sp.GetService <AxisTypesLocation <Stem> >().GetTypeGetter(), RootBehavior = DataSourceRootAttributeBehavior.UseAllStemsExceptDisallowed // TODO support this option }); return(builder); }
/// <summary> /// Configures Firestorm Stems using Stem types from the given <see cref="Assembly"/> within the given <see cref="baseNamespace"/>. /// </summary> public static IFirestormServicesBuilder AddStems(this IFirestormServicesBuilder builder, Assembly assembly, string baseNamespace) { builder.EnableFeatures <StemsServices>() .AddFeature <StemsServices, DefaultStemsFeature>(); builder.AddStartResourceFactory(sp => new StemsStartResourceFactory { StemsServices = sp.GetService <StemsServices>(), RootResourceFactory = CreateRootResourceFactory(sp) }); builder.Add(new AxisTypesLocation <Stem>(assembly, baseNamespace)); return(builder); }
public static IFirestormServicesBuilder EnableFeatures <T>(this IFirestormServicesBuilder builder) where T : class, new() { return(builder .Add <T>(sp => { var target = new T(); foreach (IFeature <T> feature in sp.GetServices <IFeature <T> >()) { feature.AddTo(target); } return target; })); }
public static IFirestormServicesBuilder Add <TAbstraction, TImplementation>(this IFirestormServicesBuilder builder) where TImplementation : class, TAbstraction where TAbstraction : class { return(builder.Add(typeof(TAbstraction), typeof(TImplementation))); }
public static IFirestormServicesBuilder AddFeature <T, TFeature>(this IFirestormServicesBuilder builder) where TFeature : class, IFeature <T> { return(builder.Add <IFeature <T>, TFeature>()); }
/// <summary> /// Configures a <see cref="IItemTypeFinder"/> that finds the entity types in the data source. /// </summary> internal static IFirestormServicesBuilder AddDataSourceTypeFinder(this IFirestormServicesBuilder builder) { builder.Add <IItemTypeFinder, DataSourceTypeFinder>(); return(builder); }
/// <summary> /// Configures the start resource for this Firestorm API. /// </summary> public static IFirestormServicesBuilder AddStartResourceFactory(this IFirestormServicesBuilder builder, IStartResourceFactory startResourceFactory) { builder.Add <IStartResourceFactory>(startResourceFactory); return(builder); }
/// <summary> /// Configures the start resource for this Firestorm API. /// </summary> public static IFirestormServicesBuilder AddStartResourceFactory(this IFirestormServicesBuilder builder, Func <IServiceProvider, IStartResourceFactory> startResourceFactoryFunc) { builder.Add <IStartResourceFactory>(startResourceFactoryFunc); return(builder); }
public static IFirestormServicesBuilder Add(this IFirestormServicesBuilder builder, Type serviceType) { return(builder.Add(serviceType, serviceType)); }
public static IFirestormServicesBuilder Add <TService>(this IFirestormServicesBuilder builder) where TService : class { return(builder.Add(typeof(TService), typeof(TService))); }