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); }; }
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(); }; }
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(); }; }
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(); }; }