Ejemplo n.º 1
0
        public bool CriarOuAlteraFormularioTable()
        {
            var context = new MainContext();

            var json = @"{
    'name': 'decisionpadrao',
    'title': 'DecisionPadrao',
    'internal': false,
    'fields': [
        {
            'name': 'nf',
            'type': 'Integer',
            'label': 'NF',
            'size': '100%',
            'order': 0,
            'required': false,
            'validationRegex': '',
            'mask': '0',
            'appWorkflow': true,
            'isBreakLine': false
        },
        {
            'name': 'valor_solicitado_r',
            'type': 'Double',
            'label': 'Valor Solicitado R$',
            'size': '100%',
            'order': 1,
            'required': false,
            'validationRegex': '',
            'mask': '2',
            'appWorkflow': true,
            'isBreakLine': false
        },
        {
            'name': 'valor_aprovado_r',
            'type': 'Double',
            'label': 'Valor Aprovado (R$)',
            'size': '100%',
            'order': 2,
            'required': false,
            'validationRegex': '',
            'mask': '2',
            'appWorkflow': true,
            'isBreakLine': false
        },
        {
            'name': 'observacao',
            'type': 'String',
            'label': 'Observacao',
            'size': '100%',
            'order': 3,
            'required': false,
            'validationRegex': '',
            'mask': '',
            'appWorkflow': true,
            'isBreakLine': false
        },
        {
            'name': 'campo01',
            'type': 'String',
            'label': 'CAMPO01',
            'size': '50%',
            'order': 4,
            'required': false,
            'validationRegex': '',
            'mask': '',
            'appWorkflow': true,
            'isBreakLine': false
        },
        {
            'name': 'campo02',
            'type': 'String',
            'label': 'CAMPO02',
            'size': '50%',
            'order': 5,
            'required': false,
            'validationRegex': '',
            'mask': '',
            'appWorkflow': true,
            'isBreakLine': false
        },
        {
            'name': 'campo03',
            'type': 'String',
            'label': 'CAMPO03',
            'size': '50%',
            'order': 6,
            'required': false,
            'validationRegex': '',
            'mask': '',
            'appWorkflow': true,
            'isBreakLine': false
        },
        {
            'name': 'campo04',
            'type': 'String',
            'label': 'CAMPO04',
            'size': '100%',
            'order': 7,
            'required': false,
            'validationRegex': '',
            'mask': '',
            'appWorkflow': true,
            'isBreakLine': false
        },
        {
            'name': 'campo05',
            'type': 'String',
            'label': 'CAMPO05',
            'size': '50%',
            'order': 8,
            'required': false,
            'validationRegex': '',
            'mask': '',
            'appWorkflow': true,
            'isBreakLine': false
        },
        {
            'name': 'campo06',
            'type': 'String',
            'label': 'CAMPO06',
            'size': '50%',
            'order': 9,
            'required': false,
            'validationRegex': '',
            'mask': '',
            'appWorkflow': true,
            'isBreakLine': false
        },
        {
            'name': 'campo07',
            'type': 'String',
            'label': 'CAMPO07',
            'size': '50%',
            'order': 10,
            'required': false,
            'validationRegex': '',
            'mask': '',
            'appWorkflow': true,
            'isBreakLine': false
        },
        {
            'name': 'campo08',
            'type': 'String',
            'label': 'CAMPO08',
            'size': '50%',
            'order': 11,
            'required': false,
            'validationRegex': '',
            'mask': '',
            'appWorkflow': true,
            'isBreakLine': false
        },
        {
            'name': 'campo09',
            'type': 'String',
            'label': 'CAMPO09',
            'size': '50%',
            'order': 12,
            'required': false,
            'validationRegex': '',
            'mask': '',
            'appWorkflow': true,
            'isBreakLine': false
        },
        {
            'name': 'campo10',
            'type': 'String',
            'label': 'CAMPO10',
            'size': '50%',
            'order': 13,
            'required': false,
            'validationRegex': '',
            'mask': '',
            'appWorkflow': true,
            'isBreakLine': false
        },
        {
            'name': 'campo11',
            'type': 'String',
            'label': 'CAMPO11',
            'size': '50%',
            'order': 14,
            'required': false,
            'validationRegex': '',
            'mask': '',
            'appWorkflow': true,
            'isBreakLine': false
        },
        {
            'name': 'campo12',
            'type': 'String',
            'label': 'CAMPO12',
            'size': '50%',
            'order': 15,
            'required': false,
            'validationRegex': '',
            'mask': '',
            'appWorkflow': true,
            'isBreakLine': false
        },
        {
            'name': 'campo13',
            'type': 'String',
            'label': 'CAMPO13',
            'size': '50%',
            'order': 16,
            'required': false,
            'validationRegex': '',
            'mask': '',
            'appWorkflow': true,
            'isBreakLine': false
        },
        {
            'name': 'campo14',
            'type': 'String',
            'label': 'CAMPO14',
            'size': '50%',
            'order': 17,
            'required': false,
            'validationRegex': '',
            'mask': '',
            'appWorkflow': true,
            'isBreakLine': false
        },
        {
            'name': 'campo15',
            'type': 'String',
            'label': 'CAMPO15',
            'size': '50%',
            'order': 18,
            'required': false,
            'validationRegex': '',
            'mask': '',
            'appWorkflow': true,
            'isBreakLine': false
        },
{
            'name': 'campo16',
            'type': 'String',
            'label': 'CAMPO15',
            'size': '50%',
            'order': 18,
            'required': false,
            'validationRegex': '',
            'mask': '',
            'appWorkflow': true,
            'isBreakLine': false
        },
{
            'name': 'campo17',
            'type': 'String',
            'label': 'CAMPO15',
            'size': '50%',
            'order': 18,
            'required': false,
            'validationRegex': '',
            'mask': '',
            'appWorkflow': true,
            'isBreakLine': false
        },
{
            'name': 'campo18',
            'type': 'String',
            'label': 'CAMPO15',
            'size': '50%',
            'order': 18,
            'required': false,
            'validationRegex': '',
            'mask': '',
            'appWorkflow': true,
            'isBreakLine': false
        }
    ]
}";


            var tableJson = JsonConvert.DeserializeObject <Formulario>(json);


            var schemaProvider = context.DataProvider.GetSchemaProvider();

            var schema = schemaProvider.GetSchema(context, new GetSchemaOptions());

            var tableScheme = schema.Tables.Where(c => c.TableName == tableJson.Name).FirstOrDefault();

            var comandoRealizadoComSucesso = true;

            if (tableScheme == null)
            {
                TableClass tableClass  = new TableClass(tableJson.Name, tableJson.Fields);
                var        createTable = tableClass.GenerateScript();
                comandoRealizadoComSucesso = context.Execute(createTable) > 0;
            }
            else
            {
                List <Campos> camposNovos = new List <Campos>();
                foreach (var field in tableJson.Fields)
                {
                    if (!tableScheme.Columns.Where(c => c.ColumnName == field.Name).Any())
                    {
                        camposNovos.Add(field);
                    }
                }

                if (camposNovos.Count > 0)
                {
                    var AltersTable = new AlterTable(tableJson.Name, camposNovos).GenerateScript();
                    comandoRealizadoComSucesso = context.Execute(AltersTable) > 0;
                }
            }

            return(comandoRealizadoComSucesso);
        }