Exemplo n.º 1
0
        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);
        }
Exemplo n.º 3
0
 /// <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));
 }
Exemplo n.º 4
0
        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;
 }
Exemplo n.º 6
0
 /// <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;
 }
Exemplo n.º 7
0
        /// <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());
        }
Exemplo n.º 8
0
 /// <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);
 }