public ModelTemplateModel(CompositeType source) { this.LoadFrom(source); PropertyTemplateModels = new List<PropertyTemplateModel>(); source.Properties.ForEach(p => PropertyTemplateModels.Add(new PropertyTemplateModel(p))); if (source.BaseModelType != null) { this._baseModel = new ModelTemplateModel(source.BaseModelType); } this._constructorModel = new ConstructorModel(this); }
public ModelTemplateModel(CompositeType source) { this.LoadFrom(source); PropertyTemplateModels = new List <PropertyTemplateModel>(); source.Properties.ForEach(p => PropertyTemplateModels.Add(new PropertyTemplateModel(p))); if (source.BaseModelType != null) { this._baseModel = new ModelTemplateModel(source.BaseModelType); } this._constructorModel = new ConstructorModel(this); }
public ConstructorModel(ModelTemplateModel model) { // TODO: this could just be the "required" parameters instead of required and all the optional ones // with defaults if we wanted a bit cleaner constructors IEnumerable <InheritedPropertyInfo> allProperties = model.AllPropertyTemplateModels.OrderBy(p => !p.Property.IsRequired).ThenBy(p => p.Depth); Parameters = allProperties.Select(p => new ConstructorParameterModel(p.Property)); Signature = CreateSignature(Parameters); SignatureDocumentation = CreateSignatureDocumentation(Parameters); BaseCall = CreateBaseCall(model); }
private static string CreateBaseCall(ModelTemplateModel model) { if (model._baseModel != null) { IEnumerable <ConstructorParameterModel> parameters = model._baseModel._constructorModel.Parameters; if (parameters.Any()) { return(string.Format( CultureInfo.InvariantCulture, ": base({0})", string.Join(", ", parameters.Select(p => p.Name)))); } } return(string.Empty); }
private static string CreateBaseCall(ModelTemplateModel model) { if (model._baseModel != null) { IEnumerable<ConstructorParameterModel> parameters = model._baseModel._constructorModel.Parameters; if (parameters.Any()) { return string.Format( CultureInfo.InvariantCulture, ": base({0})", string.Join(", ", parameters.Select(p => p.Name))); } } return string.Empty; }
public ConstructorModel(ModelTemplateModel model) { // TODO: this could just be the "required" parameters instead of required and all the optional ones // with defaults if we wanted a bit cleaner constructors IEnumerable<InheritedPropertyInfo> allProperties = model.AllPropertyTemplateModels.OrderBy(p => !p.Property.IsRequired).ThenBy(p => p.Depth); Parameters = allProperties.Select(p => new ConstructorParameterModel(p.Property)); Signature = CreateSignature(Parameters); SignatureDocumentation = CreateSignatureDocumentation(Parameters); BaseCall = CreateBaseCall(model); }