예제 #1
0
        public string exibirMensagemErro(Exception ex, int condicao)
        {
            string mensagem = "";
            var    props    = this.GetType().GetProperties();

            foreach (var item in props)
            {
                if (item.PropertyType.IsSubclassOf(typeof(modelocrud)))
                {
                    foreach (var item2 in item.PropertyType.GetProperties())
                    {
                        if (item2.Name == ex.Message && condicao == 1)
                        {
                            mensagem = "Erro no campo " + formatarTexto(item2.Name) + ". Corrija o erro para fazer o cadastro.";
                        }
                        else if (item2.Name == ex.Message && condicao == 2)
                        {
                            OpcoesBase opc = (OpcoesBase)item2.GetCustomAttribute(typeof(OpcoesBase));
                            if (opc != null && opc.Obrigatorio)
                            {
                                mensagem += " O Campo " + formatarTexto(item2.Name) + " é Obrigatório.\n";
                            }
                            if (this.ErroCadastro != "")
                            {
                                mensagem += "Observação no campo " + formatarTexto(item2.Name) + ": " + this.ErroCadastro;
                            }
                        }
                    }
                }
                else
                if (item.Name == ex.Message && condicao == 1)
                {
                    mensagem = "Erro no campo " + item.Name + ". Corrija o erro para fazer o cadastro.";
                }
                else if (item.Name == ex.Message && condicao == 2)
                {
                    OpcoesBase opc = (OpcoesBase)item.GetCustomAttribute(typeof(OpcoesBase));
                    if (opc != null && opc.Obrigatorio)
                    {
                        mensagem += " O Campo " + formatarTexto(item.Name) + " é Obrigatório.\n";
                    }
                    if (this.ErroCadastro != "")
                    {
                        mensagem += "Observação no campo " + formatarTexto(item.Name) + ": " + this.ErroCadastro;
                    }
                }
            }
            return(mensagem);
        }
예제 #2
0
        public void CreateTable(Type tipo)
        {
            string comando = $"CREATE TABLE {tipo.Name} (";

            foreach (var item in tipo.GetProperties())
            {
                if (item.Name == "Id" && tipo.BaseType == typeof(modelocrud))
                {
                    comando += $" {item.Name} INT IDENTITY (1, 1) NOT NULL,  ";
                }
                if (item.Name == "Id" && tipo.BaseType == typeof(modelocrud))
                {
                    comando += $" {item.Name} INT NOT NULL,  ";
                }
                else if (item.PropertyType == typeof(string))
                {
                    comando += $" {item.Name} NVARCHAR (MAX) NULL,  ";
                }
                else if (item.PropertyType == typeof(int?))
                {
                    comando += $" {item.Name} INT NULL, ";
                }
                else if (item.PropertyType == typeof(int))
                {
                    comando += $" {item.Name} INT NOT NULL, ";
                }
                else if (item.PropertyType == typeof(long))
                {
                    comando += $" {item.Name} BIGINT NOT NULL, ";
                }
                else if (item.PropertyType == typeof(long?))
                {
                    comando += $" {item.Name} BIGINT NULL, ";
                }
                else if (item.PropertyType == typeof(double))
                {
                    comando += $" {item.Name} FLOAT (53) NOT NULL, ";
                }
                else if (item.PropertyType == typeof(double?))
                {
                    comando += $" {item.Name} FLOAT (53) NULL, ";
                }
                else if (item.PropertyType == typeof(DateTime))
                {
                    comando += $" {item.Name} DATETIME NOT NULL, ";
                }
                else if (item.PropertyType == typeof(DateTime?))
                {
                    comando += $" {item.Name} DATETIME NULL, ";
                }
                else if (item.PropertyType == typeof(TimeSpan))
                {
                    comando += $" {item.Name} TIME (7) NOT NULL, ";
                }
                else if (item.PropertyType == typeof(TimeSpan?))
                {
                    comando += $" {item.Name} TIME (7) NULL, ";
                }
                else if (item.PropertyType == typeof(bool))
                {
                    comando += $" {item.Name} BIT NOT NULL, ";
                }

                ForeignKeyAttribute opcForeignKey = (ForeignKeyAttribute)item.GetCustomAttribute(typeof(ForeignKeyAttribute));
                if (opcForeignKey != null)
                {
                    PropertyInfo prop = null;
                    foreach (var i in tipo.GetProperties())
                    {
                        if (i.Name.Contains(item.Name))
                        {
                            prop = i;
                        }
                    }
                    comando += $"CONSTRAINT [FK_dbo.{tipo.Name}_dbo.{item.Name}_{prop.Name}] FOREIGN KEY ([{prop.Name}]) " +
                               $" REFERENCES [dbo].[{item.Name}] ([Id]) ";
                }

                if (tipo.BaseType == typeof(modelocrud))
                {
                    comando += $" CONSTRAINT [FK_dbo.{tipo.Name}_dbo.{tipo.BaseType.Name}_Id]" +
                               $" FOREIGN KEY ([Id]) REFERENCES [dbo].[{tipo.BaseType.Name}] ([Id]), ";
                }

                comando += $"CONSTRAINT [PK_dbo.{tipo.Name}] PRIMARY KEY CLUSTERED ([Id] ASC)";

                comando += " ); ";

                OpcoesBase opc = (OpcoesBase)item.GetCustomAttribute(typeof(OpcoesBase));
                if (opc != null && opc.Index)
                {
                    comando += $"GO CREATE UNIQUE NONCLUSTERED INDEX [{item.Name}] ON {tipo.Name} ([{item.Name}] ASC);";
                }
            }
        }