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");
        }