private void GenerateDataConversionCodes(IEnumerable <OperationModel> operations)
        {
            foreach (var operation in operations)
            {
                foreach (var response in operation.Responses.Where(r => r.HasType))
                {
                    var generator = new TypeScriptGenerator(response.ActualResponseSchema, Settings.TypeScriptGeneratorSettings, _resolver);
                    response.DataConversionCode = generator.GenerateDataConversion("result" + response.StatusCode,
                                                                                   "resultData" + response.StatusCode, response.ActualResponseSchema, response.IsNullable, string.Empty);
                }

                if (operation.HasDefaultResponse && operation.DefaultResponse.HasType)
                {
                    var generator = new TypeScriptGenerator(operation.DefaultResponse.ActualResponseSchema,
                                                            Settings.TypeScriptGeneratorSettings, _resolver);
                    operation.DefaultResponse.DataConversionCode = generator.GenerateDataConversion("result", "resultData",
                                                                                                    operation.DefaultResponse.ActualResponseSchema, operation.DefaultResponse.IsNullable, string.Empty);
                }
            }
        }
示例#2
0
        public PropertyModel(JsonProperty property, TypeScriptTypeResolver resolver, TypeScriptGeneratorSettings settings, TypeScriptGenerator generator)
            : base(property)
        {
            var propertyName = ConversionUtilities.ConvertToLowerCamelCase(property.Name).Replace("-", "_");

            Name               = property.Name;
            InterfaceName      = property.Name.Contains("-") ? '\"' + property.Name + '\"' : property.Name;
            PropertyName       = propertyName;
            Type               = resolver.Resolve(property.ActualPropertySchema, property.IsNullable, property.Name);
            DataConversionCode = settings.TypeStyle == TypeScriptTypeStyle.Interface ? string.Empty : generator.GenerateDataConversion(
                settings.TypeStyle == TypeScriptTypeStyle.Class ? "this." + propertyName : propertyName,
                "data[\"" + property.Name + "\"]",
                property.ActualPropertySchema,
                property.IsNullable,
                property.Name);
            Description    = property.Description;
            HasDescription = !string.IsNullOrEmpty(property.Description);
            IsArray        = property.ActualPropertySchema.Type.HasFlag(JsonObjectType.Array);
            ArrayItemType  = resolver.TryResolve(property.ActualPropertySchema.Item, property.Name);
            IsReadOnly     = property.IsReadOnly && settings.GenerateReadOnlyKeywords;
            IsOptional     = !property.IsRequired;
        }