public static ActionResult Result( this ControllerBase controller, ResultBase result) { var context = new ControllerResultContext(controller, result); var options = controller .HttpContext .RequestServices .GetRequiredService <IOptions <FluentResultOptions> >(); var events = options.Value.ControllerEvents; var customReasons = result .Reasons .Where(r => r.GetType() != typeof(Success)) .Where(r => r.GetType() != typeof(Error)); foreach (var reason in customReasons) { if (events.Handlers.ContainsKey(reason.GetType())) { var handler = events.Handlers[reason.GetType()]; return(handler(context)); } } if (result.IsSuccess) { return(options.Value.ControllerEvents.OnSuccess(context)); } return(options.Value.ControllerEvents.OnFailed(context)); }
public static ActionResult Handle(ControllerResultContext context) { if (context.IsValueResult) { return(context.Controller.Ok(context.Value)); } return(context.Controller.Ok()); }
public static ActionResult Handle(ControllerResultContext context) { var error = context .Result .Errors .OfType <BadRequestError>() .First(); return(context.Controller.BadRequest(error.Error)); }
public static ActionResult Handle(ControllerResultContext context) { var error = context.Controller.ProblemDetailsFactory.CreateProblemDetails( context.Controller.HttpContext, statusCode: 400); error.Extensions["errors"] = context .Result .Errors .Select(e => e.Message); return(context.Controller.BadRequest(error)); }
public static ActionResult Handle(ControllerResultContext context) { var error = context .Result .Errors .OfType <ProblemError>() .First(); return(context.Controller.Problem( error.Detail, error.Instance, error.StatusCode, error.Title, error.Type)); }
public static ActionResult Handle(ControllerResultContext context) { var success = context .Result .Successes .OfType <CreatedSuccess>() .First(); if (success.Location == null) { return(context.Controller.StatusCode(StatusCodes.Status201Created, context.Value)); } return(context.Controller.Created(success.Location, context.Value)); }
public static ActionResult Handle(ControllerResultContext context) { var validationErrors = context .Result .Errors .OfType <ValidationProblemError>(); foreach (var validationError in validationErrors) { context.Controller.ModelState.AddModelError(validationError.Key ?? string.Empty, validationError.Message); } var generalErrors = context .Result .Errors .Where(r => r.GetType() == typeof(Error)) .Select(e => e.Message) .Where(e => e is not null); string detail = string.Join(" ", generalErrors); return(context.Controller.ValidationProblem(detail: detail)); }
public static ActionResult Handle(ControllerResultContext context) { return(context.Controller.NotFound(context.Value)); }
public static ActionResult Handle(ControllerResultContext context) { return(context.Controller.Forbid()); }