public static IServiceActionAggregation01 AddOutputFilePathProviderActions(this IServiceAction _, IServiceAction <IDateTimeDirectoryNameProvider> dateTimeDirectoryNameProviderAction, IServiceAction <IDirectoryNameProvider> directoryNameProviderAction, IServiceAction <IProcessNameProvider> processNameProviderAction, IServiceAction <IProcessStartTimeProvider> processStartTimeProviderAction, IServiceAction <IRootOutputDirectoryPathProvider> rootOutputDirectoryPathProviderAction, IServiceAction <IStringlyTypedPathOperator> stringlyTypedPathOperatorAction) { var processDirectoryNameProviderAction = _.AddProcessDirectoryNameProviderAction( processNameProviderAction, directoryNameProviderAction); var processSpecificOutputDirectoryPathProviderAction = _.AddProcessSpecificOutputDirectoryPathProviderAction( processDirectoryNameProviderAction, rootOutputDirectoryPathProviderAction, stringlyTypedPathOperatorAction); var processStartTimeDirectoryNameProviderAction = _.AddProcessStartTimeDirectoryNameProviderAction( processStartTimeProviderAction, dateTimeDirectoryNameProviderAction); var processStartTimeSpecificOutputDirectoryPathProviderAction = _.AddProcessStartTimeSpecificOutputDirectoryPathProviderAction( processSpecificOutputDirectoryPathProviderAction, processStartTimeDirectoryNameProviderAction, stringlyTypedPathOperatorAction); var outputDirectoryPathProviderAction = _.AddOutputDirectoryPathProviderAction( processStartTimeSpecificOutputDirectoryPathProviderAction); var outputFilePathProviderAction = _.AddOutputFilePathProviderAction( outputDirectoryPathProviderAction, stringlyTypedPathOperatorAction); var output = new ServiceActionAggregation01 { OutputDirectoryPathProviderAction = outputDirectoryPathProviderAction, OutputFilePathProviderAction = outputFilePathProviderAction, ProcessDirectoryNameProviderAction = processDirectoryNameProviderAction, ProcessSpecificOutputDirectoryPathProviderAction = processSpecificOutputDirectoryPathProviderAction, ProcessStartTimeDirectoryNameProviderAction = processStartTimeDirectoryNameProviderAction, ProcessStartTimeSpecificOutputDirectoryPathProviderAction = processStartTimeSpecificOutputDirectoryPathProviderAction, }; return(output); }