public ValidationResponse GetValidationResponse()
        {
            var errorList = new List <ValidationError>();

            foreach (var key in ModelState.Keys)
            {
                System.Web.Http.ModelBinding.ModelState mstate = null;
                if (ModelState.TryGetValue(key, out mstate))
                {
                    foreach (var error in mstate.Errors)
                    {
                        errorList.Add(new ValidationError()
                        {
                            Key     = key,
                            Message = error.ErrorMessage
                        });
                    }
                }
            }

            var response = new ValidationResponse()
            {
                Type    = "Validation",
                Message = "",
                Errors  = errorList
            };

            return(response);
        }
Esempio n. 2
0
        public static MailboxNameData.Parsed Parse(this MailboxNameData target)
        {
            var modelStateDictionary = new System.Web.Http.ModelBinding.ModelStateDictionary();

            MailboxName parsed0 = null;

            if (!MailboxName.IsEmpty(target.MailboxName))
            {
                System.Collections.Generic.IReadOnlyCollection <string> parsed0Errors;
                if (!MailboxName.TryParse(target.MailboxName, out parsed0, out parsed0Errors))
                {
                    var modelState = new System.Web.Http.ModelBinding.ModelState();
                    foreach (var errorMessage in parsed0Errors)
                    {
                        modelState.Errors.Add(errorMessage);
                    }

                    modelStateDictionary.Add("MailboxName", modelState);
                }
            }
            else
            {
                var modelState = new System.Web.Http.ModelBinding.ModelState();
                modelState.Errors.Add("Value required");
                modelStateDictionary.Add("MailboxName", modelState);
            }

            if (!modelStateDictionary.IsValid)
            {
                throw new Fifthweek.Api.Core.ModelValidationException(modelStateDictionary);
            }

            return(new MailboxNameData.Parsed(
                       parsed0));
        }
        public static NewChannelData.Parsed Parse(this NewChannelData target)
        {
            var modelStateDictionary = new System.Web.Http.ModelBinding.ModelStateDictionary();

            ValidChannelName parsed0 = null;

            if (!ValidChannelName.IsEmpty(target.Name))
            {
                System.Collections.Generic.IReadOnlyCollection <string> parsed0Errors;
                if (!ValidChannelName.TryParse(target.Name, out parsed0, out parsed0Errors))
                {
                    var modelState = new System.Web.Http.ModelBinding.ModelState();
                    foreach (var errorMessage in parsed0Errors)
                    {
                        modelState.Errors.Add(errorMessage);
                    }

                    modelStateDictionary.Add("Name", modelState);
                }
            }
            else
            {
                var modelState = new System.Web.Http.ModelBinding.ModelState();
                modelState.Errors.Add("Value required");
                modelStateDictionary.Add("Name", modelState);
            }

            ValidChannelPrice parsed1 = null;

            System.Collections.Generic.IReadOnlyCollection <string> parsed1Errors;
            if (!ValidChannelPrice.TryParse(target.Price, out parsed1, out parsed1Errors))
            {
                var modelState = new System.Web.Http.ModelBinding.ModelState();
                foreach (var errorMessage in parsed1Errors)
                {
                    modelState.Errors.Add(errorMessage);
                }

                modelStateDictionary.Add("Price", modelState);
            }

            if (!modelStateDictionary.IsValid)
            {
                throw new Fifthweek.Api.Core.ModelValidationException(modelStateDictionary);
            }

            return(new NewChannelData.Parsed(
                       target.BlogId,
                       parsed0,
                       parsed1,
                       target.IsVisibleToNonSubscribers));
        }
Esempio n. 4
0
        public IActionResult ModelError(SomeModel model)
        {
            //older versions
            var a = new System.Web.Http.ModelBinding.ModelState().Errors;

            var x = ModelState.ToDictionary(
                m => {
                var tokens = m.Key.Split('.');
                return(tokens.Length > 0 ? tokens[tokens.Length - 1] : tokens[0]);
            },
                m => m.Value.Errors.Select(e => e.Exception?.Message ?? e.ErrorMessage)
                );

            return(Ok(x));
        }