/// <summary>Gets or generates the type name for the given schema.</summary> /// <param name="schema">The schema.</param> /// <param name="typeNameHint">The type name hint.</param> /// <returns>The type name.</returns> public virtual string GetOrGenerateTypeName(JsonSchema4 schema, string typeNameHint) { schema = schema.ActualSchema; if (!_generatedTypeNames.ContainsKey(schema)) { var typeName = schema.GetTypeName(_typeNameGenerator, typeNameHint); if (string.IsNullOrEmpty(typeName)) { typeName = GenerateTypeName(typeNameHint); } else { if (_generatedTypeNames.ContainsValue(typeName)) { typeName = GenerateTypeName(typeName); } } typeName = typeName .Replace("[", "Of") .Replace("]", string.Empty) .Replace(",", "And") .Replace(" ", string.Empty); _generatedTypeNames[schema] = ConversionUtilities.ConvertToUpperCamelCase(typeName, true); } return(_generatedTypeNames[schema]); }
public static ValueTask <FluidValue> Uppercamelcase(FluidValue input, FilterArguments arguments, TemplateContext context) { var firstCharacterMustBeAlpha = arguments["firstCharacterMustBeAlpha"].ToBooleanValue(); var converted = ConversionUtilities.ConvertToUpperCamelCase(input.ToStringValue(), firstCharacterMustBeAlpha); return(new ValueTask <FluidValue>(new StringValue(converted))); }
/// <summary>Generates the enumeration name/key of the given enumeration entry.</summary> /// <param name="index">The index of the enumeration value (check <see cref="JsonSchema.Enumeration" /> and <see cref="JsonSchema.EnumerationNames" />).</param> /// <param name="name">The name/key.</param> /// <param name="value">The value.</param> /// <param name="schema">The schema.</param> /// <returns>The enumeration name.</returns> public string Generate(int index, string name, object value, JsonSchema schema) { if (string.IsNullOrEmpty(name)) { return("Empty"); } switch (name) { case ("="): name = "Eq"; break; case ("!="): name = "Ne"; break; case (">"): name = "Gt"; break; case ("<"): name = "Lt"; break; case (">="): name = "Ge"; break; case ("<="): name = "Le"; break; case ("~="): name = "Approx"; break; } if (name.StartsWith("-")) { name = "Minus" + name.Substring(1); } if (name.StartsWith("+")) { name = "Plus" + name.Substring(1); } if (name.StartsWith("_-")) { name = "__" + name.Substring(2); } return(_invalidNameCharactersPattern.Replace(ConversionUtilities.ConvertToUpperCamelCase(name .Replace(":", "-").Replace(@"""", @""), true), "_")); }
/// <summary>Gets the enum default value.</summary> /// <param name="schema">The schema.</param> /// <param name="actualSchema">The actual schema.</param> /// <param name="typeNameHint">The type name hint.</param> /// <returns>The enum default value.</returns> protected virtual string GetEnumDefaultValue(JsonSchema4 schema, JsonSchema4 actualSchema, string typeNameHint) { var typeName = _typeResolver.Resolve(actualSchema, false, typeNameHint); var enumName = schema.Default is string ?schema.Default.ToString() : actualSchema.EnumerationNames[actualSchema.Enumeration.ToList().IndexOf(schema.Default)]; return(typeName + "." + ConversionUtilities.ConvertToUpperCamelCase(enumName, true)); }
/// <summary>Generates the enumeration name/key of the given enumeration entry.</summary> /// <param name="index">The index of the enumeration value (check <see cref="JsonSchema.Enumeration" /> and <see cref="JsonSchema.EnumerationNames" />).</param> /// <param name="name">The name/key.</param> /// <param name="value">The value.</param> /// <param name="schema">The schema.</param> /// <returns>The enumeration name.</returns> public string Generate(int index, string name, object value, JsonSchema schema) { if (string.IsNullOrEmpty(name)) { return("Empty"); } if (name.StartsWith("_-")) { name = "__" + name.Substring(2); } return(_invalidNameCharactersPattern.Replace(ConversionUtilities.ConvertToUpperCamelCase(name .Replace(":", "-").Replace(@"""", @""), true), "_")); }
/// <summary>Gets the default value code.</summary> /// <param name="schema">The schema.</param> /// <param name="allowsNull">Specifies whether the default value assignment also allows null.</param> /// <param name="targetType">The type of the target.</param> /// <param name="typeNameHint">The type name hint to use when generating the type and the type name is missing.</param> /// <returns>The code.</returns> public virtual string GetDefaultValue(JsonSchema4 schema, bool allowsNull, string targetType, string typeNameHint) { if (schema.Default == null) { return(null); } var actualSchema = schema is JsonProperty ? ((JsonProperty)schema).ActualPropertySchema : schema.ActualSchema; if (actualSchema.IsEnumeration) { var typeName = _typeResolver.Resolve(actualSchema, false, typeNameHint); var enumName = schema.Default is string? schema.Default.ToString() : actualSchema.EnumerationNames[actualSchema.Enumeration.ToList().IndexOf(schema.Default)]; return(typeName + "." + ConversionUtilities.ConvertToUpperCamelCase(enumName, true)); } if (schema.Type.HasFlag(JsonObjectType.String)) { return("\"" + schema.Default + "\""); } else if (schema.Type.HasFlag(JsonObjectType.Boolean)) { return(schema.Default.ToString().ToLower()); } else if (schema.Type.HasFlag(JsonObjectType.Integer) || schema.Type.HasFlag(JsonObjectType.Number) || schema.Type.HasFlag(JsonObjectType.Integer)) { return(schema.Default.ToString()); } return(null); }
public static string Uppercamelcase(Context context, string input, bool firstCharacterMustBeAlpha = true) { return(ConversionUtilities.ConvertToUpperCamelCase(input, firstCharacterMustBeAlpha)); }