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.");
            }
        }