Ejemplo n.º 1
0
        public void OnProvidersExecuting(ErrorDescriptionContext context)
        {
            if (context.ActionDescriptor.FilterDescriptors.Any(f => f.Filter is VndErrorAttribute) &&
                context.Result is ModelStateDictionary dictionary)
            {
                var vndErrors = new List <VndError>();
                foreach (var item in dictionary)
                {
                    foreach (var modelError in item.Value.Errors)
                    {
                        vndErrors.Add(new VndError
                        {
                            LogRef  = modelError.ErrorMessage,
                            Path    = item.Key,
                            Message = modelError.ErrorMessage,
                        });
                    }
                }

                context.Result = vndErrors;
            }
        }
Ejemplo n.º 2
0
        public void OnProvidersExecuting(ErrorDescriptionContext context)
        {
            if (context.ActionDescriptor.FilterDescriptors.Any(f => f.Filter is VndErrorAttribute) &&
                context.Result is ValidationProblemDetails problemDetails)
            {
                var vndErrors = new List <VndError>();
                foreach (var item in problemDetails.Errors)
                {
                    foreach (var message in item.Value)
                    {
                        vndErrors.Add(new VndError
                        {
                            LogRef  = problemDetails.Title,
                            Path    = item.Key,
                            Message = message,
                        });
                    }
                }

                context.Result = vndErrors;
            }
        }
        public object CreateErrorDescription(ActionDescriptor actionDescriptor, object result)
        {
            if (actionDescriptor == null)
            {
                throw new ArgumentNullException(nameof(actionDescriptor));
            }

            if (result == null)
            {
                throw new ArgumentNullException(nameof(result));
            }

            var context = new ErrorDescriptionContext(actionDescriptor)
            {
                Result = result,
            };

            for (var i = 0; i < _providers.Length; i++)
            {
                _providers[i].OnProvidersExecuting(context);
            }

            return(context.Result ?? result);
        }