예제 #1
0
        /// <summary>
        /// Classe Entidade
        /// </summary>
        /// <param name="NomeTabela"></param>
        /// <param name="NameSpace"></param>
        /// <returns></returns>
        public string CriandoClasseEntidade(string NomeTabela, string NameSpace, string NameSchema)
        {
            Using               = string.Empty;
            NameSpaceProjeto    = string.Empty;
            NomeClasse          = string.Empty;
            Atributo            = string.Empty;
            NomeTabelaSemSchema = string.Empty;

            if (NameSchema.Equals(NomeTabela.Substring(0, 3)))
            {
                var _NomeTabela   = NomeTabela.Remove(0, 3);
                var _PrimeiroNome = _NomeTabela.Substring(0, 1);
                var _RestoNome    = NomeTabela.Remove(0, 4);
                NomeTabelaSemSchema = _PrimeiroNome + _RestoNome.ToLower();
            }
            else
            {
                //var _NomeTabela = NomeTabela.Remove(0, 3);
                var _PrimeiroNome = NomeTabela.Substring(0, 1);
                var _RestoNome    = NomeTabela.Remove(0, 1);
                NomeTabelaSemSchema = _PrimeiroNome + _RestoNome.ToLower();
            }


            dir = new Diretorio();
            string _NameSpacesFisico = path + dir.DirInfraEntidadeFisico(NameSpace);
            string _NameSpacesLogico = dir.DirInfraEntidadeLogico(NameSpace);

            NaoExisteClasse = _NameSpacesFisico + NomeTabelaSemSchema + ".cs";

            //// Determine whether the directory exists.
            //if (Directory.Exists(@path))
            //{
            //    ExisteArquivo = System.IO.File.Exists(NaoExisteClasse);
            //    if (ExisteArquivo)
            //        return "Essa classe já existe.";
            //}

            Using += "using System;" + Environment.NewLine;
            Using += "using System.ComponentModel.DataAnnotations;" + Environment.NewLine;

            //NameSpace
            NameSpaceProjeto += "namespace " + _NameSpacesLogico;

            NameSpaceProjeto += Environment.NewLine;
            NameSpaceProjeto += "{";
            NameSpaceProjeto += Environment.NewLine;

            //Nome da Classe
            NomeClasse  = "\tpublic class " + NomeTabelaSemSchema + Environment.NewLine;
            NomeClasse += "\t{";
            NomeClasse += Environment.NewLine;

            //Construtor
            NomeClasse += "\t\tpublic " + NomeTabelaSemSchema + "()" + Environment.NewLine;
            NomeClasse += "\t\t{" + Environment.NewLine;
            NomeClasse += "\t\t\tValidacao = new Validacao.Validacao()" + Environment.NewLine;
            NomeClasse += "\t\t\t{" + Environment.NewLine;
            NomeClasse += "\t\t\t\tIsValidacao = true" + Environment.NewLine;
            NomeClasse += "\t\t\t};" + Environment.NewLine;
            NomeClasse += "\t\t}" + Environment.NewLine;
            NomeClasse += Environment.NewLine;

            var objTabela = ObterPropriedadeTabelaOracle(NomeTabela);

            foreach (var item in objTabela)
            {
                Anotacoes += "\t\t[Display(Name = \"" + item.Coluna + "\")]" + Environment.NewLine;

                if (item.NaoNulo.Equals("N"))
                {
                    var objChave     = ObterPrimaryKeyTabelaOracle(item.Coluna.Trim(), item.Nome.Trim());
                    var _Coluna      = item.Coluna.ToLower();
                    var _ColunaUpper = _Coluna.Length > 1 ? char.ToUpper(_Coluna[0]) + _Coluna.Substring(1) : _Coluna.ToUpper();

                    if (objChave != null)
                    {
                        if (objChave.ChavePrimaria.Equals("P"))
                        {
                            Anotacoes  = string.Empty;
                            Anotacoes += "\t\t[Key]" + Environment.NewLine;
                            Anotacoes += "\t\t[Display(Name = \"" + _ColunaUpper + "\")]" + Environment.NewLine;
                        }
                    }

                    if (TipoDados.RetornaTipoDado(item.TipoDado).Equals("string"))
                    {
                        Anotacoes += "\t\t[StringLength(" + item.Tamanho + ")]" + Environment.NewLine;
                    }

                    if (item.Escala != 0)
                    {
                        if (TipoDados.RetornaTipoDado(item.TipoDado).Trim().Equals("int"))
                        {
                            Anotacoes += "\t\t[DataType(DataType.Currency)]" + Environment.NewLine;
                            Anotacoes += "\t\t[Required(ErrorMessage = \"Campo " + item.Coluna + " não pode ser branco\")]" + Environment.NewLine;
                            Atributo   = DePropriedade + " decimal " + _ColunaUpper + " " + DeModificador + Environment.NewLine;
                        }
                    }
                    else
                    {
                        Anotacoes += "\t\t[Required(ErrorMessage = \"Campo " + _ColunaUpper + " não pode ser branco\")]" + Environment.NewLine;
                        Atributo   = DePropriedade + " " + TipoDados.RetornaTipoDado(item.TipoDado) + " " + _ColunaUpper + " " + DeModificador + Environment.NewLine;
                    }
                }
                else
                {
                    var _Coluna      = item.Coluna.ToLower();
                    var _ColunaUpper = _Coluna.Length > 1 ? char.ToUpper(_Coluna[0]) + _Coluna.Substring(1) : _Coluna.ToUpper();

                    if (TipoDados.RetornaTipoDado(item.TipoDado).Trim().Equals("int"))
                    {
                        Atributo = DePropriedade + " Nullable<" + TipoDados.RetornaTipoDado(item.TipoDado) + "> " + _ColunaUpper + " " + DeModificador + Environment.NewLine;
                    }

                    if (TipoDados.RetornaTipoDado(item.TipoDado).Trim().Equals("string"))
                    {
                        Anotacoes += "\t\t[StringLength(" + item.Tamanho + ")]" + Environment.NewLine;
                        Atributo   = DePropriedade + " " + TipoDados.RetornaTipoDado(item.TipoDado) + " " + _ColunaUpper + " " + DeModificador + Environment.NewLine;
                    }

                    if (TipoDados.RetornaTipoDado(item.TipoDado).Trim().Equals("DateTime"))
                    {
                        Anotacoes += "\t\t[DisplayFormat(DataFormatString = \"{0:dd/MM/yyyy}" + "\")]" + Environment.NewLine;
                        Atributo   = DePropriedade + " Nullable<" + TipoDados.RetornaTipoDado(item.TipoDado) + "> " + _ColunaUpper + " " + DeModificador + Environment.NewLine;
                    }

                    if (TipoDados.RetornaTipoDado(item.TipoDado).Trim().Equals("byte[]"))
                    {
                        Atributo = DePropriedade + " " + TipoDados.RetornaTipoDado(item.TipoDado) + " " + _ColunaUpper + " " + DeModificador + Environment.NewLine;
                    }

                    if (item.Escala != 0)
                    {
                        if (TipoDados.RetornaTipoDado(item.TipoDado).Trim().Equals("int"))
                        {
                            Anotacoes += "\t\t[DataType(DataType.Currency)]" + Environment.NewLine;
                            Atributo   = DePropriedade + " Nullable<decimal> " + _ColunaUpper + " " + DeModificador + Environment.NewLine;
                        }
                    }
                }

                Anotacoes += Atributo + Environment.NewLine;
                Atributo   = string.Empty;
            }

            Anotacoes += "\t\t[ScaffoldColumn(false)]" + Environment.NewLine;
            Anotacoes += "\t\tpublic Validacao.Validacao Validacao;" + Environment.NewLine;

            NomeClasse += Anotacoes;

            NomeClasse       += "\t}";
            NameSpaceProjeto += NomeClasse;
            NameSpaceProjeto += Environment.NewLine;
            NameSpaceProjeto += "}";
            Using            += NameSpaceProjeto;

            using (FileStream fs = new FileStream(NaoExisteClasse, FileMode.Create))
            {
                using (StreamWriter w = new StreamWriter(fs, Encoding.UTF8))
                {
                    w.WriteLine(Using);
                }
            }
            return("Classe " + NomeTabelaSemSchema + ".cs criada com sucesso. Caminho: " + _NameSpacesFisico + NomeTabelaSemSchema + ".cs");
        }