Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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);
            }
        }
Пример #3
0
 /// <summary>
 /// Зарегистрировать ошибку.
 /// </summary>
 /// <param name="error">Ошибка.</param>
 protected void LogError(CoreBaseError error)
 {
     if (error.ShouldBeLogged && Logger != null)
     {
         Logger.LogCritical(error.Exception, error.CreateMessageWithCode());
     }
 }