Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
 private void ApplyGenericTemplate(MemberTransferObject field, string alias, TypeTransferObject type)
 {
     if (field.Type.Name == alias)
     {
         field.Type = type;
     }
     else
     {
         this.ApplyGenericTemplate(field.Type, alias, type);
     }
 }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }