/// <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"); }