public static void AttachListener(this IRepositoryManagerListener listener,
                                          IRepositoryManager repositoryManager, RepositoryManagerEvents managerEvents = null, bool trace = true)
        {
            var logger = trace ? LogHelper.GetLogger <IRepositoryManagerListener>() : null;

            repositoryManager.IsBusyChanged += isBusy => {
                logger?.Trace("OnIsBusyChanged: {0}", isBusy);
                listener.OnIsBusyChanged(isBusy);
                if (isBusy)
                {
                    managerEvents?.isBusy.TrySetResult(true);
                }
                else
                {
                    managerEvents?.isNotBusy.TrySetResult(true);
                }
            };

            repositoryManager.CurrentBranchUpdated += (configBranch, configRemote) => {
                logger?.Trace("CurrentBranchUpdated");
                listener.CurrentBranchUpdated(configBranch, configRemote);
                managerEvents?.currentBranchUpdated.TrySetResult(true);
            };

            repositoryManager.GitLocksUpdated += gitLocks => {
                logger?.Trace("GitLocksUpdated");
                listener.GitLocksUpdated(gitLocks);
                managerEvents?.gitLocksUpdated.TrySetResult(true);
            };

            repositoryManager.GitAheadBehindStatusUpdated += gitAheadBehindStatus => {
                logger?.Trace("GitAheadBehindStatusUpdated");
                listener.GitAheadBehindStatusUpdated(gitAheadBehindStatus);
                managerEvents?.gitAheadBehindStatusUpdated.TrySetResult(true);
            };

            repositoryManager.GitStatusUpdated += gitStatus => {
                logger?.Trace("GitStatusUpdated");
                listener.GitStatusUpdated(gitStatus);
                managerEvents?.gitStatusUpdated.TrySetResult(true);
            };

            repositoryManager.GitLogUpdated += gitLogEntries => {
                logger?.Trace("GitLogUpdated");
                listener.GitLogUpdated(gitLogEntries);
                managerEvents?.gitLogUpdated.TrySetResult(true);
            };

            repositoryManager.LocalBranchesUpdated += branchList => {
                logger?.Trace("LocalBranchesUpdated");
                listener.LocalBranchesUpdated(branchList);
                managerEvents?.localBranchesUpdated.TrySetResult(true);
            };

            repositoryManager.RemoteBranchesUpdated += (remotesList, branchList) => {
                logger?.Trace("RemoteBranchesUpdated");
                listener.RemoteBranchesUpdated(remotesList, branchList);
                managerEvents?.remoteBranchesUpdated.TrySetResult(true);
            };
        }
示例#2
0
        public static void AttachListener(this IRepositoryManagerListener listener, IRepositoryManager repositoryManager,
                                          RepositoryManagerAutoResetEvent managerAutoResetEvent = null, bool trace = false)
        {
            var logger = trace ? Logging.GetLogger <IRepositoryManagerListener>() : null;

            repositoryManager.OnIsBusyChanged += b => {
                logger?.Trace("OnIsBusyChanged: {0}", b);
                listener.OnIsBusyChanged(b);
                managerAutoResetEvent?.OnIsBusyChanged.Set();
            };

            repositoryManager.OnStatusUpdated += status => {
                logger?.Debug("OnStatusUpdated: {0}", status);
                listener.OnRepositoryChanged(status);
                managerAutoResetEvent?.OnRepositoryChanged.Set();
            };

            repositoryManager.OnActiveBranchChanged += () => {
                logger?.Trace("OnActiveBranchChanged");
                listener.OnActiveBranchChanged();
                managerAutoResetEvent?.OnActiveBranchChanged.Set();
            };

            repositoryManager.OnActiveRemoteChanged += () => {
                logger?.Trace("OnActiveRemoteChanged");
                listener.OnActiveRemoteChanged();
                managerAutoResetEvent?.OnActiveRemoteChanged.Set();
            };

            repositoryManager.OnHeadChanged += () => {
                logger?.Trace("OnHeadChanged");
                listener.OnHeadChanged();
                managerAutoResetEvent?.OnHeadChanged.Set();
            };

            repositoryManager.OnLocalBranchListChanged += () => {
                logger?.Trace("OnLocalBranchListChanged");
                listener.OnLocalBranchListChanged();
                managerAutoResetEvent?.OnLocalBranchListChanged.Set();
            };

            repositoryManager.OnRemoteBranchListChanged += () => {
                logger?.Trace("OnRemoteBranchListChanged");
                listener.OnRemoteBranchListChanged();
                managerAutoResetEvent?.OnRemoteBranchListChanged.Set();
            };

            repositoryManager.OnRemoteOrTrackingChanged += () => {
                logger?.Trace("OnRemoteOrTrackingChanged");
                listener.OnRemoteOrTrackingChanged();
                managerAutoResetEvent?.OnRemoteOrTrackingChanged.Set();
            };

            repositoryManager.OnLocksUpdated += locks => {
                var lockArray = locks.ToArray();
                logger?.Trace("OnLocksUpdated Count:{0}", lockArray.Length);
                listener.OnLocksUpdated(lockArray);
                managerAutoResetEvent?.OnLocksUpdated.Set();
            };
        }
示例#3
0
 public static void AssertDidNotReceiveAnyCalls(this IRepositoryManagerListener repositoryManagerListener)
 {
     repositoryManagerListener.DidNotReceive().OnStatusUpdate(Args.GitStatus);
     repositoryManagerListener.DidNotReceive().OnActiveBranchChanged(Arg.Any <ConfigBranch?>());
     repositoryManagerListener.DidNotReceive().OnActiveRemoteChanged(Arg.Any <ConfigRemote?>());
     repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged();
     repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged();
     repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock);
 }
示例#4
0
        public static void AttachListener(this IRepositoryManagerListener listener, IRepositoryManager repositoryManager,
                                          RepositoryManagerEvents managerEvents = null, bool trace = true)
        {
            var logger = trace ? Logging.GetLogger <IRepositoryManagerListener>() : null;

            repositoryManager.OnIsBusyChanged += b => {
                logger?.Trace("OnIsBusyChanged: {0}", b);
                listener.OnIsBusyChanged(b);
                if (b)
                {
                    managerEvents?.OnIsBusy.Set();
                }
                else
                {
                    managerEvents?.OnIsNotBusy.Set();
                }
            };

            repositoryManager.OnStatusUpdated += status => {
                logger?.Debug("OnStatusUpdated: {0}", status);
                listener.OnStatusUpdate(status);
                managerEvents?.OnStatusUpdate.Set();
            };

            repositoryManager.OnActiveBranchChanged += (branch) => {
                logger?.Trace($"OnActiveBranchChanged {branch}");
                listener.OnActiveBranchChanged(branch);
                managerEvents?.OnActiveBranchChanged.Set();
            };

            repositoryManager.OnActiveRemoteChanged += (remote) => {
                logger?.Trace($"OnActiveRemoteChanged {(remote.HasValue ? remote.Value.Name : null)}");
                listener.OnActiveRemoteChanged(remote);
                managerEvents?.OnActiveRemoteChanged.Set();
            };

            repositoryManager.OnLocalBranchListChanged += () => {
                logger?.Trace("OnLocalBranchListChanged");
                listener.OnLocalBranchListChanged();
                managerEvents?.OnLocalBranchListChanged.Set();
            };

            repositoryManager.OnRemoteBranchListChanged += () => {
                logger?.Trace("OnRemoteBranchListChanged");
                listener.OnRemoteBranchListChanged();
                managerEvents?.OnRemoteBranchListChanged.Set();
            };

            repositoryManager.OnLocksUpdated += locks => {
                var lockArray = locks.ToArray();
                logger?.Trace("OnLocksUpdated Count:{0}", lockArray.Length);
                listener.OnLocksUpdated(lockArray);
                managerEvents?.OnLocksUpdated.Set();
            };
        }
示例#5
0
 public static void AssertDidNotReceiveAnyCalls(this IRepositoryManagerListener repositoryManagerListener)
 {
     repositoryManagerListener.DidNotReceive().OnRepositoryChanged(Args.GitStatus);
     repositoryManagerListener.DidNotReceive().OnActiveBranchChanged();
     repositoryManagerListener.DidNotReceive().OnActiveRemoteChanged();
     repositoryManagerListener.DidNotReceive().OnHeadChanged();
     repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged();
     repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged();
     repositoryManagerListener.DidNotReceive().OnRemoteOrTrackingChanged();
     repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock);
 }
 public static void AssertDidNotReceiveAnyCalls(this IRepositoryManagerListener repositoryManagerListener)
 {
     repositoryManagerListener.DidNotReceive().OnIsBusyChanged(Args.Bool);
     repositoryManagerListener.DidNotReceive().CurrentBranchUpdated(Args.NullableConfigBranch, Args.NullableConfigRemote);
     repositoryManagerListener.DidNotReceive().GitAheadBehindStatusUpdated(Args.GitAheadBehindStatus);
     repositoryManagerListener.DidNotReceive().GitStatusUpdated(Args.GitStatus);
     repositoryManagerListener.DidNotReceive().GitLocksUpdated(Args.GitLocks);
     repositoryManagerListener.DidNotReceive().GitLogUpdated(Args.GitLogs);
     repositoryManagerListener.DidNotReceive().LocalBranchesUpdated(Args.LocalBranchDictionary);
     repositoryManagerListener.DidNotReceive().RemoteBranchesUpdated(Args.RemoteDictionary, Args.RemoteBranchDictionary);
 }
示例#7
0
 public static void AssertDidNotReceiveAnyCalls(this IRepositoryManagerListener repositoryManagerListener)
 {
     repositoryManagerListener.DidNotReceive().OnIsBusyChanged(Args.Bool);
     repositoryManagerListener.DidNotReceive().OnStatusUpdated(Args.GitStatus);
     repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock);
     repositoryManagerListener.DidNotReceive().OnCurrentBranchAndRemoteUpdated(Arg.Any <ConfigBranch?>(), Arg.Any <ConfigRemote?>());
     repositoryManagerListener.DidNotReceive().OnLocalBranchListUpdated(Arg.Any <Dictionary <string, ConfigBranch> >());
     repositoryManagerListener.DidNotReceive().OnRemoteBranchListUpdated(Arg.Any <Dictionary <string, ConfigRemote> >(), Arg.Any <Dictionary <string, Dictionary <string, ConfigBranch> > >());
     repositoryManagerListener.DidNotReceive().OnLocalBranchUpdated(Args.String);
     repositoryManagerListener.DidNotReceive().OnLocalBranchAdded(Args.String);
     repositoryManagerListener.DidNotReceive().OnLocalBranchRemoved(Args.String);
     repositoryManagerListener.DidNotReceive().OnRemoteBranchAdded(Args.String, Args.String);
     repositoryManagerListener.DidNotReceive().OnRemoteBranchRemoved(Args.String, Args.String);
 }
示例#8
0
        public static void AttachListener(this IRepositoryManagerListener listener,
                                          IRepositoryManager repositoryManager, RepositoryManagerEvents managerEvents = null, bool trace = true)
        {
            var logger = trace ? Logging.GetLogger <IRepositoryManagerListener>() : null;

            repositoryManager.OnIsBusyChanged += isBusy => {
                logger?.Trace("OnIsBusyChanged: {0}", isBusy);
                listener.OnIsBusyChanged(isBusy);
                if (isBusy)
                {
                    managerEvents?.OnIsBusy.Set();
                }
                else
                {
                    managerEvents?.OnIsNotBusy.Set();
                }
            };

            repositoryManager.OnCurrentBranchAndRemoteUpdated += (configBranch, configRemote) => {
                logger?.Trace("OnCurrentBranchAndRemoteUpdated");
                listener.OnCurrentBranchAndRemoteUpdated(configBranch, configRemote);
                managerEvents?.OnCurrentBranchAndRemoteUpdated.Set();
            };

            repositoryManager.OnLocalBranchListUpdated += branchList => {
                logger?.Trace("OnLocalBranchListUpdated");
                listener.OnLocalBranchListUpdated(branchList);
                managerEvents?.OnLocalBranchListUpdated.Set();
            };

            repositoryManager.OnRemoteBranchListUpdated += (remotesList, branchList) => {
                logger?.Trace("OnRemoteBranchListUpdated");
                listener.OnRemoteBranchListUpdated(remotesList, branchList);
                managerEvents?.OnRemoteBranchListUpdated.Set();
            };

            repositoryManager.OnLocalBranchUpdated += name => {
                logger?.Trace("OnLocalBranchUpdated Name:{0}", name);
                listener.OnLocalBranchUpdated(name);
                managerEvents?.OnLocalBranchUpdated.Set();
            };

            repositoryManager.OnLocalBranchAdded += name => {
                logger?.Trace("OnLocalBranchAdded Name:{0}", name);
                listener.OnLocalBranchAdded(name);
                managerEvents?.OnLocalBranchAdded.Set();
            };

            repositoryManager.OnLocalBranchRemoved += name => {
                logger?.Trace("OnLocalBranchRemoved Name:{0}", name);
                listener.OnLocalBranchRemoved(name);
                managerEvents?.OnLocalBranchRemoved.Set();
            };

            repositoryManager.OnRemoteBranchAdded += (origin, name) => {
                logger?.Trace("OnRemoteBranchAdded Origin:{0} Name:{1}", origin, name);
                listener.OnRemoteBranchAdded(origin, name);
                managerEvents?.OnRemoteBranchAdded.Set();
            };

            repositoryManager.OnRemoteBranchRemoved += (origin, name) => {
                logger?.Trace("OnRemoteBranchRemoved Origin:{0} Name:{1}", origin, name);
                listener.OnRemoteBranchRemoved(origin, name);
                managerEvents?.OnRemoteBranchRemoved.Set();
            };
        }
示例#9
0
        public static void AttachListener(this IRepositoryManagerListener listener,
                                          IRepositoryManager repositoryManager, RepositoryManagerEvents managerEvents = null, bool trace = true)
        {
            var logger = trace ? Logging.GetLogger <IRepositoryManagerListener>() : null;

            repositoryManager.OnIsBusyChanged += isBusy => {
                logger?.Trace("OnIsBusyChanged: {0}", isBusy);
                listener.OnIsBusyChanged(isBusy);
                if (isBusy)
                {
                    managerEvents?.OnIsBusy.Set();
                }
                else
                {
                    managerEvents?.OnIsNotBusy.Set();
                }
            };

            repositoryManager.OnStatusUpdated += status => {
                logger?.Debug("OnStatusUpdated: {0}", status);
                listener.OnStatusUpdated(status);
                managerEvents?.OnStatusUpdated.Set();
            };

            repositoryManager.OnLocksUpdated += locks => {
                var lockArray = locks.ToArray();
                logger?.Trace("OnLocksUpdated Count:{0}", lockArray.Length);
                listener.OnLocksUpdated(lockArray);
                managerEvents?.OnLocksUpdated.Set();
            };

            repositoryManager.OnCurrentBranchUpdated += configBranch => {
                logger?.Trace("OnCurrentBranchUpdated");
                listener.OnCurrentBranchUpdated(configBranch);
                managerEvents?.OnCurrentBranchUpdated.Set();
            };

            repositoryManager.OnCurrentRemoteUpdated += configRemote => {
                logger?.Trace("OnCurrentRemoteUpdated");
                listener.OnCurrentRemoteUpdated(configRemote);
                managerEvents?.OnCurrentRemoteUpdated.Set();
            };

            repositoryManager.OnLocalBranchListUpdated += branchList => {
                logger?.Trace("OnLocalBranchListUpdated");
                listener.OnLocalBranchListUpdated(branchList);
                managerEvents?.OnLocalBranchListUpdated.Set();
            };

            repositoryManager.OnRemoteBranchListUpdated += (remotesList, branchList) => {
                logger?.Trace("OnRemoteBranchListUpdated");
                listener.OnRemoteBranchListUpdated(remotesList, branchList);
                managerEvents?.OnRemoteBranchListUpdated.Set();
            };

            repositoryManager.OnLocalBranchUpdated += name => {
                logger?.Trace("OnLocalBranchUpdated Name:{0}", name);
                listener.OnLocalBranchUpdated(name);
                managerEvents?.OnLocalBranchUpdated.Set();
            };

            repositoryManager.OnLocalBranchAdded += name => {
                logger?.Trace("OnLocalBranchAdded Name:{0}", name);
                listener.OnLocalBranchAdded(name);
                managerEvents?.OnLocalBranchAdded.Set();
            };

            repositoryManager.OnLocalBranchRemoved += name => {
                logger?.Trace("OnLocalBranchRemoved Name:{0}", name);
                listener.OnLocalBranchRemoved(name);
                managerEvents?.OnLocalBranchRemoved.Set();
            };

            repositoryManager.OnRemoteBranchAdded += (origin, name) => {
                logger?.Trace("OnRemoteBranchAdded Origin:{0} Name:{1}", origin, name);
                listener.OnRemoteBranchAdded(origin, name);
                managerEvents?.OnRemoteBranchAdded.Set();
            };

            repositoryManager.OnRemoteBranchRemoved += (origin, name) => {
                logger?.Trace("OnRemoteBranchRemoved Origin:{0} Name:{1}", origin, name);
                listener.OnRemoteBranchRemoved(origin, name);
                managerEvents?.OnRemoteBranchRemoved.Set();
            };

            repositoryManager.OnGitUserLoaded += user => {
                logger?.Trace("OnGitUserLoaded Name:{0}", user);
                listener.OnGitUserLoaded(user);
                managerEvents?.OnGitUserLoaded.Set();
            };
        }