Esempio n. 1
0
        public override void Execute(ProjectState project, List <ActionParameter> parameters)
        {
            var schemaName        = GetStringParameterValue(parameters, SchemaNameParameter).ToWordPascalCase();
            var name              = GetStringParameterValue(parameters, NameParameter).ToWordPascalCase();
            var type              = GetStringParameterValue(parameters, TypeParameter);
            var length            = GetIntParameterValue(parameters, LengthParameter);
            var isPrimaryKey      = GetBoolParameterValue(parameters, IsPrimaryKeyParameter);
            var isNullable        = GetBoolParameterValue(parameters, IsNullableParameter);
            var isUnique          = GetBoolParameterValue(parameters, IsUniqueParameter);
            var isAutoincremental = GetBoolParameterValue(parameters, IsAutoIncrementalParameter);

            var schema = project.GetSchema(schemaName);

            if (schema == null)
            {
                throw new Exception($"Can't find any schema named '{schemaName}'");
            }

            var typedType = SchemaProperty.StringToType(type);
            var property  = new SchemaProperty(name, typedType, true)
            {
                IsAutoIncremental = isAutoincremental,
                IsNullable        = isNullable,
                IsPrimaryKey      = isPrimaryKey,
                IsUnique          = isUnique,
                Length            = length
            };

            schema.AddProperty(property);
            OverrideOutputParameter(SchemaNameParameter.Name, schemaName);
            OverrideOutputParameter(NameParameter.Name, name);
        }