Beispiel #1
0
 public FindDuplicatesCommand(
     [NotNull] DuplicatesEngine duplicatesEngine,
     [NotNull] IReadOnlyCollection <SearchPath> searchPaths,
     [NotNull] Func <IInclusionPredicate <FileData> > getGetInclusionPredicate,
     [NotNull] Func <IFileComparer> getSelectedComparer)
 {
     DuplicatesEngine      = duplicatesEngine;
     SearchPaths           = searchPaths;
     GetInclusionPredicate = getGetInclusionPredicate;
     GetSelectedComparer   = getSelectedComparer;
 }
Beispiel #2
0
        public override async void Execute(object parameter)
        {
            try
            {
                CanCancel = true;
                Enabled   = false;
                OnFindDuplicatesStarting();

                var selectedComparer = GetSelectedComparer();
                using (Cts = new CancellationTokenSource())
                    await DuplicatesEngine.FindDuplicates(SearchPaths, GetInclusionPredicate(), selectedComparer.CandidatePredicate, selectedComparer.ComparableFileFactory, Cts.Token);
            }
            catch (OperationCanceledException) { /* ignore */ }
            finally
            {
                CanCancel = false;
                Cts.Dispose();
                Cts     = null;
                Enabled = true;
                OnFindDuplicatesFinished();
            }
        }