public static IActionResult CreateResult <T>( this Controller @this, Result <T> result, ActionResultOptions <T> options) { object value; if (!result.HasError) { value = result.Content; } else { value = result.ErrorMessage; } switch (result.Status) { case Status.Ok: return(@this.Ok(value)); case Status.NotFound: return(@this.NotFound(value)); case Status.BadRequest: return(@this.BadRequest(value)); case Status.Created: return(@this.CreatedAtRoute(options.RouteName, options.RouteValues(result.Content), value)); default: throw new ArgumentException("Unknown status.", nameof(result)); } }
public static IActionResult CreateResult <T>( this Controller @this, Result <T> result, Action <ActionResultOptions <T> > options) { var o = new ActionResultOptions <T>(@this); options(o); return(@this.CreateResult(result, o)); }