private ApiDescriptionModel CreateApiDescriptionModel(ApiDescription apiDescription) { var apiDescriptionModel = new ApiDescriptionModel { Description = null, Id = apiDescription.GetFriendlyId(), GroupName = apiDescription.GroupName, HttpMethod = apiDescription.HttpMethod, RelativePath = apiDescription.RelativePath, ApiDescription = apiDescription }; var controllerActionDescriptor = apiDescription.ActionDescriptor as ControllerActionDescriptor; if (controllerActionDescriptor != null) { apiDescriptionModel.IsDeprecated = controllerActionDescriptor .MethodInfo .CustomAttributes .Any(o => o.AttributeType == typeof(ObsoleteAttribute)); } if (!apiDescriptionModel.IsDeprecated && _obsoleteRouteRegex != null) // filter obsolete api route with ObsoleteRoutePathPattern. { apiDescriptionModel.IsDeprecated = _obsoleteRouteRegex.IsMatch(apiDescriptionModel.RelativePath); } if (controllerActionDescriptor != null) { apiDescriptionModel.Description = _documentationProvider.GetDocumentation(controllerActionDescriptor.MethodInfo); } return(apiDescriptionModel); }
private ApiDescriptionDetailModel CreateApiDescriptionDetailModel(ApiDescriptionModel apiDescriptionModel) { var apiDescriptionDetailModel = new ApiDescriptionDetailModel { Id = apiDescriptionModel.Id, Description = apiDescriptionModel.Description, GroupName = apiDescriptionModel.GroupName, HttpMethod = apiDescriptionModel.HttpMethod, RelativePath = apiDescriptionModel.RelativePath, IsDeprecated = apiDescriptionModel.IsDeprecated, ApiDescription = apiDescriptionModel.ApiDescription }; BuildRequestInformation(apiDescriptionDetailModel); BuildResponseInformation(apiDescriptionDetailModel); return(apiDescriptionDetailModel); }