private bool HasConfigurationChanged(IConfigurationGenerator generator) { generator.GeneratedFiles.ForEach(FileSystemTasks.EnsureExistingParentDirectory); var previousHashes = generator.GeneratedFiles .Where(File.Exists) .ToDictionary(x => x, FileSystemTasks.GetFileHash); var assembly = Assembly.GetEntryAssembly().NotNull("assembly != null"); ProcessTasks.StartProcess( assembly.Location, $"--{ConfigurationParameterName} {generator.Id} --host {generator.HostName}", logInvocation: false, logOutput: true) .AssertZeroExitCode(); var changedFiles = generator.GeneratedFiles .Where(x => FileSystemTasks.GetFileHash(x) != previousHashes.GetValueOrDefault(x)) .Select(x => NukeBuild.RootDirectory.GetRelativePathTo(x)).ToList(); if (changedFiles.Count == 0) { return(false); } Logger.Warn($"{generator.DisplayName} configuration files have changed."); changedFiles.ForEach(x => Logger.Trace($"Updated {x}")); return(true); }
private bool HasConfigurationChanged(IConfigurationGenerator generator, NukeBuild build) { generator.GeneratedFiles.ForEach(FileSystemTasks.EnsureExistingParentDirectory); var previousHashes = generator.GeneratedFiles .Where(File.Exists) .ToDictionary(x => x, FileSystemTasks.GetFileHash); ProcessTasks.StartProcess( NukeBuild.BuildAssemblyFile, $"--{ConfigurationParameterName} {generator.Id} --host {generator.HostName}", logInvocation: false, logOutput: false) .AssertZeroExitCode(); var changedFiles = generator.GeneratedFiles .Where(x => FileSystemTasks.GetFileHash(x) != previousHashes.GetValueOrDefault(x)) .Select(x => NukeBuild.RootDirectory.GetRelativePathTo(x)).ToList(); if (changedFiles.Count == 0) { return(false); } Telemetry.ConfigurationGenerated(generator.HostType, generator.Id, build); // TODO: multi-line logging Log.Warning("Configuration files for {Configuration} have changed.", generator.DisplayName); changedFiles.ForEach(x => Log.Verbose("Updated {File}", x)); return(true); }
/// <summary> /// Initializes a new instance of the <see cref="ProblemGenerator"/> class. /// </summary> /// <param name="settings">The settings for the problem generator.</param> /// <param name="generator">The generator of configurations.</param> /// <param name="constructor">The constructor that perform geometric construction of configurations.</param> /// <param name="finder">The finder of theorems in generated configurations.</param> /// <param name="tracer">The tracer of potential geometry failures.</param> public ProblemGenerator(ProblemGeneratorSettings settings, IConfigurationGenerator generator, IGeometryConstructor constructor, ITheoremFinder finder, IGeometryFailureTracer tracer) { _settings = settings ?? throw new ArgumentNullException(nameof(settings)); _generator = generator ?? throw new ArgumentNullException(nameof(generator)); _constructor = constructor ?? throw new ArgumentNullException(nameof(constructor)); _finder = finder ?? throw new ArgumentNullException(nameof(finder)); _tracer = tracer ?? throw new ArgumentNullException(nameof(tracer)); }
public GenerationService( [NotNull] IConfigurationGenerator generator, [NotNull] IPreferencesManager preferencesManager, [NotNull] ITokenUsageTracker tokenUsageTracker) { if (generator == null) { throw new ArgumentNullException(nameof(generator)); } if (preferencesManager == null) { throw new ArgumentNullException(nameof(preferencesManager)); } if (tokenUsageTracker == null) { throw new ArgumentNullException(nameof(tokenUsageTracker)); } _generator = generator; _preferencesManager = preferencesManager; _tokenUsageTracker = tokenUsageTracker; }
public ConfigurationScaffolder(ScaffolderDependencies dependencies, IConfigurationGenerator generator) : base(dependencies) { Generator = generator; }
/// <summary> /// Initializes a new instance of the <see cref = "WebSessionManager" /> class. /// </summary> /// <param name = "configurationGenerator">The configuration generator.</param> /// <param name = "logger">The logger.</param> public WebSessionManager(IConfigurationGenerator configurationGenerator, ILogger logger) { this.SessionFactory = configurationGenerator.Generate().BuildSessionFactory(); this.logger = logger; }
/// <summary>Builds the NHibernate session factory.</summary> /// <param name="configurationGenerator">The configuration generator.</param> /// <returns>The session factory.</returns> private static ISessionFactory BuildSessionFactory(IConfigurationGenerator configurationGenerator) { FluentConfiguration configuration = configurationGenerator.Generate(); return(configuration.BuildSessionFactory()); }
/// <summary> /// Initializes a new instance of the <see cref="SessionManager"/> class. /// </summary> /// <param name="configurationGenerator">The configuration generator.</param> public SessionManager(IConfigurationGenerator configurationGenerator) { // The default configuration generator this.sessionFactory = BuildSessionFactory(configurationGenerator); }