internal static ActionResult ToActionResult(this ControllerBase controller, IApiResponse response) { switch (response.Status) { case ResponseStatus.Ok: return(controller.Ok(response.GetValue())); case ResponseStatus.NotFound: return(controller.NotFound()); case ResponseStatus.Unauthorized: return(controller.Unauthorized()); case ResponseStatus.Forbidden: return(controller.Forbid()); case ResponseStatus.Invalid: return(BadRequest(controller, response)); case ResponseStatus.Error: return(UnprocessableEntity(controller, response)); default: throw new NotSupportedException($"Result {response.Status} conversion is not supported."); } }