예제 #1
0
        public RepositoryService(
            GitRepositoryChangedEvent repositoryChangedEvent,
            GitWorkingTreeChangedEvent workingTreeChangedEvent
            )
        {
            _repositoryChangedEvent = repositoryChangedEvent;
            _workingTreeChangedEvent = workingTreeChangedEvent;
            _status = new CachedValue<StatusCollection>(
                () =>
                {
                    if (!IsGitRepository)
                        return new StatusCollection(Enumerable.Empty<Status>());

                    var clean = new Clean
                    {
                        Target = Clean.CleanTarget.Ignored,
                        IncludeDirectories = false
                    };

                    var statusResult = Git.Execute(new Git.Commands.Status());
                    var cleanResult = Git.Execute(clean);

                    return new StatusCollection(
                        statusResult.Concat(cleanResult.Select(name => new Status(System.IO.Path.Combine(BaseDirectory, name), FileStatus.Ignored)))
                    );
                }
            );
        }
        public PendingChangesViewModel(
            IRepositoryService repositoryService,
            IFileIconService iconService,
            GitWorkingTreeChangedEvent workingTreeChangedEvent
            )
        {
            _repositoryService = repositoryService;
            _iconService = iconService;
            Changes = new ObservableCollection<StatusViewModel>();

            workingTreeChangedEvent.Subscribe(Refresh, ThreadOption.UIThread);
        }
 public VSPendingChangesViewModel(IRepositoryService repositoryService, IFileIconService iconService, GitWorkingTreeChangedEvent workingTreeChangedEvent)
     : base(repositoryService, iconService, workingTreeChangedEvent)
 {
 }