Exemple #1
0
        public bool AddFieldToRecordType(string entityName, string fieldName, [FromBody] RecordFieldMetadata field)
        {
            DataService service = new DataService()
            {
                data = new Postgres(connectionString),
            };

            IFieldType createdField = DeserializeFieldMetadata(field);

            createdField.Name = fieldName;

            AddFieldToRecordTypeCommand command = new AddFieldToRecordTypeCommand()
            {
                RecordType = entityName,
                Field      = createdField,
            };

            service.Execute(command);
            return(true);
        }
Exemple #2
0
        private IFieldType DeserializeFieldMetadata(RecordFieldMetadata field)
        {
            Dictionary <string, Type> fieldList = new Dictionary <string, Type>()
            {
                ["BinaryField"]   = typeof(BinaryField),
                ["BooleanField"]  = typeof(BooleanField),
                ["DateField"]     = typeof(DateField),
                ["DateTimeField"] = typeof(DateTimeField),
                ["LookupField"]   = typeof(LookupField),
                ["GuidField"]     = typeof(GuidField),
                ["NumberField"]   = typeof(NumberField),
                ["PrimaryField"]  = typeof(PrimaryField),
                ["TextField"]     = typeof(TextField),
            };
            var fieldType    = fieldList[field.Type];
            var createdField = (IFieldType)Activator.CreateInstance(fieldType);

            foreach (var f in field.Metadata)
            {
                fieldType.GetField(f.Key).SetValue(createdField, ConvertFromString(fieldType.GetField(f.Key).FieldType, f.Value));
            }
            createdField.Nullable = field.Nullable;
            return(createdField);
        }