Beispiel #1
0
        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();
 }
Beispiel #5
0
 public static IGenerationProvider Get(FileInfo file, IGenerationLoader loader)
 {
     return(new GenerationProvider(new[] { file }.ToList(), loader));
 }
Beispiel #6
0
        /// <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)));
            }
        }