public Task ExecuteResultAsync(ActionContext context) { var errors = context.ModelState .Where(x => x.Value.Errors.Count > 0) .ToDictionary( kvp => kvp.Key, kvp => kvp.Value.Errors.Select(e => e.ErrorMessage).ToArray() ); var problemDetails = new ValidationErrorViewModel { Status = 400, Title = "Request Validation Error", StackTrace = "See ValidationErrors for details", ValidationErrors = errors }; context.HttpContext.Response.StatusCode = 400; context.HttpContext.Response.WriteAsync(JsonConvert.SerializeObject(problemDetails)); return(Task.CompletedTask); }
private static ValidationErrorViewModel ConstructValidationError(string message) { var validationError = new ValidationErrorViewModel(); if (!string.IsNullOrEmpty(message) && message.Contains("@")) { string[] errorParts = message.Split('@'); int code = 0; if (errorParts.Length == 3) { Int32.TryParse(errorParts[0] ?? "0", out code); if (code == 1) { return(null); } validationError.Code = code; validationError.Reason = errorParts[1] ?? string.Empty; validationError.Skus = new List <SkuErrorModel> { new SkuErrorModel { Sku = errorParts[2] ?? string.Empty, MaxQuantity = 0 } }; return(validationError); } if (errorParts.Length == 2) { validationError.Code = 10416; validationError.Reason = errorParts[0] ?? string.Empty; validationError.Skus = null; return(validationError); } } validationError.Code = 10416; validationError.Reason = "Quote Failed"; validationError.Skus = null; return(validationError); }