Пример #1
0
        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);
        }
Пример #2
0
        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;
            }
        }
Пример #3
0
        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;
        }