private static string Render(ITemplate template, DataConversionParameters parameters) { template.Initialize(new { Variable = parameters.Variable, Value = parameters.Value, HasDefaultValue = PropertyModelBase.GetDefaultValue(parameters.Schema) != null, DefaultValue = PropertyModelBase.GetDefaultValue(parameters.Schema), Type = parameters.Resolver.Resolve(parameters.Schema, parameters.IsPropertyNullable, parameters.TypeNameHint), IsNewableObject = IsNewableObject(parameters.Schema), IsDate = parameters.Schema.Format == JsonFormatStrings.DateTime, IsDictionary = parameters.Schema.IsDictionary, DictionaryValueType = parameters.Resolver.TryResolve(parameters.Schema.AdditionalPropertiesSchema, parameters.TypeNameHint) ?? "any", IsDictionaryValueNewableObject = parameters.Schema.AdditionalPropertiesSchema != null && IsNewableObject(parameters.Schema.AdditionalPropertiesSchema), IsDictionaryValueDate = parameters.Schema.AdditionalPropertiesSchema?.Format == JsonFormatStrings.DateTime, IsArray = parameters.Schema.Type.HasFlag(JsonObjectType.Array), ArrayItemType = parameters.Resolver.TryResolve(parameters.Schema.Item, parameters.TypeNameHint) ?? "any", IsArrayItemNewableObject = parameters.Schema.Item != null && IsNewableObject(parameters.Schema.Item), IsArrayItemDate = parameters.Schema.Item?.Format == JsonFormatStrings.DateTime }); return(template.Render()); }
/// <summary>Generates the code to convert a data object to the target class instances.</summary> /// <param name="variable">The variable to assign the converted value to.</param> /// <param name="value">The variable containing the original value.</param> /// <param name="schema">The schema.</param> /// <param name="isPropertyNullable">Value indicating whether the value is nullable.</param> /// <param name="typeNameHint">The type name hint.</param> /// <returns>The generated code.</returns> /// <exception cref="ArgumentNullException"><paramref name="schema"/> is <see langword="null" />.</exception> public string GenerateDataConversion(string variable, string value, JsonSchema4 schema, bool isPropertyNullable, string typeNameHint) { if (schema == null) { throw new ArgumentNullException(nameof(schema)); } var template = new DataConversionTemplate() as ITemplate; template.Initialize(new // TODO: Create model class { Variable = variable, Value = value, HasDefaultValue = PropertyModelBase.GetDefaultValue(schema) != null, DefaultValue = PropertyModelBase.GetDefaultValue(schema), Type = _resolver.Resolve(schema, isPropertyNullable, typeNameHint), IsNewableObject = IsNewableObject(schema), IsDate = schema.Format == JsonFormatStrings.DateTime, IsDictionary = schema.IsDictionary, DictionaryValueType = _resolver.TryResolve(schema.AdditionalPropertiesSchema, typeNameHint), IsDictionaryValueNewableObject = schema.AdditionalPropertiesSchema != null && IsNewableObject(schema.AdditionalPropertiesSchema), IsDictionaryValueDate = schema.AdditionalPropertiesSchema?.Format == JsonFormatStrings.DateTime, IsArray = schema.Type.HasFlag(JsonObjectType.Array), ArrayItemType = _resolver.TryResolve(schema.Item, typeNameHint), IsArrayItemNewableObject = schema.Item != null && IsNewableObject(schema.Item), IsArrayItemDate = schema.Item?.Format == JsonFormatStrings.DateTime }); return(template.Render()); }