/// <summary> /// Initialization of the package; this method is called right after the package is sited, so this is the place /// where you can put all the initialization code that rely on services provided by VisualStudio. /// </summary> protected override void Initialize() { base.Initialize(); Logger.WriteInformation("Initializing"); try { HttpClient = new HttpClient(); HttpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/4.0 (Compatible; Windows NT 5.1; MSIE 6.0) (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"); var pSolution = (IVsSolution)GetService(typeof(SVsSolution)); var result = pSolution.AdviseSolutionEvents(new SolutionEventsHandler(), out SolutionEventsHandlerId); Settings = new Settings(); UserImages = new UserImageCache(); Redis = new RedisWrapper(); Slack = new SlackWrapper(); LocalIdeModel = new LocalIDEModel(); IDEWrapper = new IDEWrapper((EnvDTE.DTE)GetService(typeof(EnvDTE.DTE))); var versionedAssembly = GetVersionedAssembly(); SourceControlRepo = new CachedSourceControlRepository( new GitRepository(), GetVersionedType <ISourceControlRepository>(versionedAssembly, "TeamCoding.Documents.SourceControlRepositories.TeamFoundationServiceRepository"), new SolutionNameBasedRepository()); CaretInfoProvider = GetVersionedType <ICaretInfoProvider>(versionedAssembly, "TeamCoding.Documents.CaretInfoProvider"); CaretAdornmentDataProvider = GetVersionedType <ICaretAdornmentDataProvider>(versionedAssembly, "TeamCoding.Documents.CaretAdornmentDataProvider"); IdentityProvider = new CachedFailoverIdentityProvider(new VSOptionsIdentityProvider(), new CredentialManagerIdentityProvider(new[] { "git:https://github.com", "https://github.com/" }), new VSIdentityProvider(), new MachineIdentityProvider()); ConnectionWrapper = new SqlConnectionWrapper(); WindowsServiceClient = new WinServiceClient(Settings.SharedSettings.WinServiceIPAddressProperty); RemoteModelChangeManager = new CombinedRemoteModelPersister(new RedisRemoteModelPersister(), new SharedFolderRemoteModelPersister(), new SlackRemoteModelPersister(), new SqlServerRemoteModelPersister(ConnectionWrapper), new WinServiceRemoteModelPersister(WindowsServiceClient)); LocalModelChangeManager = new CombinedLocalModelPersister(new RedisLocalModelPersister(LocalIdeModel), new SharedFolderLocalModelPersister(LocalIdeModel), new SlackLocalModelPersister(LocalIdeModel), new SqlServerLocalModelPersister(ConnectionWrapper, LocalIdeModel), new WinServiceLocalModelPersister(WindowsServiceClient, LocalIdeModel)); RemoteModelChangeManager.RemoteModelReceived += RemoteModelChangeManager_RemoteModelReceived; TeamCoding.VisualStudio.ToolWindows.OverviewWindow.OverviewCommand.Initialize(this); } catch (Exception ex) when(!System.Diagnostics.Debugger.IsAttached) { Logger.WriteError(ex); } }
private void RemoteModelChangeManager_RemoteModelReceived(object sender, EventArgs e) { IDEWrapper.UpdateIDE(false); }