示例#1
0
        /// <summary>
        /// Сделать в случае успеха.
        /// </summary>
        /// <param name="logger">Регистратор.</param>
        /// <param name="result">Результат выполнения.</param>
        /// <param name="funcGetSuccessMessages">Функция получения сообщений об успехах.</param>
        /// <param name="funcGetWarningMessages">Функция получения сообщений о предупреждениях.</param>
        protected void DoOnSuccess(
            ILogger logger,
            CoreBaseExecutionResult result,
            Func <IEnumerable <string> > funcGetSuccessMessages,
            Func <IEnumerable <string> > funcGetWarningMessages
            )
        {
            result.IsOk = true;

            if (funcGetSuccessMessages != null)
            {
                var messages = funcGetSuccessMessages();

                if (messages != null && messages.Any())
                {
                    result.SuccessMessages.CoreBaseExtCollectionAddRange(messages);
                }
            }

            if (funcGetWarningMessages != null)
            {
                var messages = funcGetWarningMessages();

                if (messages != null && messages.Any())
                {
                    result.WarningMessages.CoreBaseExtCollectionAddRange(messages);
                }
            }

#if TEST || DEBUG
            LogResultOnTestOrDebug(logger, result);
#endif
        }
示例#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
        private void LogResultOnTestOrDebug(ILogger logger, CoreBaseExecutionResult result)
        {
            if (logger != null)
            {
                var msg = result.CoreBaseExtJsonSerialize(CoreBaseExtJson.OptionsForLogger);

                logger.LogDebug(msg);
            }
        }