示例#1
0
        public ProjectCleaner(IStatusTracker statusTracker, IAsyncCleaner cleaner)
        {
            InitializeComponent();

            _statusTracker = statusTracker;
            _cleaner       = cleaner;

            statusTracker.OnIncrement = value => processCounter.Text = value.ToString();
        }
 public virtual void Initialize(IStatusTracker tracker)
 {
     _tracker = tracker;
     var qry = (from it in tracker.Watch(this)
                from trackingId in _subjTrigMonitor
                where it.TrackingID == trackingId
                select it);
     qry = WrapObservableQuery(qry);
     _subscription = qry.Subscribe(
             OnUpdateTrackingInformation
             , OnError
             , OnCompleted
         );
 }
示例#3
0
        private string BuildSuccessMessage(IStatusTracker statusTracker)
        {
            var sbSuccess = new StringBuilder("Cleaning Successful");

            if (statusTracker.FailedFiles.Any())
            {
                sbSuccess.AppendLine();
                sbSuccess.AppendLine();
                sbSuccess.AppendLine("The following files or folders could not be removed becuase they are either in use by another process or you do not have permission to access them:");
                sbSuccess.AppendLine();

                foreach (var path in statusTracker.FailedFiles.Keys)
                {
                    sbSuccess.AppendLine(path);
                }
            }

            return(sbSuccess.ToString());
        }
示例#4
0
 public AsyncCleaner(IStatusTracker statusTracker)
 {
     _statusTracker = statusTracker ?? throw new ArgumentNullException(nameof(statusTracker));
 }
示例#5
0
 public StatusReporter(IStatusTracker statusTracker)
 {
     _statusTracker = statusTracker;
 }