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