public void ResolveConflict(ConflictSet conflictSet, string chosenFilePath, bool deleteToRecycleBin)
        {
            if (chosenFilePath != conflictSet.File.FilePath && !conflictSet.Conflicts.Any(x => x.FilePath == chosenFilePath))
            {
                throw new ArgumentException("chosenPath does not exist inside conflictSet");
            }

            if (chosenFilePath == conflictSet.File.FilePath)
            {
                foreach (var file in conflictSet.Conflicts)
                {
                    logger.Debug("Deleting {0}", file);
                    this.DeleteFile(file.FilePath, deleteToRecycleBin);
                }
            }
            else
            {
                logger.Debug("Deleting {0}", conflictSet.File.FilePath);
                this.DeleteFile(conflictSet.File.FilePath, deleteToRecycleBin);

                foreach (var file in conflictSet.Conflicts)
                {
                    if (file.FilePath == chosenFilePath)
                    {
                        continue;
                    }

                    logger.Debug("Deleting {0}", file.FilePath);
                    this.DeleteFile(file.FilePath, deleteToRecycleBin);
                }

                logger.Debug("Renaming {0} to {1}", chosenFilePath, conflictSet.File.FilePath);
                this.filesystemProvider.MoveFile(chosenFilePath, conflictSet.File.FilePath);
            }
        }
        public ConflictViewModel(ConflictSet conflictSet, string folderName)
        {
            this.ConflictSet = conflictSet;
            this.FolderId = folderName;

            this.ConflictOptions = new BindableCollection<ConflictOptionViewModel>(this.ConflictSet.Conflicts.Select(x => new ConflictOptionViewModel(x)));
            this.Icon = ShellTools.GetIcon(this.ConflictSet.File.FilePath, isFile: true);
        }
 private bool ResolveConflict(ConflictSet conflictSet, string filePath)
 {
     // This can happen e.g. if the file chosen no longer exists
     try
     {
         this.conflictFileManager.ResolveConflict(conflictSet, filePath, this.DeleteToRecycleBin);
         return true;
     }
     catch (IOException e)
     {
         this.windowManager.ShowMessageBox(
             Localizer.F(Resources.ConflictResolutionView_Dialog_Failed_Message, e.Message),
             Resources.ConflictResolutionView_Dialog_Failed_Title,
             MessageBoxButton.OK,
             MessageBoxImage.Error
         );
         return false;
     }
 }
        public void ResolveConflict(ConflictSet conflictSet, string chosenFilePath, bool deleteToRecycleBin)
        {
            if (chosenFilePath != conflictSet.File.FilePath && !conflictSet.Conflicts.Any(x => x.FilePath == chosenFilePath))
                throw new ArgumentException("chosenPath does not exist inside conflictSet");

            if (chosenFilePath == conflictSet.File.FilePath)
            {
                foreach (var file in conflictSet.Conflicts)
                {
                    logger.Debug("Deleting {0}", file);
                    this.DeleteFile(file.FilePath, deleteToRecycleBin);
                }
            }
            else
            {
                logger.Debug("Deleting {0}", conflictSet.File.FilePath);
                this.DeleteFile(conflictSet.File.FilePath, deleteToRecycleBin);

                foreach (var file in conflictSet.Conflicts)
                {
                    if (file.FilePath == chosenFilePath)
                        continue;

                    logger.Debug("Deleting {0}", file.FilePath);
                    this.DeleteFile(file.FilePath, deleteToRecycleBin);
                }

                logger.Debug("Renaming {0} to {1}", chosenFilePath, conflictSet.File.FilePath);
                this.filesystemProvider.MoveFile(chosenFilePath, conflictSet.File.FilePath);
            }
        }