public CloneRepositoryCommand( IGitRemoteSearchService searchService, IConnectedServiceManager serviceManager, IUserSettingsManager settingsManager, IDefaultShellService defaultShellService, ILocalRepositoryIndexer localRepositoryIndexer) { _searchService = searchService; _serviceManager = serviceManager; _settingsManager = settingsManager; _shellService = defaultShellService; _localRepositoryIndexer = localRepositoryIndexer; }
public async Task <int> IndexWorkRootsAsync( [Service] IHubContext <ConsoleHub> hubContext, [Service] ILocalRepositoryIndexer repositoryIndexer, [Service] IUserSettingsManager settingsManager, CancellationToken cancellationToken) { UserSettings settings = await settingsManager.GetAsync(cancellationToken); var session = new MessageSession(); Action <string> handler = async(string msg) => { await hubContext.Clients.All.SendAsync("consoleData", new ShellMessage(session.Next(), "Info", msg)); }; int indexCount = 0; foreach (WorkRoot wr in settings.WorkRoots) { var count = await repositoryIndexer.IndexWorkRootAsync( wr, handler, cancellationToken); indexCount += count; } await hubContext.Clients.All.SendAsync("consoleData", new ShellMessage(session.Next(), "end", $"Scan completed: {indexCount}") { Tags = new string[] { "success" } }); return(indexCount); }
public IndexRepositoriesCommand( ILocalRepositoryIndexer localRepositoryIndexer) { _localRepositoryIndexer = localRepositoryIndexer; }