public override void Generate(StringBuilder builder, string fullClassName, SimpleTermDefinition definition, CultureInfo culture) { if (definition.AllParameters.Any()) { JsGenerationHelper.GenerateTermDeclaration_Method(builder, definition, culture); } else { JsGenerationHelper.GenerateTermDeclaration_Property(builder, definition, definition.Key, culture); } }
public override void Generate(StringBuilder builder, string fullClassName, ComplexTermDefinition definition, CultureInfo culture) { builder.AppendLine($@"{definition.Key} ({string.Join(", ", definition.AllParameters.Select(p => p.Name))}) {{ switch ({definition.ComplexParameter.Name}) {{" ); foreach (var complexity in definition.Complexities) { var termValue = JsGenerationHelper.GetTerm(complexity.Value, culture).OriginalValue; // TODO: be cleverer, doesnt account for escaping termValue = termValue.Replace("{", "${"); var key = complexity.Key.Substring(complexity.Key.LastIndexOf('.') + 1); builder.AppendLine($@" case '{key.Replace("'", "\\'")}': return `{termValue.Replace("`", "\\`")}`;"); } builder.AppendLine($@" }} }}"); }