Ejemplo n.º 1
0
        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"));
        }
Ejemplo n.º 2
0
        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());
        }