/// <summary> /// Adds the <see cref="FileExtensionOperator"/> implementation of <see cref="IFileExtensionOperator"/> as a <see cref="ServiceLifetime.Singleton"/>. /// </summary> public static IServiceAction <IFileExtensionOperator> AddFileExtensionOperatorAction(this IServiceCollection services) { var serviceAction = ServiceAction.New <IFileExtensionOperator>(() => services.AddFileExtensionOperator()); return(serviceAction); }
/// <summary> /// Adds the <see cref="INowProvider"/> service. /// </summary> public static ServiceAction <INowProvider> AddNowProviderAction(this IServiceCollection services) { var serviceAction = ServiceAction <INowProvider> .New(() => services.AddNowProvider()); return(serviceAction); }
/// <summary> /// Adds the <see cref="TimestampUtcDirectoryNameProvider"/> implementation of <see cref="ITimestampUtcDirectoryNameProvider"/> as a <see cref="ServiceLifetime.Singleton"/>. /// </summary> public static ServiceAction <ITimestampUtcDirectoryNameProvider> AddDefaultTimestampUtcDirectoryNameProviderAction(this IServiceCollection services) { var serviceAction = ServiceAction <ITimestampUtcDirectoryNameProvider> .New(() => services.AddDefaultTimestampUtcDirectoryNameProvider()); return(serviceAction); }
/// <summary> /// Adds the <see cref="DirectorySeparatorOperator"/> implementation of <see cref="IDirectorySeparatorOperator"/> as a <see cref="ServiceLifetime.Singleton"/>. /// </summary> public static IServiceAction <IDirectorySeparatorOperator> AddDirectorySeparatorOperatorAction(this IServiceCollection services) { var serviceAction = ServiceAction.New <IDirectorySeparatorOperator>(() => services.AddDirectorySeparatorOperator()); return(serviceAction); }
/// <summary> /// Adds the <see cref="OSPlatformProvider"/> implementation of <see cref="IOSPlatformProvider"/> as a <see cref="ServiceLifetime.Singleton"/>. /// </summary> public static IServiceAction <IOSPlatformProvider> AddOSPlatformProviderAction(this IServiceCollection services) { var serviceAction = ServiceAction.New <IOSPlatformProvider>(() => services.AddOSPlatformProvider()); return(serviceAction); }
/// <summary> /// Adds the <see cref="InMemoryMessageRepository"/> implementation of <see cref="IMessageRepository"/> as a <see cref="ServiceLifetime.Singleton"/>. /// </summary> public static IServiceAction <IMessageRepository> AddInMemoryMessageRepositoryAction(this IServiceCollection services) { var serviceAction = ServiceAction <IMessageRepository> .New(() => services.AddInMemoryMessageRepository()); return(serviceAction); }
/// <summary> /// Adds the <see cref="LocalRepositoryDirectoryPathsListTextFileSerializer"/> implementation of <see cref="ILocalRepositoryDirectoryPathsListTextFileSerializer"/> as a <see cref="ServiceLifetime.Singleton"/>. /// </summary> public static IServiceAction <ILocalRepositoryDirectoryPathsListTextFileSerializer> AddLocalRepositoryDirectoryPathsListTextFileSerializerAction(this IServiceCollection services) { var serviceAction = ServiceAction.New <ILocalRepositoryDirectoryPathsListTextFileSerializer>(() => services.AddLocalRepositoryDirectoryPathsListTextFileSerializer()); return(serviceAction); }
/// <summary> /// Adds the <see cref="ProcessStartTimeProvider"/> implementation of <see cref="IProcessStartTimeProvider"/> as a <see cref="ServiceLifetime.Singleton"/>. /// </summary> public static ServiceAction <IProcessStartTimeProvider> AddDefaultProcessStartTimeProviderAction(this IServiceCollection services) { var serviceAction = ServiceAction <IProcessStartTimeProvider> .New(() => services.AddDefaultProcessStartTimeProvider()); return(serviceAction); }
/// <summary> /// Adds the <see cref="OrganizationDirectoryNameProvider"/> implementation of <see cref="IOrganizationDirectoryNameProvider"/> as a <see cref="ServiceLifetime.Singleton"/>. /// </summary> public static IServiceAction <IOrganizationDirectoryNameProvider> AddOrganizationDirectoryNameProviderAction(this IServiceCollection services) { var serviceAction = ServiceAction <IOrganizationDirectoryNameProvider> .New(() => services.AddOrganizationDirectoryNameProvider()); return(serviceAction); }
/// <summary> /// Adds the <see cref="ServiceDescriptorDescriber"/> implementation of <see cref="IServiceDescriptorDescriber"/> as a <see cref="ServiceLifetime.Singleton"/>. /// </summary> public static IServiceAction <IServiceDescriptorDescriber> AddServiceDescriptorDescriberAction(this IServiceCollection services) { var serviceAction = ServiceAction.New <IServiceDescriptorDescriber>(() => services.AddServiceDescriptorDescriber()); return(serviceAction); }
/// <summary> /// Adds the <see cref="CurrentDirectoryPathProvider"/> implementation of <see cref="ICurrentDirectoryPathProvider"/> as a <see cref="ServiceLifetime.Singleton"/>. /// </summary> public static IServiceAction <ICurrentDirectoryPathProvider> AddCurrentDirectoryPathProviderAction(this IServiceCollection services) { var serviceAction = ServiceAction.New <ICurrentDirectoryPathProvider>(() => services.AddCurrentDirectoryPathProvider()); return(serviceAction); }
/// <summary> /// Makes <see cref="MachineConfiguration"/> available via <see cref="Microsoft.Extensions.Options.IOptions{TOptions}"/>. /// </summary> public static IServiceAction <IOptions <MachineConfiguration> > AddMachineConfigurationOptionsAction(this IServiceCollection services) { var serviceAction = ServiceAction <IOptions <MachineConfiguration> > .New(() => services.AddMachineConfigurationOptions()); return(serviceAction); }
/// <summary> /// Adds the <see cref="MachineNameProvider"/> implementation of <see cref="IMachineNameProvider"/> as a <see cref="ServiceLifetime.Singleton"/>. /// </summary> public static IServiceAction <IMachineNameProvider> AddMachineNameProviderAction(this IServiceCollection services) { var serviceAction = ServiceAction.New <IMachineNameProvider>(() => services.AddMachineNameProvider()); return(serviceAction); }
/// <summary> /// Adds the <see cref="GeometryFactoryProvider"/> implementation of <see cref="IGeometryFactoryProvider"/> as a <see cref="ServiceLifetime.Singleton"/>. /// </summary> public static IServiceAction <IGeometryFactoryProvider> AddGeometryFactoryProviderAction(this IServiceCollection services) { var serviceAction = ServiceAction.New <IGeometryFactoryProvider>(() => services.AddGeometryFactoryProvider()); return(serviceAction); }
/// <summary> /// Adds the <see cref="RemoteRepositoryUrlsListTextFileSerializer"/> implementation of <see cref="IRemoteRepositoryUrlsListTextFileSerializer"/> as a <see cref="ServiceLifetime.Singleton"/>. /// </summary> public static IServiceAction <IRemoteRepositoryUrlsListTextFileSerializer> AddRemoteRepositoryUrlsListTextFileSerializerAction(this IServiceCollection services) { var serviceAction = ServiceAction.New <IRemoteRepositoryUrlsListTextFileSerializer>(() => services.AddRemoteRepositoryUrlsListTextFileSerializer()); return(serviceAction); }
protected override void ConfigureServicesBody(IServiceCollection services) { var isConstruction = true; // Perhaps get from service or configuration. // -1 ( IServiceAction <IDirectoryNameOperator> _, IServiceAction <IDirectorySeparatorOperator> _, IServiceAction <IFileExtensionOperator> _, IServiceAction <IFileNameOperator> fileNameOperatorAction, IServiceAction <IStringlyTypedPathOperator> stringlyTypedPathOperatorAction ) = services.AddStringlyTypedPathRelatedOperatorsAction(); // 0 IServiceAction <DeepEqualsXElementEqualityComparer> deepEqualsXElementEqualityComparerAction = ServiceAction <DeepEqualsXElementEqualityComparer> .New(() => services.AddSingleton <DeepEqualsXElementEqualityComparer>()); IServiceAction <FunctionalityDirectoryNameProvider> functionalityDirectoryNameProviderAction = ServiceAction <FunctionalityDirectoryNameProvider> .New(() => services.AddSingleton <FunctionalityDirectoryNameProvider>()); IServiceAction <IGuidProvider> guidProviderAction = services.AddGuidProviderAction(); IServiceAction <IMessageFormatter> messageFormatterAction = ServiceAction <IMessageFormatter> .New(serviceCollection => { serviceCollection .AddSingleton <IMessageFormatter, MessageFormatter>() ; }); //IServiceAction<IMessageRepository> messageRepositoryAction = ServiceAction<IMessageRepository>.New(serviceCollection => serviceCollection.AddSingleton<IMessageRepository, InMemoryMessageRepository>()); // Adds the default in-memory message repository. //IServiceAction<IMessageSink> messageSinkAction = ServiceAction<IMessageSink>.New( // serviceCollection => serviceCollection.AddSingleton<IMessageSink>( // serviceProvider => // { // var programStartTimeSpecificMessagesOutputDirectoryPathProvider = serviceProvider.GetRequiredService<IProgramStartTimeSpecificMessagesOutputDirectoryPathProvider>(); // var programStartTimeSpecificMessagesOutputDirectoryPath = programStartTimeSpecificMessagesOutputDirectoryPathProvider.GetProgramStartTimeSpecificMessagesOutputDirectoryPathAsync().Result; // var stringlyTypedPathOperator = serviceProvider // })); // No async Add() methods allowed! IServiceAction <IMessageSinkProvider> messageSinkProviderAction = ServiceAction <IMessageSinkProvider> .New(() => services.AddSingleton <IMessageSinkProvider, DefaultMessageSinkProvider>()); // One message sink provider for the whole application. IServiceAction <INowUtcProvider> nowUtcProviderAction = services.AddNowUtcProviderAction(); IServiceAction <OrderIndependentXElementEqualityComparer> orderIndependentXElementEqualityComparerAction = ServiceAction <OrderIndependentXElementEqualityComparer> .New(() => services.AddSingleton <OrderIndependentXElementEqualityComparer>()); IServiceAction <IProcessStartTimeUtcProvider> processStartTimeUtcProviderAction = services.AddProcessStartTimeUtcProviderAction(); IServiceAction <IProgramNameProvider> programNameProviderAction = services.AddProgramNameProviderAction(); IServiceAction <ITemporaryDirectoryFilePathProvider> temporaryDirectoryFilePathProviderAction = services.AddTemporaryDirectoryFilePathProviderAction(); IServiceAction <ITestingDataDirectoryContentPathsProvider> testingDataDirectoryContentPathsProviderAction = services.AddTestingDataDirectoryContentPathsProviderAction(); IServiceAction <ITimestampUtcDirectoryNameProvider> timestampUtcDirectoryNameProviderAction = services.AddTimestampUtcDirectoryNameProviderAction(); IServiceAction <IVisualStudioProjectFileDeserializationSettings> visualStudioProjectFileDeserializationSettingsAction = ServiceAction <IVisualStudioProjectFileDeserializationSettings> .New((serviceCollection) => { serviceCollection .AddVisualStudioProjectFileDeserializationSettings(settings => { settings.ThrowAtErrorOccurrence = false; settings.ThrowIfAnyErrorAtEnd = true; settings.ThrowIfInvalidProjectFile = false; }); }); // 1 IServiceAction <IProcessStartTimeUtcDirectoryNameProvider> processStartTimeUtcDirectoryNameProviderAction = services.AddProcessStartTimeUtcDirectoryNameProviderAction( processStartTimeUtcProviderAction, timestampUtcDirectoryNameProviderAction); IServiceAction <IProgramNameDirectoryNameProvider> programNameDirectoryNameProviderAction = services.AddProgramNameDirectoryNameProviderAction( programNameProviderAction); IServiceAction <IMessagesOutputBaseDirectoryPathProvider> messagesOutputBaseDirectoryPathProviderAction = ServiceAction <IMessagesOutputBaseDirectoryPathProvider> .New((serviceCollection) => { serviceCollection .AddSingleton <IMessagesOutputBaseDirectoryPathProvider, MessagesOutputBaseDirectoryPathProvider>() .Run(temporaryDirectoryFilePathProviderAction) .Run(stringlyTypedPathOperatorAction) ; }); IServiceAction <IProjectFileDeserializationMessagesOutputFileNameProvider> projectFileDeserializationMessagesOutputFileNameProviderAction = isConstruction ? ServiceAction <IProjectFileDeserializationMessagesOutputFileNameProvider> .New((serviceCollection) => { serviceCollection .AddSingleton <IProjectFileDeserializationMessagesOutputFileNameProvider, ConstructionTimeProjectFileDeserializationMessagesOutputFileNameProvider>() .Run(fileNameOperatorAction) .Run(stringlyTypedPathOperatorAction) ; }) : ServiceAction <IProjectFileDeserializationMessagesOutputFileNameProvider> .New((serviceCollection) => { serviceCollection .AddSingleton <IProjectFileDeserializationMessagesOutputFileNameProvider, ProjectFileDeserializationMessagesOutputFileNameProvider>() .Run(fileNameOperatorAction) .Run(guidProviderAction) .Run(stringlyTypedPathOperatorAction) ; }); IServiceAction <IVisualStudioProjectFileToXElementConverter> visualStudioProjectFileToXElementConverter = ServiceAction <IVisualStudioProjectFileToXElementConverter> .New((serviceCollection) => { serviceCollection .AddSingleton <IVisualStudioProjectFileToXElementConverter, VisualStudioProjectFileToXElementConverter>() .Run(nowUtcProviderAction) .Run(visualStudioProjectFileDeserializationSettingsAction) ; }); IServiceAction <IVisualStudioProjectFileValidator> visualStudioProjectFileValidatorAction = ServiceAction <IVisualStudioProjectFileValidator> .New((serviceCollection) => { serviceCollection .AddSingleton <IVisualStudioProjectFileValidator, VisualStudioProjectFileValidator>() .Run(nowUtcProviderAction) ; }); // 2 IServiceAction <IProgramSpecificMessagesOutputDirectoryPathProvider> programSpecificMessagesOutputDirectoryPathProviderAction = ServiceAction <IProgramSpecificMessagesOutputDirectoryPathProvider> .New(serviceCollection => { serviceCollection .AddSingleton <IProgramSpecificMessagesOutputDirectoryPathProvider, ProgramSpecificMessagesOutputDirectoryPathProvider>() .Run(messagesOutputBaseDirectoryPathProviderAction) .Run(programNameDirectoryNameProviderAction) .Run(stringlyTypedPathOperatorAction) ; }); IServiceAction <IRelativeFilePathsVisualStudioProjectFileStreamSerializer> relativeFilePathsVisualStudioProjectFileSerializerAction = ServiceAction <IRelativeFilePathsVisualStudioProjectFileStreamSerializer> .New((serviceCollection) => { serviceCollection .AddSingleton <IRelativeFilePathsVisualStudioProjectFileStreamSerializer, RelativeFilePathsVisualStudioProjectFileStreamSerializer>() .Run(stringlyTypedPathOperatorAction) .Run(visualStudioProjectFileToXElementConverter) ; }); // 3 IServiceAction <IProgramStartTimeSpecificMessagesOutputDirectoryPathProvider> programNameStartTimeMessagesOutputDirectoryPathProviderAction = isConstruction ? ServiceAction <IProgramStartTimeSpecificMessagesOutputDirectoryPathProvider> .New(serviceCollection => { serviceCollection .AddSingleton <IProgramStartTimeSpecificMessagesOutputDirectoryPathProvider, ConstructionTimeMessagesOutputDirectoryPathProvider>() .Run(programSpecificMessagesOutputDirectoryPathProviderAction) .Run(stringlyTypedPathOperatorAction) ; }) : ServiceAction <IProgramStartTimeSpecificMessagesOutputDirectoryPathProvider> .New(serviceCollection => { serviceCollection .AddSingleton <IProgramStartTimeSpecificMessagesOutputDirectoryPathProvider, ProgramNameStartTimeMessagesOutputDirectoryPathProvider>() .Run(programSpecificMessagesOutputDirectoryPathProviderAction) .Run(processStartTimeUtcDirectoryNameProviderAction) .Run(stringlyTypedPathOperatorAction) ; }) ; // 4 IServiceAction <IFunctionalitySpecificMessagesOutputDirectoryPathProvider> programNameStartTimeFunctionalityMessagesOutputDirectoryPathProviderAction = ServiceAction <IFunctionalitySpecificMessagesOutputDirectoryPathProvider> .New((serviceCollection) => { serviceCollection .AddSingleton <IFunctionalitySpecificMessagesOutputDirectoryPathProvider, ProgramNameStartTimeFunctionalityMessagesOutputDirectoryPathProvider>() .Run(functionalityDirectoryNameProviderAction) .Run(programNameStartTimeMessagesOutputDirectoryPathProviderAction) .Run(stringlyTypedPathOperatorAction) ; }); // 5 IServiceAction <IVisualStudioProjectFileSerializerMessagesOutputFilePathProvider> visualStudioProjectFileSerializerMessagesOutputFilePathProviderAction = ServiceAction <IVisualStudioProjectFileSerializerMessagesOutputFilePathProvider> .New((serviceCollection) => { serviceCollection .AddSingleton <IVisualStudioProjectFileSerializerMessagesOutputFilePathProvider, VisualStudioProjectFileSerializerMessagesOutputFilePathProvider>() .Run(projectFileDeserializationMessagesOutputFileNameProviderAction) .Run(programNameStartTimeFunctionalityMessagesOutputDirectoryPathProviderAction) .Run(stringlyTypedPathOperatorAction) ; }); // 6 IServiceAction <IFunctionalVisualStudioProjectFileStreamSerializer> functionalVisualStudioProjectFileSerializerAction = ServiceAction <IFunctionalVisualStudioProjectFileStreamSerializer> .New((serviceCollection) => { serviceCollection .AddSingleton <IFunctionalVisualStudioProjectFileStreamSerializer, FunctionalVisualStudioProjectFileStreamSerializer>() .Run(messageFormatterAction) .Run(nowUtcProviderAction) .Run(relativeFilePathsVisualStudioProjectFileSerializerAction) .Run(stringlyTypedPathOperatorAction) .Run(visualStudioProjectFileDeserializationSettingsAction) .Run(visualStudioProjectFileSerializerMessagesOutputFilePathProviderAction) .Run(visualStudioProjectFileValidatorAction) ; }); // 7 IServiceAction <IVisualStudioProjectFileStreamSerializer> visualStudioProjectFileStreamSerializerAction = ServiceAction <IVisualStudioProjectFileStreamSerializer> .New((serviceCollection) => { serviceCollection .AddSingleton <IVisualStudioProjectFileStreamSerializer, VisualStudioProjectFileStreamSerializer>() .Run(functionalVisualStudioProjectFileSerializerAction) .Run(messageSinkProviderAction) ; }); // 8 IServiceAction <IVisualStudioProjectFileSerializer> visualStudioProjectFileSerializerAction = ServiceAction <IVisualStudioProjectFileSerializer> .New((serviceCollection) => { serviceCollection .AddSingleton <IVisualStudioProjectFileSerializer, VisualStudioProjectFileSerializer>() .Run(visualStudioProjectFileStreamSerializerAction) ; }); services .Run(deepEqualsXElementEqualityComparerAction) .Run(fileNameOperatorAction) .Run(functionalityDirectoryNameProviderAction) .Run(functionalVisualStudioProjectFileSerializerAction) .Run(guidProviderAction) .Run(messagesOutputBaseDirectoryPathProviderAction) .Run(messageFormatterAction) .Run(messageSinkProviderAction) .Run(nowUtcProviderAction) .Run(orderIndependentXElementEqualityComparerAction) .Run(processStartTimeUtcDirectoryNameProviderAction) .Run(processStartTimeUtcProviderAction) .Run(programNameDirectoryNameProviderAction) .Run(programNameProviderAction) .Run(programNameStartTimeMessagesOutputDirectoryPathProviderAction) .Run(programNameStartTimeFunctionalityMessagesOutputDirectoryPathProviderAction) .Run(projectFileDeserializationMessagesOutputFileNameProviderAction) .Run(relativeFilePathsVisualStudioProjectFileSerializerAction) .Run(stringlyTypedPathOperatorAction) .Run(temporaryDirectoryFilePathProviderAction) .Run(testingDataDirectoryContentPathsProviderAction) .Run(timestampUtcDirectoryNameProviderAction) .Run(visualStudioProjectFileSerializerAction) .Run(visualStudioProjectFileStreamSerializerAction) .Run(visualStudioProjectFileSerializerMessagesOutputFilePathProviderAction) .Run(visualStudioProjectFileToXElementConverter) .Run(visualStudioProjectFileDeserializationSettingsAction) .Run(visualStudioProjectFileValidatorAction) ; }
/// <summary> /// Adds the <see cref="RepositoryNameAndLocalDirectoryPathMappingStringSerializer"/> implementation of <see cref="IRepositoryNameAndLocalDirectoryPathMappingStringSerializer"/> as a <see cref="ServiceLifetime.Singleton"/>. /// </summary> public static IServiceAction <IRepositoryNameAndLocalDirectoryPathMappingStringSerializer> AddRepositoryNameAndLocalDirectoryPathMappingStringSerializerAction(this IServiceCollection services) { var serviceAction = ServiceAction.New <IRepositoryNameAndLocalDirectoryPathMappingStringSerializer>(() => services.AddRepositoryNameAndLocalDirectoryPathMappingStringSerializer()); return(serviceAction); }
/// <summary> /// Adds the <see cref="VisualStudioProjectFileTransformer"/> implementation of <see cref="IVisualStudioProjectFileTransformer"/> as a <see cref="ServiceLifetime.Singleton"/>. /// </summary> public static IServiceAction <IVisualStudioProjectFileTransformer> AddVisualStudioProjectFileTransformerAction(this IServiceCollection services) { var serviceAction = ServiceAction <IVisualStudioProjectFileTransformer> .New(() => services.AddVisualStudioProjectFileTransformer()); return(serviceAction); }
/// <summary> /// Adds the <see cref="LocalUserProfileDirectoryPathProvider"/> implementation of <see cref="IUserProfileDirectoryPathProvider"/> as a <see cref="ServiceLifetime.Singleton"/>. /// </summary> public static IServiceAction <IUserProfileDirectoryPathProvider> AddLocalUserProfileDirectoryPathProviderAction_Old(this IServiceCollection services) { var serviceAction = ServiceAction <IUserProfileDirectoryPathProvider> .New(() => services.AddLocalUserProfileDirectoryPathProvider_Old()); return(serviceAction); }
/// <summary> /// Adds the <see cref="CurrentUtcDateTimeProvider"/> implementation of <see cref="ICurrentUtcDateTimeProvider"/> as a <see cref="ServiceLifetime.Singleton"/>. /// </summary> public static IServiceAction <ICurrentUtcDateTimeProvider> AddCurrentUtcDateTimeProviderAction(this IServiceCollection services) { var serviceAction = ServiceAction.New <ICurrentUtcDateTimeProvider>(() => services.AddCurrentUtcDateTimeProvider()); return(serviceAction); }
/// <summary> /// Adds a file-based <see cref="IHumanOutput"/> service that uses the default human output file name. /// </summary> public static IServiceAction <IHumanOutput> AddFileHumanOutputAction(this IServiceCollection services) { var serviceAction = ServiceAction <IHumanOutput> .New(() => services.AddFileHumanOutput()); return(serviceAction); }
/// <summary> /// Adds the <see cref="MessageFormatter"/> implementation of <see cref="IMessageFormatter"/> as a <see cref="ServiceLifetime.Singleton"/>. /// </summary> public static IServiceAction <IMessageFormatter> AddMessageFormatterAction(this IServiceCollection services) { var serviceAction = ServiceAction <IMessageFormatter> .New(() => services.AddMessageFormatter()); return(serviceAction); }
/// <summary> /// Adds the see <see cref="VisualStudioProjectFileXDocumentPrettifier"/> implementation of <see cref="IVisualStudioProjectFileXDocumentPrettifier"/> as a s<see cref="ServiceLifetime.Singleton"/>. /// </summary> public static IServiceAction <IVisualStudioProjectFileXDocumentPrettifier> AddVisualStudioProjectFileXDocumentPrettifierAction(this IServiceCollection services) { var serviceAction = ServiceAction.New <IVisualStudioProjectFileXDocumentPrettifier>(() => services.AddVisualStudioProjectFileXDocumentPrettifier()); return(serviceAction); }