public void OnExecute(CommandEventArgs e) { if (_commandService == null) { _commandService = e.GetService <IAnkhCommandService>(); } if (_projectTracker == null) { _projectTracker = e.GetService <ProjectTracker>(); } if (_sccProvider == null) { _sccProvider = e.GetService <SvnSccProvider>(typeof(IAnkhSccService)); } _commandService.TockCommand(e.Command); _projectTracker.OnSccCleanup(e); _sccProvider.OnSccCleanup(e); }
public void OnExecute(CommandEventArgs e) { ThreadHelper.ThrowIfNotOnUIThread(); SvnSccProvider scc = e.GetService <SvnSccProvider>(); SccHierarchy hier = EnumTools.GetSingle(e.Selection.GetSelectedHierarchies()); if (hier == null) { throw new InvalidOperationException(); } switch (e.Command) { case AnkhCommand.SccSccReCheckoutFailedProject: { scc.EnlistAndCheckout(hier.Hierarchy, hier.Name); IVsSolution s = e.GetService <IVsSolution>(typeof(SVsSolution)); ISccHelper helper = e.GetService <ISccHelper>(); if (s == null || helper == null) { return; } Guid projectGuid; if (!VSErr.Succeeded(s.GetGuidOfProject(hier.Hierarchy, out projectGuid))) { return; } helper.EnsureProjectLoaded(projectGuid, false); break; } case AnkhCommand.SccEditFailedProjectLocation: scc.EditEnlistment(hier.Hierarchy, hier.Name); break; } }
public void OnUpdate(CommandUpdateEventArgs e) { object fm = e.Selection.Cache[_failedProjectsKey]; IDictionary <string, object> map; #if !DEBUG if (e.Command == AnkhCommand.SccEditFailedProjectLocation) { e.Enabled = false; return; } #endif if (fm != null) { map = (fm as IDictionary <string, object>); } else { SvnSccProvider scc = e.GetService <SvnSccProvider>(); map = scc.GetProjectsThatNeedEnlisting(); e.Selection.Cache[_failedProjectsKey] = map ?? _failedProjectsKey; } if (map != null) { SccHierarchy hier = EnumTools.GetSingle(e.Selection.GetSelectedHierarchies()); // if ( hier != null && !String.IsNullOrEmpty(hier.Name) && map.ContainsKey(hier.Name) ) // alllucly1996-dũng: I saw IsNullOrEmpty(hier.Name) seems unnecessary if (hier != null && map.ContainsKey(hier.Name)) { return; } } e.Enabled = false; }