/// <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 }
/// <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); } }
private void LogResultOnTestOrDebug(ILogger logger, CoreBaseExecutionResult result) { if (logger != null) { var msg = result.CoreBaseExtJsonSerialize(CoreBaseExtJson.OptionsForLogger); logger.LogDebug(msg); } }