public async Task <string> RenameFiles(string settingsJson) { var settings = _importer.ParseSettings(settingsJson); if (settings.CreateBackup) { foreach (var file in FilesCache.Cache) { BackupFile(file.OriginalName, file.Type, settings.BackupFolder); } } this._filesProgess = 0; foreach (var file in FilesCache.Cache) { var shouldBreak = false; if (FileExists(file)) { switch (settings.FileExistsStrategy) { case FileExistsStrategy.Skip: continue; case FileExistsStrategy.Replace: break; case FileExistsStrategy.MoveOriginalToFolder: MoveOriginalFile(file.OriginalName, file.Type, settings.FileExistsFolder); break; case FileExistsStrategy.KeepBoth: RenameFile(file.OriginalName, file.NewName + "(1)", file.Type); continue; default: break; } } if (shouldBreak) { break; } await Task.Run(() => RenameFile(file.OriginalName, file.NewName, file.Type)); FileProgress.Instance.UpdateProgress(); } return("Success"); }