private string GetTypeDocumentation(Type type) { if (type == null) { return(null); } // get XML documentation for specified resource type var resourceTypeElement = DataXmlCommentReader.GetTypeElement(type); return(resourceTypeElement.ElementContents("summary")); }
private MetadataParameter[] GetTypeParameters(Type type, JsonMapperEntryMode?exclude = null, string prefix = null) { // get JSON mapping manager var mapper = JsonMapperManager.GetMapper(type); if (mapper == null) { return new MetadataParameter[] { } } ; // create parameters from mapping entries var parameters = new List <MetadataParameter>(); foreach (var parameter in mapper.Entries.Where(e => exclude == null || e.Mode != exclude.Value)) { // add parameter that corresponds to the mapped property var isJsonObject = parameter.EntityProperty.IsDefined(typeof(JsonFieldAttribute), false); var param = new MetadataParameter { Name = (prefix == null ? null : prefix + ".") + parameter.JsonProperty, Type = isJsonObject ? "object" : ToJsonType(parameter.EntityProperty.PropertyType), IsRequred = IsRequired(parameter.EntityProperty), Documentation = DataXmlCommentReader.GetPropertyElement(parameter.EntityProperty).ElementContents("summary"), }; parameters.Add(param); // add child object parameters if (param.Type == "object" && !isJsonObject) { parameters.AddRange(GetTypeParameters(parameter.EntityProperty.PropertyType, exclude, param.Name)); } } return(parameters.ToArray()); }