/// <summary>
        /// Initializes a new instance of <see cref="FileSystemAssemblyProvider"/>
        /// </summary>
        /// <param name="fileSystem"></param>
        public FileSystemAssemblyProvider(IFileSystem fileSystem)
        {
            var codeBase = typeof(FileSystemAssemblyProvider).Assembly.GetName().CodeBase;
            var uri = new Uri(codeBase);

            var assemblyFileInfo = new FileInfo(uri.LocalPath);

            var assemblyFiles = fileSystem.GetFilesFrom(assemblyFileInfo.Directory.ToString(), "*.dll").ToList();
            assemblyFiles.AddRange(fileSystem.GetFilesFrom(assemblyFileInfo.Directory.ToString(), "*.exe"));

            AvailableAssemblies = assemblyFiles.Select(file => new AssemblyInfo(Path.GetFileNameWithoutExtension(file.FullName), file.FullName));
        }
Example #2
0
        /// <summary>
        /// Initializes a new instance of <see cref="FileSystemAssemblyProvider"/>
        /// </summary>
        /// <param name="fileSystem"></param>
        public FileSystemAssemblyProvider(IFileSystem fileSystem)
        {
            var codeBase = typeof(FileSystemAssemblyProvider).GetTypeInfo().Assembly.CodeBase;
            var uri = new Uri(codeBase);

            var assemblyFileInfo = new FileInfo(uri.LocalPath);

            var assemblyFiles = fileSystem.GetFilesFrom(assemblyFileInfo.Directory.ToString(), "*.dll").ToList();
            assemblyFiles.AddRange(fileSystem.GetFilesFrom(assemblyFileInfo.Directory.ToString(), "*.exe"));

            AvailableAssemblies = assemblyFiles.Select(file => new AssemblyInfo(Path.GetFileNameWithoutExtension(file.FullName), file.FullName));
        }
        /// <summary>
        /// Initializes a new instance of <see cref="FileSystemAssemblyProvider"/>
        /// </summary>
        /// <param name="fileSystem"></param>
        /// <param name="assemblyUtility"></param>
        public FileSystemAssemblyProvider(IFileSystem fileSystem, IAssemblyUtility assemblyUtility)
        {
            var codeBase = typeof(FileSystemAssemblyProvider).Assembly.GetName().CodeBase;
            var uri = new Uri(codeBase);
            var assemblyFileInfo = new FileInfo(uri.LocalPath);

            AvailableAssemblies = new ObservableCollection<AssemblyInfo>(
                fileSystem.GetFilesFrom(assemblyFileInfo.Directory.ToString(), "*.dll")
                    .Concat(fileSystem.GetFilesFrom(assemblyFileInfo.Directory.ToString(), "*.exe"))
                    .Select(fi => fi.FullName)
                    .Select(AssemblyInfoFromFileInfo)
                    .Where(assemblyUtility.IsAssembly));
        }
Example #4
0
        /// <summary>
        /// Initializes a new instance of <see cref="FileSystemAssemblyProvider"/>
        /// </summary>
        /// <param name="fileSystem"><see cref="IFileSystem"/> to provide from</param>
        /// <param name="logger"><see cref="ILogger"/> for logging</param>
        public FileSystemAssemblyProvider(IFileSystem fileSystem, ILogger logger)
        {
            var codeBase = typeof(FileSystemAssemblyProvider).GetTypeInfo().Assembly.CodeBase;
            var uri      = new Uri(codeBase);

            logger.Information($"Codebase is '{codeBase}'");

            var assemblyFileInfo = new FileInfo(uri.LocalPath);

            var assemblyFiles = fileSystem.GetFilesFrom(assemblyFileInfo.Directory.ToString(), "*.dll").ToList();

            assemblyFiles.AddRange(fileSystem.GetFilesFrom(assemblyFileInfo.Directory.ToString(), "*.exe"));

            assemblyFiles.ForEach(assemblyFile => logger.Information($"Discovered assembly '{assemblyFile}"));

            AvailableAssemblies = assemblyFiles.Select(file => new AssemblyInfo(Path.GetFileNameWithoutExtension(file.FullName), file.FullName));

            foreach (var assembly in AvailableAssemblies)
            {
                logger.Information($"Providing '{assembly.FileName}'");
            }
        }