public JsonLocalizerManager(string paths, IFileSystemProvider fileProvider, IJsonSerializer serializer)
 {
     this.fileProvider = fileProvider;
     this.serializer = serializer;
     jsonResources = new List<JsonResource>();
     LoadResources(paths.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries));
 }
Example #2
0
        public VsSettings(ISolutionManager solutionManager, ISettings defaultSettings, IFileSystemProvider fileSystemProvider)
        {
            if (solutionManager == null)
            {
                throw new ArgumentNullException("solutionManager");
            }
            if (defaultSettings == null)
            {
                throw new ArgumentNullException("defaultSettings");
            }
            if (fileSystemProvider == null)
            {
                throw new ArgumentNullException("fileSystemProvider");
            }

            _solutionManager = solutionManager;
            _defaultSettings = defaultSettings;
            _fileSystemProvider = fileSystemProvider;

            EventHandler eventHandler = (src, eventArgs) =>
            {
                _solutionSettings = null;
            };
            _solutionManager.SolutionOpened += eventHandler;
            _solutionManager.SolutionClosed += eventHandler;
        }
 internal RepositorySettings(
     ISolutionManager solutionManager,
     IFileSystemProvider fileSystemProvider,
     IVsSourceControlTracker sourceControlTracker) :
     this(solutionManager, fileSystemProvider, sourceControlTracker, machineWideSettings : null)
 {
 }
Example #4
0
        public RouteHandler(IConfigManager configManager, IFileSystemProvider fileSystemProvider)
        {
            _configManager      = configManager;
            _fileSystemProvider = fileSystemProvider;

            Routes = new Dictionary <string, MicroWebRoute>();
        }
Example #5
0
 /// <summary>
 /// This is a convenience extension method for <see cref="IFileSystemProvider"/> instances,
 /// which retrieves the binary contents from a provivder, and writes them into a given file.
 /// </summary>
 /// <param name="provider">The <see cref="IFileSystemProvider"/> to be invoked in order to get access to the
 /// file's contents.</param>
 /// <param name="fileInfo">Provides meta information about the file to be read.</param>
 /// <param name="filePath">The file to be created. If a corresponding file already
 /// exists, it will be overwritten.</param>
 /// <exception cref="ArgumentNullException">If <paramref name="fileInfo"/>
 /// is a null reference.</exception>
 /// <exception cref="ArgumentNullException">If <paramref name="filePath"/>
 /// is a null reference.</exception>
 public static void SaveFile(this IFileSystemProvider provider, VirtualFileInfo fileInfo, string filePath)
 {
     using (Stream destination = new FileStream(filePath, FileMode.Create, FileAccess.Write))
     {
         ReadFile(provider, fileInfo, destination, true);
     }
 }
Example #6
0
        public RepositorySettings(ISolutionManager solutionManager, IFileSystemProvider fileSystemProvider, IVsSourceControlTracker sourceControlTracker)
        {
            if (solutionManager == null)
            {
                throw new ArgumentNullException("solutionManager");
            }

            if (fileSystemProvider == null)
            {
                throw new ArgumentNullException("fileSystemProvider");
            }

            if (sourceControlTracker == null)
            {
                throw new ArgumentNullException("sourceControlTracker");
            }

            _solutionManager = solutionManager;
            _fileSystemProvider = fileSystemProvider;

            EventHandler resetConfiguration = (sender, e) =>
            {
                // Kill our configuration cache when someone closes the solution
                _configurationPath = null;
                _fileSystem = null;
            };

            _solutionManager.SolutionClosing += resetConfiguration;
            sourceControlTracker.SolutionBoundToSourceControl += resetConfiguration;
        }
        private static IEnumerable <AssemblyBinding> AddBindingRedirects(
            Project project,
            IFileSystemProvider fileSystemProvider,
            AppDomain domain,
            IDictionary <string, HashSet <string> > projectAssembliesCache,
            IVsFrameworkMultiTargeting frameworkMultiTargeting)
        {
            var redirects = Enumerable.Empty <AssemblyBinding>();

            // Create a project system
            IFileSystem fileSystem = VsProjectSystemFactory.CreateProjectSystem(project, fileSystemProvider);

            // Run this on the UI thread since it enumerates all references
            IEnumerable <string> assemblies = ThreadHelper.Generic.Invoke(() => project.GetAssemblyClosure(fileSystemProvider, projectAssembliesCache));

            redirects = BindingRedirectResolver.GetBindingRedirects(assemblies, domain);

            if (frameworkMultiTargeting != null)
            {
                // filter out assemblies that already exist in the target framework (CodePlex issue #3072)
                FrameworkName targetFrameworkName = project.GetTargetFrameworkName();
                redirects = redirects.Where(p => !FrameworkAssemblyResolver.IsHigherAssemblyVersionInFramework(p.Name, p.AssemblyNewVersion, targetFrameworkName, fileSystemProvider));
            }

            // Create a binding redirect manager over the configuration
            var manager = new BindingRedirectManager(fileSystem, project.GetConfigurationFile());

            // Add the redirects
            manager.AddBindingRedirects(redirects);

            return(redirects);
        }
Example #8
0
 public VsProjectSystem(Project project, IFileSystemProvider fileSystemProvider)
     : base(project.GetFullPath())
 {
     Project         = project;
     _baseFileSystem = fileSystemProvider.GetFileSystem(project.GetFullPath());
     Debug.Assert(_baseFileSystem != null);
 }
        public void Init()
        {
            rootDirectory = TestUtil.CreateTestDirectory();

            //init provider
            DownloadTransferStore = new TestTransferStore <LocalDownloadTransfer>();
            UploadTransferStore   = new TestTransferStore <LocalUploadTransfer>();

            var configuration = LocalFileSystemConfiguration.CreateForRootDirectory(rootDirectory, true);

            configuration.DownloadStore = DownloadTransferStore;
            configuration.UploadStore   = UploadTransferStore;
            configuration.DownloadTokenExpirationTime = TimeSpan.FromHours(24);
            configuration.UploadTokenExpirationTime   = TimeSpan.FromHours(24);
            configuration.DefaultDownloadBlockSize    = 32768;
            configuration.MaxDownloadBlockSize        = 32768 * 2;
            configuration.MaxUploadBlockSize          = 32768 * 4;

            AdjustFileSystemConfiguration(configuration);
            FileSystemConfiguration = configuration;

            provider = new LocalFileSystemProvider(FileSystemConfiguration);
            root     = provider.GetFileSystemRoot();

            InitInternal();
        }
Example #10
0
        public IDirectory(string DirectoryPath, int Flags, IFileSystemProvider Provider)
        {
            m_Commands = new Dictionary <int, ServiceProcessRequest>()
            {
                { 0, Read },
                { 1, GetEntryCount }
            };

            this.Provider      = Provider;
            this.DirectoryPath = DirectoryPath;

            DirectoryEntries = new List <DirectoryEntry>();

            if ((Flags & 1) != 0)
            {
                DirectoryEntries.AddRange(Provider.GetDirectories(DirectoryPath));
            }

            if ((Flags & 2) != 0)
            {
                DirectoryEntries.AddRange(Provider.GetFiles(DirectoryPath));
            }

            CurrentItemIndex = 0;
        }
Example #11
0
        private static IEnumerable<AssemblyBinding> AddBindingRedirects(
            Project project, 
            IFileSystemProvider fileSystemProvider, 
            AppDomain domain, 
            IDictionary<string, HashSet<string>> projectAssembliesCache, 
            IVsFrameworkMultiTargeting frameworkMultiTargeting)
        {
            var redirects = Enumerable.Empty<AssemblyBinding>();

            // Create a project system
            IFileSystem fileSystem = VsProjectSystemFactory.CreateProjectSystem(project, fileSystemProvider);

            // Run this on the UI thread since it enumerates all references
            IEnumerable<string> assemblies = ThreadHelper.Generic.Invoke(() => project.GetAssemblyClosure(fileSystemProvider, projectAssembliesCache));

            redirects = BindingRedirectResolver.GetBindingRedirects(assemblies, domain);

            if (frameworkMultiTargeting != null)
            {
                // filter out assemblies that already exist in the target framework (CodePlex issue #3072)
                FrameworkName targetFrameworkName = project.GetTargetFrameworkName();
                redirects = redirects.Where(p => !FrameworkAssemblyResolver.IsHigherAssemblyVersionInFramework(p.Name, p.AssemblyNewVersion, targetFrameworkName, fileSystemProvider));
            }

            // Create a binding redirect manager over the configuration
            var manager = new BindingRedirectManager(fileSystem, project.GetConfigurationFile());

            // Add the redirects
            manager.AddBindingRedirects(redirects);

            return redirects;
        }
Example #12
0
        public RepositorySettings(ISolutionManager solutionManager, IFileSystemProvider fileSystemProvider, IVsSourceControlTracker sourceControlTracker)
        {
            if (solutionManager == null)
            {
                throw new ArgumentNullException("solutionManager");
            }

            if (fileSystemProvider == null)
            {
                throw new ArgumentNullException("fileSystemProvider");
            }

            if (sourceControlTracker == null)
            {
                throw new ArgumentNullException("sourceControlTracker");
            }

            _solutionManager    = solutionManager;
            _fileSystemProvider = fileSystemProvider;

            EventHandler resetConfiguration = (sender, e) =>
            {
                // Kill our configuration cache when someone closes the solution
                _configurationPath = null;
                _fileSystem        = null;
            };

            _solutionManager.SolutionClosing += resetConfiguration;
            sourceControlTracker.SolutionBoundToSourceControl += resetConfiguration;
        }
Example #13
0
        public VsPackageManagerFactory(ISolutionManager solutionManager,
                                       IPackageRepositoryFactory repositoryFactory,
                                       IFileSystemProvider fileSystemProvider,
                                       IRepositorySettings repositorySettings,
                                       IRecentPackageRepository recentPackagesRepository)
        {
            if (solutionManager == null)
            {
                throw new ArgumentNullException("solutionManager");
            }
            if (repositoryFactory == null)
            {
                throw new ArgumentNullException("repositoryFactory");
            }
            if (fileSystemProvider == null)
            {
                throw new ArgumentNullException("fileSystemProvider");
            }
            if (repositorySettings == null)
            {
                throw new ArgumentNullException("repositorySettings");
            }

            _fileSystemProvider      = fileSystemProvider;
            _repositorySettings      = repositorySettings;
            _solutionManager         = solutionManager;
            _repositoryFactory       = repositoryFactory;
            _recentPackageRepository = recentPackagesRepository;

            _solutionManager.SolutionClosing += (sender, e) => {
                _repositoryInfo = null;
            };
        }
        public VsSourceControlTracker(
            ISolutionManager solutionManager,
            IFileSystemProvider fileSystemProvider,
            IVsTrackProjectDocuments2 projectTracker,
            ISettings solutionSettings)
        {
            if (projectTracker == null)
            {
                throw new ArgumentNullException("projectTracker");
            }

            _solutionManager         = solutionManager;
            _projectTracker          = projectTracker;
            _fileSystemProvider      = fileSystemProvider;
            _solutionSettings        = solutionSettings;
            _projectDocumentListener = new TrackProjectDocumentEventListener(this);

            _solutionManager.SolutionOpened += OnSolutionOpened;
            _solutionManager.SolutionClosed += OnSolutionClosed;

            if (_solutionManager.IsSolutionOpen)
            {
                StartTracking();
            }
        }
Example #15
0
        public static IProjectSystem CreateProjectSystem(Project project, IFileSystemProvider fileSystemProvider)
        {
            if (project == null)
            {
                throw new ArgumentNullException("project");
            }

            if (String.IsNullOrEmpty(project.FullName))
            {
                throw new InvalidOperationException(
                    String.Format(CultureInfo.CurrentCulture, VsResources.DTE_ProjectUnsupported, project.Name));
            }

            // Try to get a factory for the project type guid            
            foreach (var guid in project.GetProjectTypeGuids())
            {
                ProjectThunk factory;
                if (_factories.TryGetValue(guid, out factory))
                {
                    return factory(project, fileSystemProvider);
                }
            }

            // Fall back to the default if we have no special project types
            return new VsProjectSystem(project, fileSystemProvider);
        }
Example #16
0
        public CommonParser(string[] args, IFileSystemProvider fileSystemProvider = null)
        {
            _fileSystemProvider = fileSystemProvider ?? new FileSystemProvider();
            SimpleParser        = new SimpleParser(args);

            FileSources = ResolveFileSources(SimpleParser.Arguments, SimpleParser.HasFlag("recurse"));
        }
 internal PackageRestoreManager(
     DTE dte,
     ISolutionManager solutionManager,
     IFileSystemProvider fileSystemProvider,
     IPackageRepositoryFactory packageRepositoryFactory,
     IVsPackageSourceProvider packageSourceProvider,
     IVsPackageManagerFactory packageManagerFactory,
     IVsPackageInstallerEvents packageInstallerEvents,
     IPackageRepository localCacheRepository,
     IVsThreadedWaitDialogFactory waitDialogFactory,
     ISettings settings)
 {
     Debug.Assert(solutionManager != null);
     _dte = dte;
     _fileSystemProvider = fileSystemProvider;
     _solutionManager = solutionManager;
     _packageRepositoryFactory = packageRepositoryFactory;
     _packageSourceProvider = packageSourceProvider;
     _waitDialogFactory = waitDialogFactory;
     _packageManagerFactory = packageManagerFactory;
     _localCacheRepository = localCacheRepository;
     _settings = settings;
     _solutionManager.ProjectAdded += OnProjectAdded;
     _solutionManager.SolutionOpened += OnSolutionOpenedOrClosed;
     _solutionManager.SolutionClosed += OnSolutionOpenedOrClosed;
     packageInstallerEvents.PackageReferenceAdded += OnPackageReferenceAdded;
 }
Example #18
0
        public IDirectory(string directoryPath, int flags, IFileSystemProvider provider)
        {
            _commands = new Dictionary <int, ServiceProcessRequest>
            {
                { 0, Read },
                { 1, GetEntryCount }
            };

            _provider     = provider;
            DirectoryPath = directoryPath;

            _directoryEntries = new List <DirectoryEntry>();

            if ((flags & 1) != 0)
            {
                _directoryEntries.AddRange(provider.GetDirectories(directoryPath));
            }

            if ((flags & 2) != 0)
            {
                _directoryEntries.AddRange(provider.GetFiles(directoryPath));
            }

            _currentItemIndex = 0;
        }
    public void Init()
    {
      rootDirectory = TestUtil.CreateTestDirectory();

      //init provider
      DownloadTransferStore = new TestTransferStore<LocalDownloadTransfer>();
      UploadTransferStore = new TestTransferStore<LocalUploadTransfer>();

      var configuration = LocalFileSystemConfiguration.CreateForRootDirectory(rootDirectory, true);
      configuration.DownloadStore = DownloadTransferStore;
      configuration.UploadStore = UploadTransferStore;
      configuration.DownloadTokenExpirationTime = TimeSpan.FromHours(24);
      configuration.UploadTokenExpirationTime = TimeSpan.FromHours(24);
      configuration.DefaultDownloadBlockSize = 32768;
      configuration.MaxDownloadBlockSize = 32768 * 2;
      configuration.MaxUploadBlockSize = 32768 * 4;

      AdjustFileSystemConfiguration(configuration);
      FileSystemConfiguration = configuration;

      provider = new LocalFileSystemProvider(FileSystemConfiguration);
      root = provider.GetFileSystemRoot();

      InitInternal();
    }
Example #20
0
 /// <summary>
 /// Initialises a new instance of the <see cref="InstanceScanner" />
 /// class.
 /// </summary>
 /// <param name="fileSystemProvider">
 /// An instance of <see cref="IFileSystemProvider" />.
 /// </param>
 /// <param name="loggingProvider">
 /// An instance of <see cref="ILoggingProvider" />.
 /// </param>
 public InstanceScanner(
     IFileSystemProvider fileSystemProvider,
     ILoggingProvider loggingProvider)
 {
     this.fileSystemProvider = fileSystemProvider;
     this.loggingProvider    = loggingProvider;
 }
Example #21
0
 public VsProjectSystem(Project project, IFileSystemProvider fileSystemProvider)
     : base(project.GetFullPath())
 {
     Project         = project;
     _baseFileSystem = fileSystemProvider.GetFileSystem(project.GetFullPath(), ignoreSourceControlSetting: true);
     Debug.Assert(_baseFileSystem != null);
 }
        private static HashSet <string> GetLocalProjectAssemblies(Project project, IFileSystemProvider projectFileSystemProvider)
        {
            if (project.IsWebSite())
            {
                return(GetWebsiteLocalAssemblies(project, projectFileSystemProvider));
            }

            var        assemblies = new HashSet <string>(PathComparer.Default);
            References references;

            try
            {
                references = project.GetReferences();
            }
            catch (Microsoft.CSharp.RuntimeBinder.RuntimeBinderException)
            {
                //References property doesn't exist, project does not have references
                references = null;
            }
            if (references != null)
            {
                foreach (Reference reference in references)
                {
                    // Get the referenced project from the reference if any
                    if (reference.SourceProject == null &&
                        reference.CopyLocal &&
                        File.Exists(reference.Path))
                    {
                        assemblies.Add(reference.Path);
                    }
                }
            }
            return(assemblies);
        }
        public VsSourceControlTracker(
            ISolutionManager solutionManager, 
            IFileSystemProvider fileSystemProvider,
            IVsTrackProjectDocuments2 projectTracker,
            ISettings solutionSettings)
        {
            if (projectTracker == null)
            {
                throw new ArgumentNullException("projectTracker");
            }

            _solutionManager = solutionManager;
            _projectTracker = projectTracker;
            _fileSystemProvider = fileSystemProvider;
            _solutionSettings = solutionSettings;
            _projectDocumentListener = new TrackProjectDocumentEventListener(this);

            _solutionManager.SolutionOpened += OnSolutionOpened;
            _solutionManager.SolutionClosed += OnSolutionClosed;

            if (_solutionManager.IsSolutionOpen)
            {
                StartTracking();
            }
        }
Example #24
0
        /// <summary>
        /// This is a convenience extension method for <see cref="IFileSystemProvider"/> instances,
        /// which gets the binary contents as a stream as a blocking operation.
        /// Use the methods in <see cref="ContentUtil"/> class for simplified stream
        /// handling.
        /// </summary>
        /// <param name="provider">The <see cref="IFileSystemProvider"/> to be invoked in order to get access to the
        /// file's contents.</param>
        /// <param name="fileInfo">Provides meta information about the file to be read.</param>
        /// <param name="destination">A stream to which the file's contents are written.</param>
        /// <param name="autoCloseStream">Whether to automatically close the submitted
        /// <paramref name="destination"/> stream.</param>
        /// <exception cref="ArgumentNullException">If <paramref name="fileInfo"/>
        /// is a null reference.</exception>
        /// <exception cref="ArgumentNullException">If <paramref name="destination"/>
        /// is a null reference.</exception>
        public static void ReadFile(this IFileSystemProvider provider, VirtualFileInfo fileInfo, Stream destination, bool autoCloseStream)
        {
            if (provider == null)
            {
                throw new ArgumentNullException("provider");
            }
            if (fileInfo == null)
            {
                throw new ArgumentNullException("fileInfo");
            }
            if (destination == null)
            {
                throw new ArgumentNullException("destination");
            }

            try
            {
                using (Stream stream = provider.ReadFileContents(fileInfo.FullName))
                {
                    stream.WriteTo(destination);
                }
            }
            finally
            {
                if (autoCloseStream)
                {
                    destination.Close();
                }
            }
        }
Example #25
0
 internal RepositorySettings(
     ISolutionManager solutionManager, 
     IFileSystemProvider fileSystemProvider, 
     IVsSourceControlTracker sourceControlTracker) : 
     this(solutionManager, fileSystemProvider, sourceControlTracker, machineWideSettings: null)
 {
 }
Example #26
0
 internal PackageRestoreManager(
     DTE dte,
     ISolutionManager solutionManager,
     IFileSystemProvider fileSystemProvider,
     IPackageRepositoryFactory packageRepositoryFactory,
     IPackageSourceProvider packageSourceProvider,
     IVsPackageManagerFactory packageManagerFactory,
     IVsPackageInstallerEvents packageInstallerEvents,
     IPackageRepository localCacheRepository,
     IVsThreadedWaitDialogFactory waitDialogFactory,
     ISettings settings)
 {
     Debug.Assert(solutionManager != null);
     _dte = dte;
     _fileSystemProvider       = fileSystemProvider;
     _solutionManager          = solutionManager;
     _packageRepositoryFactory = packageRepositoryFactory;
     _packageSourceProvider    = packageSourceProvider;
     _waitDialogFactory        = waitDialogFactory;
     _packageManagerFactory    = packageManagerFactory;
     _localCacheRepository     = localCacheRepository;
     _settings = settings;
     _solutionManager.ProjectAdded   += OnProjectAdded;
     _solutionManager.SolutionOpened += OnSolutionOpenedOrClosed;
     _solutionManager.SolutionClosed += OnSolutionOpenedOrClosed;
     packageInstallerEvents.PackageReferenceAdded += OnPackageReferenceAdded;
 }
Example #27
0
        public VsPackageManagerFactory(ISolutionManager solutionManager,
            IPackageRepositoryFactory repositoryFactory,
            IFileSystemProvider fileSystemProvider,
            IRepositorySettings repositorySettings,
            IRecentPackageRepository recentPackagesRepository)
        {
            if (solutionManager == null) {
                throw new ArgumentNullException("solutionManager");
            }
            if (repositoryFactory == null) {
                throw new ArgumentNullException("repositoryFactory");
            }
            if (fileSystemProvider == null) {
                throw new ArgumentNullException("fileSystemProvider");
            }
            if (repositorySettings == null) {
                throw new ArgumentNullException("repositorySettings");
            }

            _fileSystemProvider = fileSystemProvider;
            _repositorySettings = repositorySettings;
            _solutionManager = solutionManager;
            _repositoryFactory = repositoryFactory;
            _recentPackageRepository = recentPackagesRepository;

            _solutionManager.SolutionClosing += (sender, e) => {
                _repositoryInfo = null;
            };
        }
Example #28
0
        public IFileSystem(string path, IFileSystemProvider provider)
        {
            _commands = new Dictionary <int, ServiceProcessRequest>
            {
                { 0, CreateFile },
                { 1, DeleteFile },
                { 2, CreateDirectory },
                { 3, DeleteDirectory },
                { 4, DeleteDirectoryRecursively },
                { 5, RenameFile },
                { 6, RenameDirectory },
                { 7, GetEntryType },
                { 8, OpenFile },
                { 9, OpenDirectory },
                { 10, Commit },
                { 11, GetFreeSpaceSize },
                { 12, GetTotalSpaceSize },
                { 13, CleanDirectoryRecursively }
                //{ 14, GetFileTimeStampRaw        }
            };

            _openPaths = new HashSet <string>();

            _path     = path;
            _provider = provider;
        }
Example #29
0
        public static IProjectSystem CreateProjectSystem(Project project, IFileSystemProvider fileSystemProvider)
        {
            if (project == null)
            {
                throw new ArgumentNullException("project");
            }

            if (String.IsNullOrEmpty(project.FullName))
            {
                throw new InvalidOperationException(
                          String.Format(CultureInfo.CurrentCulture,
                                        VsResources.DTE_ProjectUnsupported, project.GetName()));
            }

#if VS14
            if (project.SupportsINuGetProjectSystem())
            {
                return(new NuGetAwareProjectSystem(project));
            }
#endif

            // Try to get a factory for the project type guid
            foreach (var guid in project.GetProjectTypeGuids())
            {
                ProjectThunk factory;
                if (_factories.TryGetValue(guid, out factory))
                {
                    return(factory(project, fileSystemProvider));
                }
            }

            // Fall back to the default if we have no special project types
            return(new VsProjectSystem(project, fileSystemProvider));
        }
Example #30
0
        /// <summary>
        /// This is a convenience extension method for <see cref="IFileSystemProvider"/> instances,
        /// which retrieves the binary contents from a provivder, and writes them into a given file.
        /// This is a non-blocking operation which invokes the submitted <param name="completionCallback" />
        /// once the process has been completed.
        /// </summary>
        /// <param name="provider">The <see cref="IFileSystemProvider"/> to be invoked in order to get access to the
        /// file's contents.</param>
        /// <param name="fileInfo">Provides meta information about the file to be read.</param>
        /// <param name="filePath">The file to be created. If a corresponding file already
        /// exists, it will be overwritten.</param>
        /// <param name="completionCallback">Invoked as soon as the operation has been completed,
        /// or aborted. This is an optional parameter, which can be null.</param>
        /// <exception cref="ArgumentNullException">If <paramref name="fileInfo"/>
        /// is a null reference.</exception>
        /// <exception cref="ArgumentNullException">If <paramref name="filePath"/>
        /// is a null reference.</exception>
        public static void BeginSaveFile(this IFileSystemProvider provider, VirtualFileInfo fileInfo, string filePath,
                                         Action <FileOperationResult> completionCallback)
        {
            Stream destination = new FileStream(filePath, FileMode.Create, FileAccess.Write);

            BeginReadFile(provider, fileInfo, destination, completionCallback);
        }
Example #31
0
 /// <summary>
 /// This is a convenience extension method for <see cref="IFileSystemProvider"/> instances,
 /// which writes the data of a given file to the submitted output stream as a non-blocking
 /// operation, and invokes the submitted delegate once the process has been completed.
 /// </summary>
 /// <param name="provider">The <see cref="IFileSystemProvider"/> to be invoked in order to get access to the
 /// file's contents.</param>
 /// <param name="fileInfo">Provides meta information about the file to be read.</param>
 /// <param name="output">A stream to which the file's contents are written. The stream will
 /// be automatically closed as soon as the operations finishes.</param>
 /// <param name="completionCallback">Invoked as soon as the operation has been completed,
 /// or aborted. This is an optional parameter, which can be null.</param>
 /// <exception cref="ArgumentNullException">If <paramref name="fileInfo"/>
 /// is a null reference.</exception>
 /// <exception cref="ArgumentNullException">If <paramref name="output"/>
 /// is a null reference.</exception>
 public static void BeginReadFile(this IFileSystemProvider provider, VirtualFileInfo fileInfo, Stream output,
                                  Action <FileOperationResult> completionCallback)
 {
     ThreadPool.QueueUserWorkItem(delegate
     {
         FileOperationResult result = new FileOperationResult(fileInfo);
         try
         {
             ReadFile(provider, fileInfo, output, true);
             if (completionCallback != null)
             {
                 completionCallback(result);
             }
         }
         catch (Exception e)
         {
             if (completionCallback != null)
             {
                 result.Exception = e;
                 completionCallback(result);
             }
             else
             {
                 //log an error in order to make sure this doesn't go unnoticed
                 string msg = "Async file read operation failed silently for file '{0}':\n{1}";
                 msg        = String.Format(msg, fileInfo.FullName, e);
                 Debug.WriteLine(msg);
             }
         }
     });
 }
Example #32
0
        public override void before_each_spec()
        {
            var dependencyResolver = MockRepository.GenerateStub <IDependencyResolver>();

            metaDataSynchroniser = MockRepository.GenerateStub <IMetaDataSynchroniser>();
            fileSystemProvider   = MockRepository.GenerateStub <IFileSystemProvider>();
            packageBuilder       = MockRepository.GenerateStub <IPackageCommand>();

            var configReader = new BooBuildConfigReader();

            dependencyResolver.Stub(x => x.Resolve <IBuildConfigReader>()).Return(configReader);

            dependencyResolver.Stub(x => x.Resolve <SVNSourceControl>()).Return(
                new SourceControlDouble("http://someurl.com/"));

            dependencyResolver.Stub(x => x.Resolve <IPackageCommand>("install")).Return(packageBuilder);

            fileSystemProvider.Stub(x => x.GetTemporaryBuildDirectory(Arg <DirectoryInfo> .Is.TypeOf)).Return(
                new DirectoryInfo(@"C:\temp\build"));

            IoC.InitializeWith(dependencyResolver);

            fileSystemProvider.Stub(x => x.GetHornRootDirectory(Arg <string> .Is.TypeOf)).Return(FileSystemHelper.GetFakeDummyHornDirectory());

            fileSystemProvider.Stub(x => x.CreateTemporaryHornDirectory(Arg <string> .Is.TypeOf)).Return(new DirectoryInfo(HornConfig.Settings.HornTempDirectory));

            fileSystemProvider.Stub(x => x.ZipFolder(Arg <DirectoryInfo> .Is.TypeOf, Arg <DirectoryInfo> .Is.TypeOf, Arg <string> .Is.TypeOf)).Return(
                new FileInfo(@"C:\zip"));

            siteStructureBuilder = GetSiteBuilder();

            siteStructureBuilder.Initialise();

            siteStructureBuilder.Build();
        }
        public override void before_each_spec()
        {
            var dependencyResolver = MockRepository.GenerateStub<IDependencyResolver>();
            metaDataSynchroniser = MockRepository.GenerateStub<IMetaDataSynchroniser>();
            fileSystemProvider = MockRepository.GenerateStub<IFileSystemProvider>();
            packageBuilder = MockRepository.GenerateStub<IPackageCommand>();

            var configReader = new BooBuildConfigReader();

            dependencyResolver.Stub(x => x.Resolve<IBuildConfigReader>()).Return(configReader);

            dependencyResolver.Stub(x => x.Resolve<SVNSourceControl>()).Return(
                new SourceControlDouble("http://someurl.com/"));

            dependencyResolver.Stub(x => x.Resolve<IPackageCommand>("install")).Return(packageBuilder);

            fileSystemProvider.Stub(x => x.GetTemporaryBuildDirectory(Arg<DirectoryInfo>.Is.TypeOf)).Return(
                new DirectoryInfo(@"C:\temp\build"));

            IoC.InitializeWith(dependencyResolver);

            fileSystemProvider.Stub(x => x.GetHornRootDirectory(Arg<string>.Is.TypeOf)).Return(FileSystemHelper.GetFakeDummyHornDirectory());

            fileSystemProvider.Stub(x => x.CreateTemporaryHornDirectory(Arg<string>.Is.TypeOf)).Return(new DirectoryInfo(HornConfig.Settings.HornTempDirectory));

            fileSystemProvider.Stub(x => x.ZipFolder(Arg<DirectoryInfo>.Is.TypeOf, Arg<DirectoryInfo>.Is.TypeOf, Arg<string>.Is.TypeOf)).Return(
                new FileInfo(@"C:\zip"));

            siteStructureBuilder = GetSiteBuilder();

            siteStructureBuilder.Initialise();

            siteStructureBuilder.Build();
        }
        private static HashSet <string> GetWebsiteLocalAssemblies(Project project, IFileSystemProvider projectFileSystemProvider)
        {
            var assemblies = new HashSet <string>(PathComparer.Default);
            AssemblyReferences references = project.GetAssemblyReferences();

            foreach (AssemblyReference reference in references)
            {
                // For websites only include bin assemblies
                if (reference.ReferencedProject == null &&
                    reference.ReferenceKind == AssemblyReferenceType.AssemblyReferenceBin &&
                    File.Exists(reference.FullPath))
                {
                    assemblies.Add(reference.FullPath);
                }
            }

            // For website projects, we always add .refresh files that point to the corresponding binaries in packages. In the event of bin deployed assemblies that are also GACed,
            // the ReferenceKind is not AssemblyReferenceBin. Consequently, we work around this by looking for any additional assembly declarations specified via .refresh files.
            string projectPath = project.GetFullPath();
            var    fileSystem  = projectFileSystemProvider.GetFileSystem(projectPath);

            assemblies.AddRange(fileSystem.ResolveRefreshPaths());

            return(assemblies);
        }
        public void Custom_Root_Name_Should_Be_Returned_If_Set()
        {
            provider = new LocalFileSystemProvider("FOO");
            root     = provider.GetFileSystemRoot();

            Assert.AreEqual("FOO", root.Name);
        }
    public void Custom_Root_Name_Should_Be_Returned_If_Set()
    {
      provider = new LocalFileSystemProvider("FOO");
      root = provider.GetFileSystemRoot();

      Assert.AreEqual("FOO", root.Name);
    }
        } // end default constructor

        /// <summary>
        /// Initializes a new instance of the <see cref="ReportingEngine"/> class.
        /// </summary>
        /// <param name="configurationProvider">The <see cref="IConfigurationProvider"/> instance used to load configuration data.</param>
        /// <param name="dataProcessor">The <see cref="IDataProcessor"/> instance used to process the raw data into a format the report can use.</param>
        /// <param name="fileSystemProvider">The <see cref="IFileSystemProvider"/> instance used to load files into memory.</param>
        /// <param name="reportViewer">The <see cref="IReportViewer"/> instance used to display reports.</param>
        public ReportingEngine(IConfigurationProvider configurationProvider, IDataProcessor dataProcessor, IFileSystemProvider fileSystemProvider, IReportViewer reportViewer)
        {
            this._configurationProvider = configurationProvider;
            this._dataProcessor         = dataProcessor;
            this._fileSystemProvider    = fileSystemProvider;
            this._reportViewer          = reportViewer;
        } // end overloaded constructor
 /// <summary>
 /// Initializes the class with the <see cref="IFileSystemProvider"/>
 /// to be decorated.
 /// </summary>
 /// <param name="decorated">The decorated file system.</param>
 /// <exception cref="ArgumentNullException">If <paramref name="decorated"/>
 /// is a null reference.</exception>
 public FileSystemDecorator(IFileSystemProvider decorated)
 {
     if (decorated == null)
     {
         throw new ArgumentNullException("decorated");
     }
     DecoratedFileSystem = decorated;
 }
 public CustomSettingsProvider()
 {
     this.fileSystemProvider               = new GenericTypeFileSystemProvider();
     this.userSettingsXmlProvider          = new GenericTypeUserSettingsXmlProvider();
     this.userSettingsToUpgradeXmlProvider = new GenericTypeUserSettingsToUpgradeXmlProvider();
     this.appSettingsXmlProvider           = new GenericTypeAppSettingsXmlProvider();
     this.machineSettingsXmlProvider       = new GenericTypeMachineSettingsXmlProvider();
 }
    public void Init()
    {
      rootDirectory = TestUtil.CreateTestDirectory();

      //init provider
      provider = new LocalFileSystemProvider(rootDirectory, true);
      root = VirtualFolder.CreateRootFolder(provider);
    }
 public AddBindingRedirectCommand(
     IFileSystemProvider fileSystemProvider,
     IVsFrameworkMultiTargeting frameworkMultiTargeting)
     : this()
 {
     _fileSystemProvider = fileSystemProvider;
     _frameworkMultiTargeting = frameworkMultiTargeting;
 }
Example #42
0
 public JsonLocalizer(string paths, IFileSystemProvider fileProvider, IJsonSerializer jsonSerializer)
 {
     jsonResources     = new List <JsonResource>();
     this.fileProvider = fileProvider;
     this.fileProvider.SetRootPath("~/".GetPhysicalPath());
     this.jsonSerializer = jsonSerializer;
     LoadResources(paths.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries));
 }
 private void SetupFileSystemProvider()
 {
     var mockFileSystemProvider = new Mock<IFileSystemProvider>();
     mockFileSystemProvider
         .Setup(x => x.EnumerateFiles(It.IsAny<SearchParameters>()))
         .Returns<IEnumerable<string>>(r => configurations.Keys);
     fileSystemProvider = mockFileSystemProvider.Object;
 }
 public void Add(IFileSystemProvider fss)
 {
     Providers.Add(fss);
     foreach (var fs in fss.GetFileSystems())
     {
         FileSystems.Add(fs);
     }
 }
Example #45
0
 public FileSystemProxy()
 {
   var root = new DirectoryInfo(@"D:\Downloads\1-Time Garbage\_VFS-SERVICE-ROOT");
   if (Decorated == null)
   {
     Decorated = new LocalFileSystemProvider(root, true);
   }
 }
 public SetupService(IPathService pathService, IFileSystemProvider fileSystemProvider, IHashProvider hashProvider, IProcessProvider processProvider, IFileWatchProvider fileWatchProvider)
 {
     _pathService        = pathService;
     _fileSystemProvider = fileSystemProvider;
     _hashProvider       = hashProvider;
     _processProvider    = processProvider;
     _fileWatchProvider  = fileWatchProvider;
 }
Example #47
0
 public JsonLocalizer(string paths, IFileSystemProvider fileProvider, IJsonSerializer jsonSerializer)
 {
     jsonResources = new List<JsonResource>();
     this.fileProvider = fileProvider;
     this.fileProvider.SetRootPath("~/".GetPhysicalPath());
     this.jsonSerializer = jsonSerializer;
     LoadResources(paths.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries));
 }
        public SiteStructureBuilder(IMetaDataSynchroniser metaDataSynchroniser, IFileSystemProvider fileSystemProvider, string dropDirectoryPath)
        {
            this.metaDataSynchroniser = metaDataSynchroniser;
            this.fileSystemProvider = fileSystemProvider;
            dropDirectory = new DirectoryInfo(dropDirectoryPath);
            Categories = new List<Category>();

            frequency = new TimeSpan(0, 0, HornConfig.Settings.BuildFrequency, 0);
        }
 public VsPackageManagerFactory(ISolutionManager solutionManager,
                                IPackageRepositoryFactory repositoryFactory,
                                IVsPackageSourceProvider packageSourceProvider,
                                IFileSystemProvider fileSystemProvider,
                                IRepositorySettings repositorySettings,
                                IRecentPackageRepository recentPackagesRepository,
                                VsPackageInstallerEvents packageEvents) :
     this(solutionManager, repositoryFactory, packageSourceProvider, fileSystemProvider, repositorySettings, recentPackagesRepository, packageEvents, MachineCache.Default)
 {
 }
Example #50
0
 public FileController(IFileSystemProvider fileProvider)
 {
     this.fileProvider = fileProvider;
     rootPath = ConfigurationManager.AppSettings["UploadPath"] ?? "/Uploads/";
     if (!rootPath.StartsWith("/"))
         rootPath = "/" + rootPath;
     if (!rootPath.EndsWith("/"))
         rootPath += "/";
     this.fileProvider.SetRootPath(("~" + rootPath).GetPhysicalPath());
 }
Example #51
0
        public static IEnumerable<AssemblyBinding> AddBindingRedirects(Project project, IFileSystemProvider fileSystemProvider, AppDomain domain)
        {
            if (project.SupportsBindingRedirects())
            {
                // When we're adding binding redirects explicitly, don't check the project type
                return AddBindingRedirects(project, fileSystemProvider, domain, new Dictionary<string, HashSet<string>>(StringComparer.OrdinalIgnoreCase), checkProjectType: false);
            }

            return Enumerable.Empty<AssemblyBinding>();
        }
Example #52
0
        protected override void Before_each_spec()
        {
            base.Before_each_spec();

            sourceControl = new SourceControlDouble("http://localhost/horn");

            packageTree = new PackageTree(rootDirectory, null);

            fileSystemProvider = CreateStub<IFileSystemProvider>();
        }
 public AddBindingRedirectCommand(
     ISolutionManager solutionManager, 
     IHttpClientEvents httpClientEvents, 
     IFileSystemProvider fileSystemProvider,
     IVsFrameworkMultiTargeting frameworkMultiTargeting)
     : base(solutionManager, null, httpClientEvents)
 {
     _solutionManager = solutionManager;
     _fileSystemProvider = fileSystemProvider;
     _frameworkMultiTargeting = frameworkMultiTargeting;
 }
        public VsPackageManagerFactory(ISolutionManager solutionManager,
                                       IPackageRepositoryFactory repositoryFactory,
                                       IVsPackageSourceProvider packageSourceProvider,
                                       IFileSystemProvider fileSystemProvider,
                                       IRepositorySettings repositorySettings,
                                       VsPackageInstallerEvents packageEvents,
                                       IPackageRepository activePackageSourceRepository,
                                       IVsFrameworkMultiTargeting frameworkMultiTargeting,
									   IMachineWideSettings machineWideSettings)
        {
            if (solutionManager == null)
            {
                throw new ArgumentNullException("solutionManager");
            }
            if (repositoryFactory == null)
            {
                throw new ArgumentNullException("repositoryFactory");
            }
            if (packageSourceProvider == null)
            {
                throw new ArgumentNullException("packageSourceProvider");
            }
            if (fileSystemProvider == null)
            {
                throw new ArgumentNullException("fileSystemProvider");
            }
            if (repositorySettings == null)
            {
                throw new ArgumentNullException("repositorySettings");
            }
            if (packageEvents == null)
            {
                throw new ArgumentNullException("packageEvents");
            }
            if (activePackageSourceRepository == null)
            {
                throw new ArgumentNullException("activePackageSourceRepository");
            }

            _fileSystemProvider = fileSystemProvider;
            _repositorySettings = repositorySettings;
            _solutionManager = solutionManager;
            _repositoryFactory = repositoryFactory;
            _packageSourceProvider = packageSourceProvider;
            _packageEvents = packageEvents;
            _activePackageSourceRepository = activePackageSourceRepository;
            _frameworkMultiTargeting = frameworkMultiTargeting;
			_machineWideSettings = machineWideSettings;

            _solutionManager.SolutionClosing += (sender, e) =>
            {
                _repositoryInfo = null;
            };
        }
        public VsPackageManagerFactory(ISolutionManager solutionManager,
                                       IPackageRepositoryFactory repositoryFactory,
                                       IVsPackageSourceProvider packageSourceProvider,
                                       IFileSystemProvider fileSystemProvider,
                                       IRepositorySettings repositorySettings,
                                       IRecentPackageRepository recentPackagesRepository,
                                       VsPackageInstallerEvents packageEvents,
                                       IPackageRepository cacheRepository)
        {
            if (solutionManager == null)
            {
                throw new ArgumentNullException("solutionManager");
            }
            if (repositoryFactory == null)
            {
                throw new ArgumentNullException("repositoryFactory");
            }
            if (packageSourceProvider == null)
            {
                throw new ArgumentNullException("packageSourceProvider");
            }
            if (fileSystemProvider == null)
            {
                throw new ArgumentNullException("fileSystemProvider");
            }
            if (repositorySettings == null)
            {
                throw new ArgumentNullException("repositorySettings");
            }
            if (cacheRepository == null)
            {
                throw new ArgumentNullException("cacheRepository");
            }

            if (packageEvents == null)
            {
                throw new ArgumentNullException("packageEvents");
            }

            _fileSystemProvider = fileSystemProvider;
            _repositorySettings = repositorySettings;
            _solutionManager = solutionManager;
            _repositoryFactory = repositoryFactory;
            _recentPackageRepository = recentPackagesRepository;
            _packageSourceProvider = packageSourceProvider;
            _packageEvents = packageEvents;
            _cacheRepository = cacheRepository;

            _solutionManager.SolutionClosing += (sender, e) =>
            {
                _repositoryInfo = null;
            };
        }
 public TestExecutionService(
     IMsTestTestRunProvider microsoftTestTestRunProvider,
     IFileSystemProvider fileSystemProvider,
     IProcessExecutionProvider processExecutionProvider,
     IConsoleArgumentsProvider consoleArgumentsProvider,
     ILog log)
 {
     this.microsoftTestTestRunProvider = microsoftTestTestRunProvider;
     this.fileSystemProvider = fileSystemProvider;
     this.processExecutionProvider = processExecutionProvider;
     this.consoleArgumentsProvider = consoleArgumentsProvider;
     this.log = log;
 }
        /// <summary>
        /// Returns the list of framework assemblies as specified in frameworklist.xml under the ReferenceAssemblies
        /// for .NETFramework. If the file is not present, an empty list is returned
        /// </summary>
        private static List<AssemblyName> GetFrameworkAssemblies(IList<string> pathToFrameworkListFiles, IFileSystemProvider fileSystemProvider)
        {
            List<AssemblyName> frameworkAssemblies = new List<AssemblyName>();
            foreach(var pathToFrameworkListFile in pathToFrameworkListFiles)
            {
                if (!String.IsNullOrEmpty(pathToFrameworkListFile))
                {
                    var fileSystemFrameworkListFile = fileSystemProvider.GetFileSystem(pathToFrameworkListFile);
                    frameworkAssemblies.AddRange(GetFrameworkAssemblies(fileSystemFrameworkListFile));
                }
            }

            return frameworkAssemblies;
        }
 public PackageRestoreManager(
     ISolutionManager solutionManager,
     IFileSystemProvider fileSystemProvider,
     IPackageRepositoryFactory packageRepositoryFactory,
     IVsPackageManagerFactory packageManagerFactory,
     ISettings settings) :
     this(ServiceLocator.GetInstance<DTE>(),
          solutionManager,
          fileSystemProvider,
          packageRepositoryFactory,
          packageManagerFactory,
          ServiceLocator.GetGlobalService<SVsThreadedWaitDialogFactory, IVsThreadedWaitDialogFactory>())
 {
 }
Example #59
0
        public override void before_each_spec()
        {
            var dependencyResolver = MockRepository.GenerateStub<IDependencyResolver>();
            fileSystemProvider = MockRepository.GenerateStub<IFileSystemProvider>();
            packageBuilder = MockRepository.GenerateStub<IPackageCommand>();
            rootPackageTree = MockRepository.GenerateStub<IPackageTree>();
            buildMetaData = MockRepository.GenerateStub<IBuildMetaData>();

            commandArgs = new CommandArgs("horn", false, null, false, null);

            dependencyResolver.Stub(x => x.HasComponent<ICommandArgs>()).Return(true);

            dependencyResolver.Stub(x => x.Resolve<ICommandArgs>()).Return(commandArgs);

            dependencyResolver.Stub(x => x.Resolve<IPackageCommand>("install")
                ).Return(packageBuilder);

            IoC.InitializeWith(dependencyResolver);

            rootPackageTree.Stub(x => x.Result).Return(new DirectoryInfo(@"z:\horn"));

            buildMetaData.ProjectInfo= new Dictionary<string, object>();

            rootPackageTree.Stub(x => x.GetAllPackageMetaData()).Return(new List<IBuildMetaData> {buildMetaData});

            rootPackageTree.Stub(x => x.Name).Return("horn");

            var category = new Category(null, rootPackageTree);

            fileSystemProvider.Stub(x => x.GetFiles(Arg<DirectoryInfo>.Is.TypeOf, Arg<string>.Is.TypeOf)).Return(
                new List<FileInfo>
                    {
                        new FileInfo(string.Format("horn-{0}.zip",
                                                   new DateTime(2009, 10, 30).ToString(FileSystemProvider.FileDateFormat))),
                        new FileInfo(string.Format("horn-{0}.zip",
                                                   new DateTime(2009, 10, 29).ToString(FileSystemProvider.FileDateFormat))),
                        new FileInfo(string.Format("horn-{0}.zip",
                                                   new DateTime(2009, 10, 31).ToString(FileSystemProvider.FileDateFormat)))
                    }.ToArray());

            package = new PackageDouble(category, buildMetaData);

            string zipFileName = string.Format("{0}-{1}.zip", package.Name, DateTime.Now.ToString(FileSystemProvider.FileDateFormat));

            fileSystemProvider.Stub(
                x => x.ZipFolder(Arg<DirectoryInfo>.Is.TypeOf, Arg<DirectoryInfo>.Is.TypeOf, Arg<string>.Is.TypeOf)).
                Return(new FileInfo(zipFileName));
        }
        public override void BuildAndZipPackage(IPackageTree root, IFileSystemProvider fileSystemProvider, Package package, DirectoryInfo newDirectory, DirectoryInfo tempDirectory)
        {
            var tempFileName = Path.Combine(newDirectory.FullName, string.Format("{0}.txt", package.FileName));
            fileSystemProvider.WriteTextFile(tempFileName, "some text");

            var zip = fileSystemProvider.ZipFolder(newDirectory, newDirectory, package.FileName);

            //fileSystemProvider.CopyFile(zip.FullName, zip.FullName, true);

            try
            {
                fileSystemProvider.DeleteFile(tempFileName);
            }
            catch
            {
            }
        }