Exemplo n.º 1
0
        private string GetScalarType(RamlType ramlType)
        {
            var type = NetTypeMapper.GetNetType(ramlType.Scalar.Type, ramlType.Scalar.Format);

            if (type != null)
            {
                return(type);
            }

            if (!ramlTypes.ContainsKey(ramlType.Scalar.Type))
            {
                return("object");
            }

            var subRamlType = ramlTypes[ramlType.Scalar.Type];

            if (subRamlType.Scalar == null)
            {
                return(NetNamingMapper.GetObjectName(ramlType.Scalar.Type));
            }

            type = GetScalarType(subRamlType);
            if (type != null)
            {
                return(type);
            }

            throw new InvalidOperationException("Cannot determine type of scalar " + ramlType.Name);
        }
Exemplo n.º 2
0
        public static IList <Property> ConvertHeadersToProperties(IDictionary <string, Parameter> headers)
        {
            var properties = new List <Property>();

            if (headers == null)
            {
                return(properties);
            }

            foreach (var header in headers)
            {
                var description = ParserHelpers.RemoveNewLines(header.Value.Description);

                var type       = NetTypeMapper.GetNetType(header.Value.Type, header.Value.Format);
                var typeSuffix = (type == "string" || header.Value.Required ? "" : "?");

                properties.Add(new Property
                {
                    Type         = type + typeSuffix,
                    Name         = NetNamingMapper.GetPropertyName(header.Key),
                    OriginalName = header.Value.DisplayName,
                    Description  = description,
                    Example      = header.Value.Example,
                    Required     = header.Value.Required
                });
            }
            return(properties);
        }
        private IEnumerable <GeneratorParameter> MatchParameters(IDictionary <string, Parameter> parentUriParameters, GeneratorParameter[] urlParameters)
        {
            var parameters = new List <GeneratorParameter>();

            foreach (var param in urlParameters)
            {
                if (parentUriParameters.ContainsKey(param.Name))
                {
                    param.Type        = NetTypeMapper.GetNetType(parentUriParameters[param.Name].Type, parentUriParameters[param.Name].Format);
                    param.Description = parentUriParameters[param.Name].Description;
                }
                parameters.Add(param);
            }
            return(parameters);
        }
        private string GetPropertyType(RamlType prop, KeyValuePair <string, RamlType> kv)
        {
            if (string.IsNullOrWhiteSpace(prop.Type))
            {
                return("string");
            }

            if (prop.Type == "object" || (prop.Scalar.Enum != null && prop.Scalar.Enum.Any()))
            {
                return(NetNamingMapper.GetPropertyName(kv.Key));
            }

            var propertyType = NetTypeMapper.GetNetType(prop.Scalar.Type, prop.Scalar.Format);

            if (propertyType != null)
            {
                if (!prop.Required && !prop.Scalar.Required && propertyType != "string" && prop.Type != "file")
                {
                    return(propertyType + "?");
                }

                return(propertyType);
            }

            if (schemaObjects.ContainsKey(prop.Type))
            {
                var obj = schemaObjects[prop.Type];
                if (obj.IsScalar)
                {
                    return(obj.Properties.First().Type);
                }

                return(obj.Type);
            }

            if (enums.ContainsKey(prop.Type))
            {
                return(prop.Type);
            }


            return("object");
        }
        private string GetParameterType(KeyValuePair <string, Parameter> parameter)
        {
            var parameterType = NetTypeMapper.GetNetType(parameter.Value.Type, parameter.Value.Format);

            if (parameterType != null)
            {
                return(parameterType);
            }

            if (schemaObjects.ContainsKey(parameter.Value.Type))
            {
                var schemaObject = schemaObjects[parameter.Value.Type];
                if (schemaObject.IsScalar)
                {
                    return(schemaObject.Properties.First().Type);
                }

                return(schemaObject.Type);
            }

            return("object");
        }
        public IEnumerable <GeneratorParameter> GetUriParameters(Resource resource, string url, IDictionary <string, Parameter> parentUriParameters)
        {
            var parameters = resource.BaseUriParameters
                             .Select(p => new GeneratorParameter {
                Name = p.Key, Type = NetTypeMapper.GetNetType(p.Value.Type, p.Value.Format), Description = p.Value.Description
            })
                             .ToList();

            parameters.AddRange(resource.UriParameters
                                .Select(p => new GeneratorParameter {
                Name = p.Key, Type = GetParameterType(p), Description = p.Value.Description
            })
                                .ToList());

            var urlParameters        = ExtractParametersFromUrl(url).ToArray();
            var distincUrlParameters = urlParameters.Where(up => parameters.All(p => up.Name != p.Name)).ToArray();

            var matchedParameters = MatchParameters(parentUriParameters, distincUrlParameters);

            parameters.AddRange(matchedParameters);
            return(parameters);
        }
Exemplo n.º 7
0
        private string GetType(Parameter param)
        {
            if (param.Type == null)
            {
                return("string");
            }

            if (NetTypeMapper.IsPrimitiveType(param.Type))
            {
                return(NetTypeMapper.GetNetType(param.Type, param.Format) +
                       (NetTypeMapper.GetNetType(param.Type, param.Format) == "string" || param.Required ? "" : "?"));
            }

            var pureType = RamlTypesHelper.ExtractType(param.Type);

            if (schemaObjects.ContainsKey(pureType))
            {
                var apiObject = schemaObjects[pureType];
                return(RamlTypesHelper.GetTypeFromApiObject(apiObject));
            }

            return(RamlTypesHelper.DecodeRaml1Type(param.Type));
        }