public static IActionResult ToResult(this Operation operation) { switch (operation.Result) { case OperationResult.Succeeded: return(new OkResult()); case OperationResult.Refused: return(new ForbidResult()); case OperationResult.Error: case OperationResult.SucceededWithErrors: { var errors = operation.Errors.Count > 1 ? new Error(ErrorEvents.AggregateErrors, ErrorStrings.AggregateErrors, HttpStatusCode.InternalServerError, operation.Errors) : operation.Errors[0]; var error = new ErrorObjectResult(errors); if (operation.Succeeded) { error.StatusCode = 200; } return(error); } default: throw new ArgumentOutOfRangeException(); } }
public static bool TryValidateModelOrError(this ControllerBase controller, object instance, long eventId, string errorMessage, out ErrorObjectResult error, HttpStatusCode statusCode = HttpStatusCode.UnprocessableEntity, params object[] args) { if (!controller.TryValidateModel(instance)) { var validationError = controller.ConvertModelStateToError(eventId, errorMessage, statusCode); error = new ErrorObjectResult(validationError, args); return(false); } error = null; return(true); }