Ejemplo n.º 1
0
 private ParameterEntityRef(string name, ModelRef modelRef, ModelRef finalPropertyModelRef, params string[] properties)
 {
     Name     = name;
     ModelRef = modelRef;
     FinalPropertyModelRef = finalPropertyModelRef;
     PropertyPath          = properties;
 }
Ejemplo n.º 2
0
 public ModelRef(ModelRef modelRef)
 {
     Type            = modelRef.Type;
     Model           = modelRef.Model;
     ParameterEntity = modelRef.ParameterEntity;
     TypeName        = modelRef.TypeName;
     IsNullable      = modelRef.IsNullable;
     IsCollection    = modelRef.IsCollection;
 }
Ejemplo n.º 3
0
        public EntityProperty(string name, ModelRef type)
        {
            if (name == null)
            {
                throw new ArgumentNullException(nameof(name));
            }

            Name = name.Trim();
            Type = type;
        }
Ejemplo n.º 4
0
        private TypeReference GetArgumentTypeRef(ModelRef modelRef)
        {
            var typeRef = (TypeReference)modelRef;

            if (modelRef.IsCollection)
            {
                typeRef = new TypeReference(typeof(IEnumerable <>)).MakeGeneric(typeRef);
            }

            return(typeRef);
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 8
0
        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));
        }
Ejemplo n.º 9
0
        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));
        }
Ejemplo n.º 10
0
 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;
 }
Ejemplo n.º 12
0
 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());
        }
Ejemplo n.º 15
0
 public Entity AddProperty(string name, ModelRef type, PropertyOptions options)
 {
     Properties.Add(new EntityProperty(name, type, options));
     return(this);
 }
Ejemplo n.º 16
0
 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());
        }