/// <summary> /// В случае возникновения ошибки. /// </summary> /// <param name="ex">Исключение.</param> /// <param name="logger">Регистратор.</param> /// <param name="result">Результат выполнения задания с данными.</param> public void OnError( Exception ex, ILogger logger, CoreBaseExecutionResult result ) { string errorMessage = null; var errorMessages = GetErrorMessages(ex); if (errorMessages != null && errorMessages.Any()) { result.ErrorMessages.CoreBaseExtCollectionAddRange(errorMessages); } else { var error = new CoreBaseError(ex, CoreBaseResourceErrors); errorMessage = error.CreateMessageWithCode(); result.ErrorMessages.Add(errorMessage); } if (logger != null) { if (errorMessage == null && errorMessages != null && errorMessages.Any()) { errorMessage = string.Join(". ", errorMessages); } logger.LogError(ex, errorMessage); } }
/// <summary> /// Зарегистрировать ошибку. /// </summary> /// <param name="error">Ошибка.</param> protected void LogError(CoreBaseError error) { if (error.ShouldBeLogged && Logger != null) { Logger.LogCritical(error.Exception, error.CreateMessageWithCode()); } }