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)); }
public static IActionResult CreateResult <T, TViewModel>( this Controller @this, Result <T> result, ActionResultOptions <T, TViewModel> options) { object value; if (!result.HasError && options.ToViewModel != null) { value = options.ToViewModel(result.Content); } else if (!result.HasError) { value = result.Content; } else { value = result.ErrorMessage; } if (result.Status == Status.Ok) { return(@this.Ok(value)); } if (result.Status == Status.NotFound) { return(@this.NotFound(value)); } if (result.Status == Status.BadRequest) { return(@this.BadRequest(value)); } if (result.Status == Status.Created) { return(@this.CreatedAtRoute(options.RouteName, options.RouteValues(result.Content), value)); } throw new ArgumentException("Unknown status.", nameof(result)); }