public override void CreateProperty(StringBuilder sb, String name, IWriterPropertyInfo info) { sb.AppendLine( $@" public {info.ClrType}{QueryPropertiesWriter.CreateQueryNullable(info)} {name} {{ get {{ return query.{name}; }} set {{ query.{name} = value; }} }}" ); sb.AppendLine(); }
public static String Get(JsonSchema4 schema, String ns, bool generated) { bool hasBase = false; var baseWriter = new QueryBaseModelWriter("Query", QueryPropertiesWriter.CreateAttributeBuilder()) { InheritFrom = new String[] { "PagedCollectionQuery" } }; var baseClass = ModelTypeGenerator.Create(schema, schema.GetPluralName(), baseWriter, ns, ns + ".Database", allowPropertyCallback: p => { if (p.IsQueryable()) { hasBase = hasBase | p.IsAbstractOnQuery(); return(p.IsAbstractOnQuery()); } return(false); }); var baseClassName = "PagedCollectionQuery"; if (hasBase) { baseClassName = $"{BaseModelWriter.CreateBaseClassName(schema.Title, "Query")}"; baseClass = $@" {baseClass} "; } else { baseClass = ""; } String Model, model; NameGenerator.CreatePascalAndCamel(schema.Title, out Model, out model); String Models, models; NameGenerator.CreatePascalAndCamel(schema.GetPluralName(), out Models, out models); String queryProps = ModelTypeGenerator.Create(schema, schema.GetPluralName(), new QueryPropertiesWriter(), schema, ns, ns, allowPropertyCallback: p => { return(p.IsQueryable() && !p.IsAbstractOnQuery()); }); String queryCreate = ModelTypeGenerator.Create(schema, schema.GetPluralName(), new QueryCreateWriter(), schema, ns, ns, allowPropertyCallback: p => { return(p.IsQueryable()); }); return(Create(ns, Model, model, Models, models, queryProps, queryCreate, schema.GetKeyType().GetTypeAsNullable(), baseClass, baseClassName, NameGenerator.CreatePascal(schema.GetKeyName()), schema.GetExtraNamespaces(StrConstants.FileNewline), generated)); }