private IEnumerable <NormalizationApiOperationParameter> ParseParameters(dynamic op)
        {
            if (!op.ContainsKey("parameters"))
            {
                goto NoMoreParameters;
            }

            foreach (var paramObj in op.parameters)
            {
                if (!OperationParameterFilter(paramObj))
                {
                    continue;
                }
                if (!paramObj.ContainsKey("paramType"))
                {
                    continue;
                }

                var param = new NormalizationApiOperationParameter();
                param.CopyFrom(SimpleNormalizationApiDataType.ParseFromJObject(paramObj));

                param.AllowsMultiple = paramObj.ContainsKey("allowMultiple") && (bool)paramObj.allowMultiple;
                param.Description    = paramObj.ContainsKey("description") ? (string)paramObj.description : string.Empty;
                param.Name           = paramObj.ContainsKey("name") ? (string)paramObj.name : string.Empty;
                param.ParameterType  = GetParamType(paramObj);
                param.IsRequired     = paramObj.ContainsKey("required") && (bool)paramObj.required;

                yield return(param);
            }

NoMoreParameters:
            ;
        }
        private NormalizationApiModelEnum ParseEnumData(dynamic item)
        {
            dynamic model = item.Value;

            var normEnum = new NormalizationApiModelEnum
            {
                Name = (string)item.Key,
            };

            if (model.ContainsKey("description") && !string.IsNullOrWhiteSpace((string)model.description))
            {
                normEnum.Description = (string)model.description;
            }

            var type = new SimpleNormalizationApiDataType(model);

            type.TryParseEnumFromJObject(model);

            var values = type.EnumValues;

            if (values.Any())
            {
                normEnum.Values.AddRange(values);
            }

            return(normEnum);
        }
        private IEnumerable <NormalizationApiModelProperty> ParseProperties(dynamic model)
        {
            if (!model.ContainsKey("properties"))
            {
                goto NoMoreProperties;
            }

            foreach (var propKv in model.properties)
            {
                var obj = propKv.Value;

                var prop = new NormalizationApiModelProperty
                {
                    Name = propKv.Key
                };

                prop.CopyFrom(SimpleNormalizationApiDataType.ParseFromJObject(obj));

                if (obj.ContainsKey("description"))
                {
                    prop.Description = obj.description;
                }
                if (obj.ContainsKey("key"))
                {
                    prop.IsKey = (bool)obj.key;
                }

                yield return(prop);
            }

NoMoreProperties:
            yield break;
        }
Ejemplo n.º 4
0
        private NormalizationApiModelEnum ParseEnumData(dynamic item)
        {
            var     apiVersion   = (string)item.ApiVersion;
            var     resourceName = (string)item.ResourceName;
            var     resourcePath = (string)item.ResourcePath;
            dynamic model        = item.Model;

            var normEnum = new NormalizationApiModelEnum
            {
                ApiVersion   = apiVersion,
                Name         = (string)model.id,
                ResourceName = resourceName,
                ResourcePath = resourcePath
            };

            if (model.ContainsKey("description") && !string.IsNullOrWhiteSpace((string)model.description))
            {
                normEnum.Description = (string)model.description;
            }

            var type = new SimpleNormalizationApiDataType(model);

            type.TryParseEnumFromJObject(model);

            var values = type.EnumValues;

            if (values.Any())
            {
                normEnum.Values.AddRange(values);
            }

            return(normEnum);
        }
        private NormalizationApiOperationResponse ParseResponse(dynamic op)
        {
            var dataType = SimpleNormalizationApiDataType.ParseFromJObject(op);
            var resp     = new NormalizationApiOperationResponse();

            resp.CopyFrom(dataType);

            return(resp);
        }
        private NormalizationApiOperationResponse ParseResponse(dynamic op)
        {
            //Not sure if this is the best way to go about handling response.
            //In Swagger 2.0 Response type seems to be tied to the
            //response element whereas it was not in Swagger 1.2.
            dynamic dataType = op.Value;

            if (dataType.responses.ContainsKey("200"))
            {
                dataType = dataType.responses["200"];
            }
            else if (dataType.responses.ContainsKey("201"))
            {
                dataType = op.Value.responses["201"];
            }
            else if (dataType.responses.ContainsKey("204"))
            {
                dataType = op.Value.responses["204"];
            }
            else if (dataType.responses.ContainsKey("202"))
            {
                dataType = op.Value.responses["202"];
            }

            string title = "";

            if (dataType.ContainsKey("schema"))
            {
                if (dataType.schema.ContainsKey("title"))
                {
                    title = dataType.schema["title"];
                }
            }

            dataType = SimpleNormalizationApiDataType.ParseFromJObject(dataType);

            var resp = new NormalizationApiOperationResponse();

            resp.CopyFrom(dataType);
            resp.Title20 = title;

            return(resp);
        }