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

ComputeFileAttributes() приватный статический Метод

private static ComputeFileAttributes ( DocumentBuildParameters parameters, Microsoft.DocAsCode.Build.Engine.Incrementals.DependencyGraph dg ) : FileAttributeItem>.Dictionary
parameters DocumentBuildParameters
dg Microsoft.DocAsCode.Build.Engine.Incrementals.DependencyGraph
Результат FileAttributeItem>.Dictionary
        private static Dictionary<string, FileAttributeItem> ComputeFileAttributes(DocumentBuildParameters parameters, DependencyGraph dg)
        {
            var filesInScope = from f in parameters.Files.EnumerateFiles()
                               let fileKey = ((RelativePath)f.File).GetPathFromWorkingFolder().ToString()
                               select new
                               {
                                   PathFromWorkingFolder = fileKey,
                                   FullPath = f.FullPath
                               };
            var files = filesInScope;
            if (dg != null)
            {
                var filesFromDependency = from node in dg.GetAllDependentNodes()
                                          let fullPath = Path.Combine(EnvironmentContext.BaseDirectory, ((RelativePath)node).RemoveWorkingFolder())
                                          select new
                                          {
                                              PathFromWorkingFolder = node,
                                              FullPath = fullPath
                                          };
                files = files.Concat(filesFromDependency);
            }


            return (from item in files
                    where File.Exists(item.FullPath)
                    group item by item.PathFromWorkingFolder into g
                    select new FileAttributeItem
                    {
                        File = g.Key,
                        LastModifiedTime = File.GetLastWriteTimeUtc(g.First().FullPath),
                        MD5 = StringExtension.GetMd5String(File.ReadAllText(g.First().FullPath)),
                    }).ToDictionary(a => a.File);
        }