/// <summary> /// Instantiates and composes the composers. /// </summary> public void Compose() { // make sure it is there _composition.WithCollectionBuilder <ComponentCollectionBuilder>(); IEnumerable <Type> orderedComposerTypes; using (_logger.DebugDuration <Composers>("Preparing composer types.", "Prepared composer types.")) { orderedComposerTypes = PrepareComposerTypes(); } var composers = InstantiateComposers(orderedComposerTypes); using (_logger.DebugDuration <Composers>($"Composing composers. (log when >{LogThresholdMilliseconds}ms)", "Composed composers.")) { foreach (var composer in composers) { var componentType = composer.GetType(); using (_logger.DebugDuration <Composers>($"Composing {componentType.FullName}.", $"Composed {componentType.FullName}.", thresholdMilliseconds: LogThresholdMilliseconds)) { composer.Compose(_composition); } } } }
/// <summary> /// Gets the package actions collection builder. /// </summary> /// <param name="composition">The composition.</param> internal static PackageActionCollectionBuilder PackageActions(this Composition composition) => composition.WithCollectionBuilder <PackageActionCollectionBuilder>();
/// <summary> /// Gets the mappers collection builder. /// </summary> /// <param name="composition">The composition.</param> public static MapperCollectionBuilder Mappers(this Composition composition) => composition.WithCollectionBuilder <MapperCollectionBuilder>();
/// <summary> /// Gets the cache refreshers collection builder. /// </summary> /// <param name="composition">The composition.</param> public static CacheRefresherCollectionBuilder CacheRefreshers(this Composition composition) => composition.WithCollectionBuilder <CacheRefresherCollectionBuilder>();
/// <summary> /// Gets the components collection builder. /// </summary> public static ComponentCollectionBuilder Components(this Composition composition) => composition.WithCollectionBuilder <ComponentCollectionBuilder>();
/// <summary> /// Gets the post-migrations collection builder. /// </summary> /// <param name="composition">The composition.</param> internal static PostMigrationCollectionBuilder PostMigrations(this Composition composition) => composition.WithCollectionBuilder <PostMigrationCollectionBuilder>();
/// <summary> /// Gets the validators collection builder. /// </summary> /// <param name="composition">The composition.</param> internal static ManifestValueValidatorCollectionBuilder Validators(this Composition composition) => composition.WithCollectionBuilder <ManifestValueValidatorCollectionBuilder>();
/// <summary> /// Gets the actions collection builder. /// </summary> /// <param name="composition">The composition.</param> /// <returns></returns> internal static ActionCollectionBuilder Actions(this Composition composition) => composition.WithCollectionBuilder <ActionCollectionBuilder>();
/// <summary> /// Gets the url providers collection builder. /// </summary> /// <param name="composition">The composition.</param> internal static UrlProviderCollectionBuilder UrlProviders(this Composition composition) => composition.WithCollectionBuilder <UrlProviderCollectionBuilder>();
/// <summary> /// Gets the TourFilters collection builder. /// </summary> public static TourFilterCollectionBuilder TourFilters(this Composition composition) => composition.WithCollectionBuilder <TourFilterCollectionBuilder>();
/// <summary> /// Gets the health checks collection builder. /// </summary> /// <param name="composition">The composition.</param> public static HealthCheckCollectionBuilder HealthChecks(this Composition composition) => composition.WithCollectionBuilder <HealthCheckCollectionBuilder>();
/// <summary> /// Gets the filtered controller factories collection builder. /// </summary> /// <param name="composition">The composition.</param> /// <returns></returns> public static FilteredControllerFactoryCollectionBuilder FilderedControllerFactory(this Composition composition) => composition.WithCollectionBuilder <FilteredControllerFactoryCollectionBuilder>();
/// <summary> /// Gets the editor validators collection builder. /// </summary> /// <param name="composition">The composition.</param> /// <returns></returns> internal static EditorValidatorCollectionBuilder EditorValidators(this Composition composition) => composition.WithCollectionBuilder <EditorValidatorCollectionBuilder>();
/// <summary> /// Gets the content finders collection builder. /// </summary> /// <param name="composition">The composition.</param> /// <returns></returns> public static ContentFinderCollectionBuilder ContentFinders(this Composition composition) => composition.WithCollectionBuilder <ContentFinderCollectionBuilder>();
/// <summary> /// Gets the content apps collection builder. /// </summary> /// <param name="composition">The composition.</param> /// <returns></returns> public static ContentAppFactoryCollectionBuilder ContentApps(this Composition composition) => composition.WithCollectionBuilder <ContentAppFactoryCollectionBuilder>();
/// <summary> /// Gets the data editor collection builder. /// </summary> /// <param name="composition">The composition.</param> public static DataEditorCollectionBuilder DataEditors(this Composition composition) => composition.WithCollectionBuilder <DataEditorCollectionBuilder>();
/// <summary> /// Gets the property value converters collection builder. /// </summary> /// <param name="composition">The composition.</param> public static PropertyValueConverterCollectionBuilder PropertyValueConverters(this Composition composition) => composition.WithCollectionBuilder <PropertyValueConverterCollectionBuilder>();
/// <summary> /// Gets the url segment providers collection builder. /// </summary> /// <param name="composition">The composition.</param> public static UrlSegmentProviderCollectionBuilder UrlSegmentProviders(this Composition composition) => composition.WithCollectionBuilder <UrlSegmentProviderCollectionBuilder>();