protected virtual PropertyTemplate AddProperty(ModelTransferObject model, MemberTransferObject member, ClassTemplate classTemplate) { bool canRead = true; bool canWrite = true; if (member is PropertyTransferObject property) { canRead = property.CanRead; canWrite = property.CanWrite; } IOptions propertyOptions = this.Options.Get(member); if (model.Language != null && propertyOptions.Language != null) { this.MapType(model.Language, propertyOptions.Language, member.Type); } PropertyTemplate propertyTemplate = classTemplate.AddProperty(member.Name, member.Type.ToTemplate()).FormatName(propertyOptions); propertyTemplate.HasGetter = canRead; propertyTemplate.HasSetter = canWrite; if (propertyOptions.WithOptionalProperties) { propertyTemplate.Optional(); } if (member.Type != model) { this.AddUsing(member.Type, classTemplate, propertyOptions); } return(propertyTemplate); }
protected override PropertyTemplate AddProperty(ModelTransferObject model, MemberTransferObject member, ClassTemplate classTemplate) { PropertyTemplate propertyTemplate = base.AddProperty(model, member, classTemplate); if (!propertyTemplate.Name.Equals(member.Name, StringComparison.CurrentCultureIgnoreCase)) { propertyTemplate.WithAttribute("JsonProperty", Code.String(member.Name)); classTemplate.AddUsing("Newtonsoft.Json"); } return(propertyTemplate); }
private void ApplyGenericTemplate(MemberTransferObject field, string alias, TypeTransferObject type) { if (field.Type.Name == alias) { field.Type = type; } else { this.ApplyGenericTemplate(field.Type, alias, type); } }
protected override PropertyTemplate AddProperty(ModelTransferObject model, MemberTransferObject member, ClassTemplate classTemplate) { IOptions propertyOptions = this.Options.Get(member); PropertyTemplate propertyTemplate = base.AddProperty(model, member, classTemplate); propertyTemplate.Strict = propertyOptions.Strict; if (propertyTemplate.DefaultValue == null && propertyOptions.Strict && !propertyTemplate.Type.IsNullable) { propertyTemplate.DefaultValue = member.Type.Default; } return(propertyTemplate); }
protected override FieldTemplate AddField(ModelTransferObject model, MemberTransferObject member, ClassTemplate classTemplate) { IOptions fieldOptions = this.Options.Get(member); FieldTemplate fieldTemplate = base.AddField(model, member, classTemplate); fieldTemplate.Strict = fieldOptions.Strict; if (fieldTemplate.DefaultValue == null && fieldOptions.Strict && !fieldTemplate.Type.IsNullable) { fieldTemplate.DefaultValue = member.Type.Default; } return(fieldTemplate); }
protected virtual FieldTemplate AddField(ModelTransferObject model, MemberTransferObject member, ClassTemplate classTemplate) { IOptions fieldOptions = this.Options.Get(member); if (model.Language != null && fieldOptions.Language != null) { this.MapType(model.Language, fieldOptions.Language, member.Type); } this.AddUsing(member.Type, classTemplate, fieldOptions); FieldTemplate fieldTemplate = classTemplate.AddField(member.Name, member.Type.ToTemplate()).Public().FormatName(fieldOptions) .WithComment(member.Comment); if (fieldOptions.WithOptionalProperties) { fieldTemplate.Optional(); } return(fieldTemplate); }