private ParameterEntityRef(string name, ModelRef modelRef, ModelRef finalPropertyModelRef, params string[] properties) { Name = name; ModelRef = modelRef; FinalPropertyModelRef = finalPropertyModelRef; PropertyPath = properties; }
public ModelRef(ModelRef modelRef) { Type = modelRef.Type; Model = modelRef.Model; ParameterEntity = modelRef.ParameterEntity; TypeName = modelRef.TypeName; IsNullable = modelRef.IsNullable; IsCollection = modelRef.IsCollection; }
public EntityProperty(string name, ModelRef type) { if (name == null) { throw new ArgumentNullException(nameof(name)); } Name = name.Trim(); Type = type; }
private TypeReference GetArgumentTypeRef(ModelRef modelRef) { var typeRef = (TypeReference)modelRef; if (modelRef.IsCollection) { typeRef = new TypeReference(typeof(IEnumerable <>)).MakeGeneric(typeRef); } return(typeRef); }
private TypeReference GetPropertyTypeRef(ModelRef modelRef) { var typeRef = (TypeReference)modelRef; if (modelRef.IsCollection) { typeRef = new TypeReference(typeof(IReadOnlyList <>)).MakeGeneric(typeRef); } return(typeRef); }
public void SetModel(ModelRef modelRef) { if (modelRef.Model is not Entity entity) { throw new InvalidOperationException("ModelRef must be an entity"); } var keyProperty = entity.AllProperties.Single(p => p.IsKey); FinalType = keyProperty.Type; Refs.Add(ParameterEntityRef.Create(entity.Name + GitLabClientGenerator.ToPropertyName(keyProperty.Name), keyProperty.Type)); Refs.Add(ParameterEntityRef.Create(entity.Name, modelRef, keyProperty.Name)); }
public static ParameterEntity CreateFromModel(ModelRef modelRef) { if (modelRef.Model is not Entity entity) { throw new InvalidOperationException("ModelRef must be an entity"); } var keyProperty = entity.AllProperties.Single(p => p.IsKey); var result = new ParameterEntity(entity.Name + keyProperty.Name + "Ref"); result.SetModel(modelRef); return(result); }
public static ParameterEntityRef Create(string name, ModelRef model, string propertyName) { if (model.Model is Entity entity) { var properties = entity.Properties.Where(e => e.Name == propertyName).ToList(); if (properties.Count == 0) { throw new ArgumentException($"Entity '{entity.Name}' has no property named '{propertyName}'", nameof(model)); } if (properties.Count > 1) { throw new ArgumentException($"Entity '{entity.Name}' has multiple properties named '{propertyName}'", nameof(model)); } return(new ParameterEntityRef(name, model, properties[0].Type, properties[0].Name)); } return(new ParameterEntityRef(name, model, model)); }
public static ParameterEntityRef Create(string name, ModelRef model) { if (model.Model is Entity entity) { var keys = entity.Properties.Where(e => e.IsKey).ToList(); if (keys.Count == 0) { throw new ArgumentException($"Entity '{entity.Name}' has no key property", nameof(model)); } if (keys.Count > 1) { throw new ArgumentException($"Entity '{entity.Name}' has multiple key properties", nameof(model)); } return(new ParameterEntityRef(name, model, keys[0].Type, keys[0].Name)); } return(new ParameterEntityRef(name, model, model)); }
public MethodParameter(string name, ModelRef type) { Name = name ?? throw new ArgumentNullException(nameof(name)); Type = type; }
public ParameterEntityRef(string name, ModelRef modelRef, params string[] properties) { Name = name; ModelRef = modelRef; Properties = properties; }
public Entity WithBaseType(ModelRef baseType) { BaseType = baseType; return(this); }
public ModelRef MakeNullable() { ModelRef result = Value; return(result.MakeNullable()); }
public ModelRef MakeCollectionNullable() { ModelRef result = Value; return(result.MakeCollectionNullable()); }
public Entity AddProperty(string name, ModelRef type, PropertyOptions options) { Properties.Add(new EntityProperty(name, type, options)); return(this); }
public Entity AddProperty(string name, ModelRef type) { Properties.Add(new EntityProperty(name, type)); return(this); }
public EntityProperty(string name, ModelRef type) : this(name, type, PropertyOptions.None) { }
public ParameterEntity(string name, ModelRef finalType) { Name = name; FinalType = finalType; }
public ModelRef MakeNullable() { ModelRef result = this; return(result.MakeNullable()); }