示例#1
0
        /// <summary>
        /// Classe de MapeamentoEntidade
        /// </summary>
        /// <param name="NomeTabela"></param>
        /// <param name="NameSpace"></param>
        /// <returns></returns>
        public string CriandoClasseMapeamentoEntidade(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.DirInfraMapeamentoEntidadeFisico(NameSpace);
            string _NameSpacesLogico = dir.DirInfraMapeamentoEntidadeLogico(NameSpace);

            NaoExisteClasse = _NameSpacesFisico + NomeTabelaSemSchema + "Map.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 SEACore.Infra.Entidades;" + Environment.NewLine;
            Using += "using System.ComponentModel.DataAnnotations.Schema;" + Environment.NewLine;
            Using += "using System.Data.Entity.ModelConfiguration;" + Environment.NewLine;

            //NameSpace do Projeto
            NameSpaceProjeto += "namespace " + _NameSpacesLogico;
            NameSpaceProjeto += Environment.NewLine;
            NameSpaceProjeto += "{";
            NameSpaceProjeto += Environment.NewLine;

            //Nome da classe
            NomeClasse  = "\tpublic class " + NomeTabelaSemSchema + "Map " + ": EntityTypeConfiguration<" + NomeTabelaSemSchema + ">" + Environment.NewLine;
            NomeClasse += "\t{";
            NomeClasse += Environment.NewLine;

            //Método Construtor da Classe
            NomeClasse += "\t\tpublic " + NomeTabelaSemSchema + "Map()" + Environment.NewLine;
            NomeClasse += "\t\t{" + Environment.NewLine;

            var objTabela = ObterPropriedadeTabelaOracle(NomeTabela);

            Atributo += "\t\t\tthis.ToTable(\"" + NomeTabela.ToUpper() + "\", \"" + NameSchema + "\");" + Environment.NewLine;

            foreach (var item in objTabela)
            {
                var _Coluna      = item.Coluna.ToLower();
                var _ColunaUpper = _Coluna.Length > 1 ? char.ToUpper(_Coluna[0]) + _Coluna.Substring(1) : _Coluna.ToUpper();
                Atributo += "\t\t\tthis.Property(t => t." + _ColunaUpper + ").HasColumnName(\"" + item.Coluna.ToUpper() + "\"); " + Environment.NewLine;
            }

            NomeClasse       += Atributo;// + Environment.NewLine;
            NomeClasse       += "\t\t}" + Environment.NewLine;
            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 + "Map.cs criada com sucesso. Caminho: " + _NameSpacesFisico + NomeTabelaSemSchema + "Map.cs");
        }