public static void Models(Parametros param) { DadosDaClasse.CriarConstrutor(param); DadosDaClasse.CriarAtributos(param, "private"); string template = LerTemplate.Ler(param.EnderecoDaPastaPadraoDoProgramaGerador, pathModelsTemplate, @"Model.txt"); template = template.Replace("{{Sistema}}", param.NomeDoSistema); template = template.Replace("{{Classe}}", param.NomeDaClasse); template = template.Replace("{{Atributos}}", param.Atributos); template = template.Replace("{{ConstrutorDaClasse}}", param.Construtor); GravarResultado.Gravar(false, template, param.NomeDaClasse + ".cs", param.EnderecoDoProjetoDomain, @"Models\"); }
static void Main(string[] args) { // definir os dados da pasta padrão da aplicação onde serão lidos os templates e o nome da classe; var pastaPadrao = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)); var pastas = pastaPadrao.Split(@"\"); if (pastas.Length > 3) { var excl = pastas[pastas.Length - 3] + @"\" + pastas[pastas.Length - 2] + @"\" + pastas[pastas.Length - 1]; pastaPadrao = pastaPadrao.Replace(excl, ""); } Assembly assembly = Assembly.GetExecutingAssembly(); Type[] tp = assembly.GetTypes(); Type classeDefinida = null; foreach (var item in tp) { if (item.Namespace.ToUpper() == "CLASSEDEFINIDA") { classeDefinida = item; break; } } if (classeDefinida == null) { Console.WriteLine("Não foi encontrada a Classe Definida - Verifique"); return; } if (classeDefinida.GetProperties().Length < 1) { Console.WriteLine("Tem classe definida, mas não tem propriedades - Verifique"); return; } string nomeDaClasse = classeDefinida.Name; //---------------------------------------------------------------------------------------------------- // DADOS A SEREM INFORMADOS //---------------------------------------------------------------------------------------------------- string nomeDoSistema = "ASPSecurity"; var prefixo1 = "Incluir"; var prefixo2 = "Alterar"; var prefixo3 = "Excluir"; var sufixo1 = "Incluido"; var sufixo2 = "Alterado"; var sufixo3 = "Excluido"; // este nome pode ser (masculino ou feminino. EX: ObterTodo, ObterTodos, ObterToda, ObterTodas); var nomeDoMetodoObterTodos = "ObterTodo"; Parametros parm = new Parametros(); parm.NomeDaClasse = nomeDaClasse; parm.NomeDoSistema = nomeDoSistema; parm.EnderecoDaPastaDoSistemaRaiz = $@"C:\SistemaGerado\{nomeDoSistema}\"; parm.EnderecoDaPastaDoSistemaSrc = $@"C:\SistemaGerado\{nomeDoSistema}\src\"; parm.EnderecoDaPastaPadraoDoProgramaGerador = pastaPadrao; DadosDoSistema.CriarProjetosPadrao(parm); parm.ListaDeAtributos = new List <Atributos>(); foreach (var x in classeDefinida.GetProperties()) { string nome = x.Name; if (nome.Length > 1) { nome = char.ToUpper(nome[0]) + nome.Substring(1); } var atributo = x.PropertyType.Name; if (atributo.ToUpper().Contains("NULLABLE")) { atributo = AjustarNullable(x.PropertyType.FullName); } string tipo = Util.AtualizarTipo(atributo); parm.ListaDeAtributos.Add(new Atributos { Nome = nome, Tipo = tipo }); } DadosDaClasse.CriarConstrutor(parm); // GERAR CLASSES DO DOMINIO; GerarDomainCore.DomainCore(parm); GerarDomain.Models(parm); GerarDomain.Interfaces(parm, nomeDoMetodoObterTodos); GerarDomain.Events(parm, sufixo1); GerarDomain.Events(parm, sufixo2); GerarDomain.Events(parm, sufixo3); GerarDomain.EventHandler(parm, sufixo1, sufixo2, sufixo3); GerarDomain.Commands(parm, prefixo1); GerarDomain.Commands(parm, prefixo2); GerarDomain.Commands(parm, prefixo3); GerarDomain.CommandHandler(parm, prefixo1, prefixo2, prefixo3, sufixo1, sufixo2, sufixo3); GerarDomain.Validation(parm, prefixo1, prefixo2, prefixo3); GerarDomain.GerarProjeto(parm); // GERAR CLASSES DO INFRA.DATA; GerarInfraData.Repositories(parm, nomeDoMetodoObterTodos); GerarInfraData.UoW(parm); GerarInfraData.Mappings(parm); GerarInfraData.EventSourcing(parm); GerarInfraData.Context(parm); GerarInfraData.GerarProjeto(parm); // GERAR CLASSES DO APPLICATION; GerarApplication.ViewModel(parm); GerarApplication.IService(parm, nomeDoMetodoObterTodos); GerarApplication.Service(parm, nomeDoMetodoObterTodos); GerarApplication.AutoMapper(parm, prefixo1, prefixo2, prefixo3); GerarApplication.GerarProjeto(parm); // GERAR CLASSES DO CROSCUTTING BUS; GerarInfraCrossCuttingBus.GerarProjeto(parm); // GERAR CLASSES DO CROSCUTTING IOC; GerarInfraCrossCuttingIoC.GerarProjeto(parm, prefixo1, prefixo2, prefixo3, sufixo1, sufixo2, sufixo3); // GERAR CLASSES DO CROSCUTTING IDENTITY; GerarInfraCrossCuttingIdentity.Authorization(parm); GerarInfraCrossCuttingIdentity.Data(parm); GerarInfraCrossCuttingIdentity.Models(parm); GerarInfraCrossCuttingIdentity.Services(parm); GerarInfraCrossCuttingIdentity.Extensions(parm); GerarInfraCrossCuttingIdentity.GerarProjeto(parm); // GERAR SOLUTION; GerarSolution.GerarProjeto(parm); // FIM DA GERAÇÃO; Console.WriteLine($"FIM DA GERAÇÃO DA CLASSE {parm.NomeDaClasse} .... TECLE ALGO PARA FINALIZAR"); Console.ReadKey(); }