Microsoft.DocAsCode.Build.Engine.Incrementals.IncrementalBuildContext.CanProcessorIncremental C# (CSharp) Метод

CanProcessorIncremental() публичный Метод

public CanProcessorIncremental ( IDocumentProcessor processor ) : bool
processor IDocumentProcessor
Результат bool
        public bool CanProcessorIncremental(IDocumentProcessor processor)
        {
            if (!CanVersionIncremental)
            {
                return false;
            }

            var cpi = CurrentBuildVersionInfo.Processors.Find(p => p.Name == processor.Name);
            if (cpi == null)
            {
                Logger.LogWarning($"Current BuildVersionInfo missed processor info for {processor.Name}.");
                return false;
            }
            var lpi = LastBuildVersionInfo.Processors.Find(p => p.Name == processor.Name);
            if (lpi == null)
            {
                Logger.LogVerbose($"Processor {processor.Name} disable incremental build because last build doesn't contain version {Version}.");
                return false;
            }
            if (cpi.IncrementalContextHash != lpi.IncrementalContextHash)
            {
                Logger.LogVerbose($"Processor {processor.Name} disable incremental build because incremental context hash changed.");
                return false;
            }
            if (cpi.Steps.Count != lpi.Steps.Count)
            {
                Logger.LogVerbose($"Processor {processor.Name} disable incremental build because steps count is different.");
                return false;
            }
            for (int i = 0; i < cpi.Steps.Count; i++)
            {
                if (!object.Equals(cpi.Steps[i], lpi.Steps[i]))
                {
                    Logger.LogVerbose($"Processor {processor.Name} disable incremental build because steps changed, from step {lpi.Steps[i].ToJsonString()} to {cpi.Steps[i].ToJsonString()}.");
                    return false;
                }
            }
            Logger.LogVerbose($"Processor {processor.Name} enable incremental build.");
            return true;
        }