public async Task LoadRepoAsync() { Timing t = new Timing(); using (await refreshLock.LockAsync()) { Log.Debug("Loading repository ..."); using (progress.ShowDialog("Loading branch view ...")) { bool isCached = await repositoryService.LoadCachedRepositoryAsync(workingFolder); t.Log("Read cached repository"); if (!isCached) { Log.Debug("Could not load cached repo, loading fresh repo"); Dispatcher.CurrentDispatcher.Delay(TimeSpan.FromMilliseconds(2000), () => progress.SetText("Loading branch view (first time) ...")); await repositoryService.LoadFreshRepositoryAsync(workingFolder); t.Log("Read fresh repository"); } LoadViewModel(); t.Log("Updated view model after cached/fresh"); } Track.Info($"MainWindow - Loaded first view {t.ElapsedMs} ms"); // isValidUri = gitInfoService.IsSupportedRemoteUrl(workingFolder); using (progress.ShowBusy()) { if (repositoryService.Repository.MRepository.IsCached) { await repositoryService.CheckLocalRepositoryAsync(); t.Log("Read current local repository"); } if (commandLine.IsCommit) { await commitsService.CommitChangesAsync(); } await repositoryService.CheckRemoteChangesAsync(true); t.Log("Checked remote"); } Track.Info($"MainWindow - Loaded after remote changes {t.ElapsedMs} ms"); await repositoryService.CheckBranchTipCommitsAsync(); } }
public void Activate(string[] args) { CommandLine commandLine = new CommandLine(); Application.Current.Dispatcher.InvokeAsync(() => { Application.Current.MainWindow.WindowState = WindowState.Minimized; Application.Current.MainWindow.Activate(); Application.Current.MainWindow.WindowState = WindowState.Normal; if (commandLine.IsCommitCommand(args ?? new string[0])) { Log.Usage("Activated and commit"); commitsService.CommitChangesAsync().RunInBackground(); } else { Log.Usage("Activated"); } }); }