internal async Task StartAsync(Action <AsyncActionResult> asyncActionCallback) { try { string result = await RunStartOrStopCommandAsync("start"); AsyncActionResult actionResult = IsSuccessfull(result) ? AsyncActionResult.Success() : AsyncActionResult.Fail(new IisServerException($"Не удалось запустить сервер: {result}")); asyncActionCallback(actionResult); } catch (Exception exception) { AsyncActionResult.Fail(new IisServerException($"Запуск сервера закончился ошибкой: {exception.Message}", exception)); } }
/// <summary> /// Копирование с обработчиком исключений /// </summary> /// <param name="copyFinishedCallback"></param> /// <returns></returns> public async Task CopyAllAsync(Action <AsyncActionResult> copyFinishedCallback) { if (copyFinishedCallback == null) { throw new ArgumentNullException(paramName: nameof(copyFinishedCallback)); } try { CheckSourceDirectoryForContent(); // Сначала удалим все файлы в паке, куда копируем await _directoryHelper.RemoveAllContentAsync(_targetDirectory); await CopyAllAsync(); copyFinishedCallback(AsyncActionResult.Success()); } catch (Exception ex) { copyFinishedCallback(AsyncActionResult.Fail(ex)); } }