예제 #1
0
        private static async Task HandleAbpValidationException(AbpValidationException abpValidationException,
                                                               Func <System.Exception, Task> failCallback)
        {
            await UserDialogs.Instance.AlertAsync(abpValidationException.GetConsolidatedMessage(),
                                                  LocalTranslation.MessageTitle, LocalTranslation.Ok);

            await failCallback(abpValidationException);
        }
        public void ValidationException_Default_Log_Severity_Change_Test()
        {
            // change log severity ...
            AbpValidationException.DefaultLogSeverity = LogSeverity.Error;

            var exception = new AbpValidationException("Test exception !");

            exception.Severity.ShouldBe(LogSeverity.Error);
        }
예제 #3
0
        private static async Task HandleAbpValidationException(AbpValidationException abpValidationException,
                                                               Func <System.Exception, Task> failCallback)
        {
            dialogService.ShowMessage(
                LocalTranslationHelper.Localize("MessageTitle"),
                abpValidationException.GetConsolidatedMessage());

            await failCallback(abpValidationException);
        }
        private void HandleDbEntityValidationException(DbEntityValidationException ex)
        {
            var abpValidationException = new AbpValidationException();

            foreach (var validationResult in ex.EntityValidationErrors)
            {
                foreach (var error in validationResult.ValidationErrors)
                {
                    abpValidationException.ValidationErrors.Add(new System.ComponentModel.DataAnnotations.ValidationResult(error.ErrorMessage));
                }
            }
            throw abpValidationException;
        }
예제 #5
0
        private static string GetValidationErrorNarrative(AbpValidationException validationException)
        {
            var detailBuilder = new StringBuilder();

            detailBuilder.AppendLine(AbpWebLocalizedMessages.ValidationNarrativeTitle);

            foreach (var validationResult in validationException.ValidationErrors)
            {
                detailBuilder.AppendFormat(" - {0}", validationResult.ErrorMessage);
                detailBuilder.AppendLine();
            }

            return(detailBuilder.ToString());
        }
예제 #6
0
        private string GetValidationErrorNarrative(AbpValidationException validationException)
        {
            var detailBuilder = new StringBuilder();

            detailBuilder.AppendLine("验证过程中检测到以下错误");

            foreach (var validationResult in validationException.ValidationErrors)
            {
                detailBuilder.AppendFormat(" - {0}", validationResult.ErrorMessage);
                detailBuilder.AppendLine();
            }

            return(detailBuilder.ToString());
        }
        protected string GetMessageFromException(Exception ex)
        {
            var message = ex switch
            {
                UserFriendlyException e => e.Message,
                AbpIdentityResultException e => e.LocalizeMessage(new LocalizationContext(ServiceProvider))
                .Replace(",", "\n"),
                AbpValidationException e => e.ValidationErrors.Select(error => error.ErrorMessage).JoinAsString("\n"),
                BusinessException e => L[e.Code, ex.Data["Email"]],
                _ => ex.Message
            };

            return(message);
        }
    }
        public static string GetConsolidatedMessage(this AbpValidationException abpValidationException)
        {
            if (abpValidationException?.ValidationErrors == null)
            {
                return(null);
            }

            if (!abpValidationException.ValidationErrors.Any())
            {
                return(null);
            }

            var validationErrorMessages = abpValidationException.ValidationErrors.Select(e => "* " + e.ErrorMessage);
            var consolidatedMessage     = validationErrorMessages.JoinAsString(Environment.NewLine);

            return(consolidatedMessage);
        }
예제 #9
0
        private static ValidationErrorInfo[] GetValidationErrorInfos(AbpValidationException validationException)
        {
            var validationErrorInfos = new List <ValidationErrorInfo>();

            foreach (var validationResult in validationException.ValidationErrors)
            {
                var validationError = new ValidationErrorInfo(validationResult.ErrorMessage);

                if (validationResult.MemberNames != null && validationResult.MemberNames.Any())
                {
                    validationError.Members = validationResult.MemberNames.Select(m => m.ToCamelCase()).ToArray();
                }

                validationErrorInfos.Add(validationError);
            }

            return(validationErrorInfos.ToArray());
        }
예제 #10
0
        private ValidationErrorInfo[] GetValidationErrorInfos(AbpValidationException validationException)
        {
            var validationErrorInfos = new List <ValidationErrorInfo>();

            foreach (var validationResult in validationException.ValidationErrors)
            {
                var validationError = new ValidationErrorInfo(validationResult.ErrorMessage);
                if (validationResult.ErrorMessage == "The EmailAddress field is not a valid e-mail address.")
                {
                    validationError.Message = "Email格式错误。";
                }

                if (validationResult.MemberNames != null && validationResult.MemberNames.Any())
                {
                    validationError.Members = validationResult.MemberNames.Select(m => m.ToCamelCase()).ToArray();
                }

                validationErrorInfos.Add(validationError);
            }

            return(validationErrorInfos.ToArray());
        }
예제 #11
0
        /// <summary>
        /// 重写基类的异常处理方法
        /// </summary>
        /// <param name="context"></param>
        public override void OnException(ExceptionContext context)
        {
            base.OnException(context);
            context.ExceptionHandled = true;
            string errorMsg = "";
            AbpValidationException abpValidationException = context.Exception as AbpValidationException;

            if (abpValidationException?.ValidationErrors?.Count > 0)
            {
                foreach (var validationError in abpValidationException.ValidationErrors)
                {
                    errorMsg += validationError.ErrorMessage + ",";
                }
            }
            else
            {
                Warning warning = context.Exception as Warning;
                if (warning != null)
                {
                    errorMsg = "500-" + warning.Message;
                }
                else
                {
                    errorMsg = "500-" + ExceptionPrompt.Instance.GetPrompt(context.Exception);
                }
            }
            context.Result = new ContentResult
            {
                Content = Spring.Helpers.Json.ToJson(new
                {
                    code      = StateCode.SystemError.Value(),
                    message   = errorMsg,
                    timestamp = DateTimeOffset.Now.ToUnixTimeSeconds()
                })
            };
        }
예제 #12
0
        private static void ValidationExHandler(ExceptionContext context, AbpValidationException v)
        {
            var erroMsgs = v.ValidationErrors.Select(e => e.ErrorMessage);

            context.Result = new JsonResult(new ApiResult().Error(erroMsgs.Aggregate((i, next) => $"{i},{next}")));
        }