/// <summary> /// Получение зарегистрированной ошибки. /// </summary> /// <param name="exceptionObject">Объект исключения, приведшего к возникновению ошибки.</param> /// <returns>Зарегистрированная ошибка.</returns> private CoreBaseError GetLoggedError(object exceptionObject) { CoreBaseError result = null; try { Exception exception = null; if (exceptionObject is Exception) { exception = (Exception)exceptionObject; } result = CreateError(exception); LogError(result); } catch (Exception ex) { if (result == null) { result = CreateError(ex); } LogError(result); } return(result); }
/// <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()); } }