Пример #1
0
        /// <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);
        }
Пример #2
0
        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();
            }
        }