public static IGenerationProvider Get(DirectoryInfo directory, IGenerationLoader loader) { var files = directory.GetFiles(); if (files.Count(file => file.Name == MetadataFileName) == 1) { var metatdataLoader = new MetatdataLoader(); var metadata = metatdataLoader.LoadMetadata(files.Single(file => file.Name == MetadataFileName)); var generationInfo = new Dictionary <GenerationMetadata, FileInfo>(capacity: files.Length - 1); var generationFiles = files.Where(file => file.Name != MetadataFileName).ToList(); for (int i = 0; i < files.Length - 1; i++) { generationInfo.Add(metadata[i], generationFiles[i]); } return(new LazyGenerationProvider(generationInfo, loader)); } return(new GenerationProvider(files.ToList(), loader)); }
public VisualizerBusiness(IGenerationLoader networkLoader) { GenerationLoader = networkLoader; }
public GenerationProvider(DirectoryInfo directory, IGenerationLoader loader) { generations = loader.LoadAllGenerations(directory); }
public GenerationProvider(List <FileInfo> files, IGenerationLoader loader) { generations = files.Select(loader.LoadGeneration).ToList(); }
public static IGenerationProvider Get(FileInfo file, IGenerationLoader loader) { return(new GenerationProvider(new[] { file }.ToList(), loader)); }
/// <summary> /// /// </summary> /// <param name="generationFiles">the generation files that can be loaded, and the metadata of them</param> /// <param name="loader">the loader required to load the generation file.</param> public LazyGenerationProvider(Dictionary <GenerationMetadata, FileInfo> generationFiles, IGenerationLoader loader) { metadata = generationFiles.Keys; foreach (FileInfo file in generationFiles.Values) { generations.Add(new LazyCache <Generation>(() => loader.LoadGeneration(file))); } }