/// <inheritdoc /> public async Task <SaveResult> SaveFile(IStateInfo stateInfo, IFileSystem fileSystem, UPath savePath) { lock (_loadedFilesLock) { ContractAssertions.IsElementContained(_loadedFiles, stateInfo, "loadedFiles", nameof(stateInfo)); } var isRunning = _progress.IsRunning(); if (!isRunning) { _progress.StartProgress(); } var saveResult = await _fileSaver.SaveAsync(stateInfo, fileSystem, savePath, _progress); if (!isRunning) { _progress.FinishProgress(); } return(saveResult); }
private void ExecuteActionWithProgress(Action action, IProgressContext progress = null) { var isRunning = progress?.IsRunning(); if (isRunning.HasValue && !isRunning.Value) { progress.StartProgress(); } action(); if (isRunning.HasValue && !isRunning.Value) { progress.FinishProgress(); } }