public static IActionResult OkWithPageHeader <T>( this ControllerBase controller, IPagedCollection <T> value, string routeName, PagedQueryParams queryParams, IUrlHelper urlHelper) { if (controller is null) { throw new ArgumentNullException(nameof(controller)); } if (value is null) { throw new ArgumentNullException(nameof(value)); } if (string.IsNullOrEmpty(routeName)) { throw new ArgumentException("Expected non-null/empty route name", nameof(routeName)); } if (queryParams is null) { throw new ArgumentNullException(nameof(queryParams)); } if (urlHelper is null) { throw new ArgumentNullException(nameof(urlHelper)); } controller.Response.Headers.AddPaginationHeader(value, routeName, queryParams, urlHelper); return(controller.Ok(value.ToList())); }
/// <summary> /// 转换iBestRead.Results.Result为Microsoft.AspNetCore.Mvc.ActionResult /// </summary> public static ActionResult <T> ToActionResult <T>(this ControllerBase controller, Result <T> result) { if (result.Status == ResultStatus.NotFound) { return(controller.NotFound()); } if (result.Status == ResultStatus.Invalid) { foreach (var error in result.ValidationErrors) { controller.ModelState.AddModelError(error.Identifier, error.ErrorMessage); } return(controller.BadRequest(controller.ModelState)); } return(controller.Ok(result.Value)); }