예제 #1
0
        private NormalizationApiModel ParseModelData(dynamic item)
        {
            var     apiVersion   = (string)item.ApiVersion;
            var     resourceName = (string)item.ResourceName;
            var     resourcePath = (string)item.ResourcePath;
            dynamic model        = item.Model;

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

            if (model.ContainsKey("subTypes"))
            {
                foreach (var sto in model.subTypes)
                {
                    if (sto == null)
                    {
                        continue;
                    }
                    var st = (string)sto;
                    if (string.IsNullOrWhiteSpace(st))
                    {
                        continue;
                    }

                    normModel.RawSubTypes.Add(st);
                }
            }

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

            var requiredProperties = ParseRequiredProperties(model);

            foreach (NormalizationApiModelProperty prop in ParseProperties(model))
            {
                prop.ApiVersion = apiVersion;

                if (requiredProperties.Contains(prop.Name))
                {
                    prop.IsRequired = true;
                }
                normModel.Properties.Add(prop);
            }

            return(normModel);
        }
        private NormalizationApiModel ParseModelData(dynamic item)
        {
            dynamic model = item.Value;

            var normModel = new NormalizationApiModel
            {
                Name = (string)model.title,
            };

            if (model.ContainsKey("subTypes"))
            {
                foreach (var sto in model.subTypes)
                {
                    if (sto == null)
                    {
                        continue;
                    }
                    var st = (string)sto;
                    if (string.IsNullOrWhiteSpace(st))
                    {
                        continue;
                    }

                    normModel.RawSubTypes.Add(st);
                }
            }

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

            var requiredProperties = ParseRequiredProperties(model);

            foreach (NormalizationApiModelProperty prop in ParseProperties(model))
            {
                if (requiredProperties.Contains(prop.Name))
                {
                    prop.IsRequired = true;
                }
                normModel.Properties.Add(prop);
            }

            return(normModel);
        }