public static void Initialise(IVisualStudioApi visualStudioApi, Version resharperVersion, Func<Version, IReSharperApi> resharperApiFactory,
            Func<IReSharperApi, IVisualStudioApi, IExtensionManager> extensionManagerFactory)
        {
            IExtensionManager extensionManager = null;

            var resharperApi = resharperApiFactory(resharperVersion);
            resharperApi.Initialise(() =>
                                        {
                                            extensionManager = extensionManagerFactory(resharperApi, visualStudioApi);
                                            extensionManager.InitialiseEnvironment();
                                        },
                                    () =>
                                        {
                                            if (extensionManager != null)
                                                extensionManager.Dispose();
                                        }
                );
        }
 public ExtensionManager(IReSharperApi resharperApi, IVisualStudioApi visualStudioApi, IPackageManager packageManager)
 {
     this.resharperApi = resharperApi;
     this.visualStudioApi = visualStudioApi;
     this.packageManager = packageManager;
 }
 public static void Initialise(IVisualStudioApi visualStudioApi, Version resharperVersion)
 {
     Initialise(visualStudioApi, resharperVersion, version => new ReSharperApi60(version), ExtensionManagerFactory.Create);
 }
 public static IExtensionManager Create(IReSharperApi resharperApi, IVisualStudioApi visualStudioApi)
 {
     var dummySourceRepository = new LocalPackageRepository(@"C:\rsrepo");
     return new ExtensionManager(resharperApi, visualStudioApi, new PackageManager(dummySourceRepository, Paths.LocalRepositoryRoot));
 }