// o prefixo informa: Alterar, Excluir, Incluir;
        public static void Commands(Parametros param, string prefixo)
        {
            DadosDaClasse.CriarAtributos(param, "protected");

            // GERAR Commands;
            string template = LerTemplate.Ler(param.EnderecoDaPastaPadraoDoProgramaGerador, pathCommandsTemplate, @"ClasseCommand.txt");

            template = template.Replace("{{Sistema}}", param.NomeDoSistema);
            template = template.Replace("{{Classe}}", param.NomeDaClasse);
            template = template.Replace("{{Atributos}}", param.Atributos);
            var nomeArquivo = $"{param.NomeDaClasse}Command.cs";

            GravarResultado.Gravar(true, template, nomeArquivo, param.EnderecoDoProjetoDomain, @"Commands\");

            // GERAR CommandClasseCommand;
            template = LerTemplate.Ler(param.EnderecoDaPastaPadraoDoProgramaGerador, pathCommandsTemplate, @"CommandoClasseCommand.txt");
            template = template.Replace("{{Sistema}}", param.NomeDoSistema);
            template = template.Replace("{{Classe}}", param.NomeDaClasse);
            template = template.Replace("{{PrefixoClasse}}", prefixo + param.NomeDaClasse);
            var construtorComPrefixo = param.Construtor;

            construtorComPrefixo = Util.TrocarPrimeiraOcorrencia(construtorComPrefixo, param.NomeDaClasse, prefixo + param.NomeDaClasse + "Command");
            template             = template.Replace("{{ConstrutorDaClasseComPrefixo}}", construtorComPrefixo);
            nomeArquivo          = $"{prefixo}{param.NomeDaClasse}Command.cs";
            GravarResultado.Gravar(true, template, nomeArquivo, param.EnderecoDoProjetoDomain, @"Commands");
        }
예제 #2
0
        public static void GerarProjeto(Parametros param)
        {
            // GERAR SOLUTION PROJECT;
            string template = LerTemplate.Ler(param.EnderecoDaPastaPadraoDoProgramaGerador, pathSolutionTemplate, @"Solution.txt");

            template = template.Replace("{{Sistema}}", param.NomeDoSistema);
            var nomeArquivo = $"{param.NomeDoSistema}.sln";

            GravarResultado.Gravar(false, template, nomeArquivo, param.EnderecoDaPastaDoSistemaRaiz);
        }
예제 #3
0
        public static void ViewModel(Parametros param)
        {
            // GERAR ViewModel;
            DadosDaClasse.CriarAtributos(param, "");
            string template = LerTemplate.Ler(param.EnderecoDaPastaPadraoDoProgramaGerador, pathApplicationViewModelTemplate, @"ViewModel.txt");

            template = template.Replace("{{Sistema}}", param.NomeDoSistema);
            template = template.Replace("{{Classe}}", param.NomeDaClasse);
            template = template.Replace("{{Atributos}}", param.Atributos);
            var nomeArquivo = $"{param.NomeDaClasse}ViewModel.cs";

            GravarResultado.Gravar(true, template, nomeArquivo, param.EnderecoDoProjetoApplication, @"ViewModels\");
        }
예제 #4
0
        // o sufixo informa: Alterado, Alterada, Excluido, Excluida;
        public static void Events(Parametros param, string sufixo)
        {
            // GERAR Events;
            string template = LerTemplate.Ler(param.EnderecoDaPastaPadraoDoProgramaGerador, pathEventsTemplate, @"ClasseEvent.txt");

            template = template.Replace("{{Sistema}}", param.NomeDoSistema);
            template = template.Replace("{{ClasseSufixo}}", param.NomeDaClasse + sufixo);
            template = template.Replace("{{Atributos}}", param.Atributos);
            var construtorComSufixo = param.Construtor;

            construtorComSufixo = Util.TrocarPrimeiraOcorrencia(construtorComSufixo, param.NomeDaClasse, param.NomeDaClasse + sufixo + "Event");
            template            = template.Replace("{{ConstrutorDaClasseComSufixo}}", construtorComSufixo);
            var nomeArquivo = $"{param.NomeDaClasse}{sufixo}Event.cs";

            GravarResultado.Gravar(true, template, nomeArquivo, param.EnderecoDoProjetoDomain, @"Events");
        }
예제 #5
0
        // o sufixo informa: Alterado, Alterada, Excluido, Excluida;
        public static void EventHandler(Parametros param, string sufixo1, string sufixo2, string sufixo3)
        {
            // GERAR EventHandler;
            string sfx1     = param.NomeDaClasse + sufixo1;
            string sfx2     = param.NomeDaClasse + sufixo2;
            string sfx3     = param.NomeDaClasse + sufixo3;
            string template = LerTemplate.Ler(param.EnderecoDaPastaPadraoDoProgramaGerador, pathEventHandlerTemplate, @"ClasseEventHandler.txt");

            template = template.Replace("{{Sistema}}", param.NomeDoSistema);
            template = template.Replace("{{Classe}}", param.NomeDaClasse);
            template = template.Replace("{{ClasseSufixo1}}", sfx1);
            template = template.Replace("{{ClasseSufixo2}}", sfx2);
            template = template.Replace("{{ClasseSufixo3}}", sfx3);
            var nomeArquivo = $"{param.NomeDaClasse}EventHandler.cs";

            GravarResultado.Gravar(true, template, nomeArquivo, param.EnderecoDoProjetoDomain, @"EventHandlers\");
        }
        public static void IService(Parametros param, string nomeDoMetodoObterTodos)
        {
            // GERAR IService;
            var    classeLow = Util.PrimeiroCaracterLowerCase(param.NomeDaClasse);
            string template  = LerTemplate.Ler(param.EnderecoDaPastaPadraoDoProgramaGerador, pathApplicationIServiceTemplate, @"IService.txt");

            template = template.Replace("{{Sistema}}", param.NomeDoSistema);
            template = template.Replace("{{Classe}}", param.NomeDaClasse);
            template = template.Replace("{{ClasseLow}}", classeLow);
            Atributos primeiroAtributo = param.ListaDeAtributos[0];

            template = template.Replace("{{NomeId}}", Util.PrimeiroCaracterLowerCase(primeiroAtributo.Nome));
            template = template.Replace("{{TipoId}}", primeiroAtributo.Tipo);
            template = template.Replace("{{NomeDoMetodoObterTodos}}", nomeDoMetodoObterTodos);
            var nomeArquivo = $"I{param.NomeDaClasse}AppService.cs";

            GravarResultado.Gravar(true, template, nomeArquivo, param.EnderecoDoProjetoApplication, @"IServices");
        }
예제 #7
0
        // o prefixo informa: Alterar, Alterada, Excluido, Excluida;
        public static void CommandHandler(Parametros param, string prefixo1, string prefixo2, string prefixo3, string sufixo1, string sufixo2, string sufixo3)
        {
            // GERAR CommandHandler (aggregate root);
            string template = LerTemplate.Ler(param.EnderecoDaPastaPadraoDoProgramaGerador, pathCommandHandlerTemplate, @"CommandHandler.txt");

            template = template.Replace("{{Sistema}}", param.NomeDoSistema);
            var nomeArquivo = "CommandHandler.cs";

            GravarResultado.Gravar(true, template, nomeArquivo, param.EnderecoDoProjetoDomain, @"CommandHandlers\");

            // GERAR CommandHandler;
            string classeLower = Util.PrimeiroCaracterLowerCase(param.NomeDaClasse);
            var    listaDeAtributosParaConstrutorObj     = DadosDaClasse.ListaDeAtributosParaConstrutor(param, classeLower, true);
            var    listaDeAtributosParaConstrutorMessage = DadosDaClasse.ListaDeAtributosParaConstrutor(param, "message", true);
            string pfx1 = prefixo1 + param.NomeDaClasse;
            string pfx2 = prefixo2 + param.NomeDaClasse;
            string pfx3 = prefixo3 + param.NomeDaClasse;
            string sfx1 = param.NomeDaClasse + sufixo1;
            string sfx2 = param.NomeDaClasse + sufixo2;
            string sfx3 = param.NomeDaClasse + sufixo3;

            template    = LerTemplate.Ler(param.EnderecoDaPastaPadraoDoProgramaGerador, pathCommandHandlerTemplate, @"ClasseCommandHandler.txt");
            template    = template.Replace("{{Sistema}}", param.NomeDoSistema);
            template    = template.Replace("{{Classe}}", param.NomeDaClasse);
            template    = template.Replace("{{ClasseLower}}", classeLower);
            template    = template.Replace("{{Prefixo1Classe}}", pfx1);
            template    = template.Replace("{{Prefixo2Classe}}", pfx2);
            template    = template.Replace("{{Prefixo3Classe}}", pfx3);
            template    = template.Replace("{{ClasseSufixo1}}", sfx1);
            template    = template.Replace("{{ClasseSufixo2}}", sfx2);
            template    = template.Replace("{{ClasseSufixo3}}", sfx3);
            template    = template.Replace("{{Prefixo1}}", prefixo1);
            template    = template.Replace("{{Prefixo2}}", prefixo2);
            template    = template.Replace("{{Prefixo3}}", prefixo3);
            template    = template.Replace("{{ListaDeAtributosParaConstrutorMessage}}", listaDeAtributosParaConstrutorMessage);
            template    = template.Replace("{{ListaDeAtributosParaConstrutorObj}}", listaDeAtributosParaConstrutorObj);
            nomeArquivo = $"{param.NomeDaClasse}CommandHandler.cs";
            GravarResultado.Gravar(true, template, nomeArquivo, param.EnderecoDoProjetoDomain, @"CommandHandlers\");
        }
예제 #8
0
        public static void AutoMapper(Parametros param, string prefixo1Command, string prefixo2Command, string prefixo3Command)
        {
            // GERAR AutoMapper (ViewModelToDomain);
            var    listaConstrutorDaClasseComPrefixo = DadosDaClasse.ListaDeAtributosParaConstrutor(param, "c", false);
            string template = LerTemplate.Ler(param.EnderecoDaPastaPadraoDoProgramaGerador, pathApplicationAutoMapperTemplate, @"ViewModelToDomain.txt");

            template = template.Replace("{{Sistema}}", param.NomeDoSistema);
            template = template.Replace("{{Classe}}", param.NomeDaClasse);
            template = template.Replace("{{Prefixo1Classe}}", prefixo1Command + param.NomeDaClasse);
            template = template.Replace("{{Prefixo2Classe}}", prefixo2Command + param.NomeDaClasse);
            template = template.Replace("{{Prefixo3Classe}}", prefixo3Command + param.NomeDaClasse);
            template = template.Replace("{{ConstrutorDaClasseComPrefixo}}", listaConstrutorDaClasseComPrefixo);
            var nomeArquivo = $"ViewModelToDomain{param.NomeDaClasse}.cs";

            GravarResultado.Gravar(true, template, nomeArquivo, param.EnderecoDoProjetoApplication, @"AutoMapper\");

            // GERAR AutoMapper (DomainToViewModel);
            template    = LerTemplate.Ler(param.EnderecoDaPastaPadraoDoProgramaGerador, pathApplicationAutoMapperTemplate, @"DomainToViewModel.txt");
            template    = template.Replace("{{Sistema}}", param.NomeDoSistema);
            template    = template.Replace("{{Classe}}", param.NomeDaClasse);
            nomeArquivo = $"DomainToViewModel{param.NomeDaClasse}.cs";
            GravarResultado.Gravar(true, template, nomeArquivo, param.EnderecoDoProjetoApplication, @"AutoMapper\");
        }
        public static void Validation(Parametros param, string prefixo1, string prefixo2, string prefixo3)
        {
            // GERAR ClasseValidation;
            string template = LerTemplate.Ler(param.EnderecoDaPastaPadraoDoProgramaGerador, pathValidationTemplate, @"ClasseValidation.txt");

            template = template.Replace("{{Sistema}}", param.NomeDoSistema);
            template = template.Replace("{{Classe}}", param.NomeDaClasse);
            StringBuilder sbGeral = new StringBuilder();

            foreach (var item in param.ListaDeAtributos)
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendLine($"        protected void Validar{item.Nome}()                         ");
                sb.AppendLine("        {                                                           ");
                sb.AppendLine($"            RuleFor(c => c.{item.Nome})                             ");
                sb.AppendLine("               .NotEmpty()                                          ");
                sb.AppendLine("               .NotNull()                                           ");
                sb.AppendLine($"               .WithMessage(\"{item.Nome} deve ser informado(a)\"); ");
                sb.AppendLine("        }                                                           ");
                sb.AppendLine("                                                                    ");
                sbGeral.AppendLine(sb.ToString());
            }
            template = template.Replace("{{Validacoes}}", sbGeral.ToString());
            var nomeArquivo = $"{param.NomeDaClasse}Validation.cs";

            GravarResultado.Gravar(true, template, nomeArquivo, param.EnderecoDoProjetoDomain, @"Validations\");

            // GERAR ClasseCommandValidation;
            StringBuilder sbMetodos = new StringBuilder();

            foreach (var item in param.ListaDeAtributos)
            {
                sbMetodos.AppendLine($"            Validar{item.Nome}();                         ");
            }
            // Gerar Para o Prefixo1;
            template    = LerTemplate.Ler(param.EnderecoDaPastaPadraoDoProgramaGerador, pathValidationTemplate, @"ClasseCommandValidation.txt");
            template    = template.Replace("{{Sistema}}", param.NomeDoSistema);
            template    = template.Replace("{{Classe}}", param.NomeDaClasse);
            template    = template.Replace("{{PrefixoClasse}}", prefixo1);
            template    = template.Replace("{{MetodosValidacao}}", sbMetodos.ToString());
            nomeArquivo = $"{prefixo1}{param.NomeDaClasse}CommandValidation.cs";
            GravarResultado.Gravar(true, template, nomeArquivo, param.EnderecoDoProjetoDomain, @"Validations\");

            // Gerar Para o Prefixo2;
            template    = LerTemplate.Ler(param.EnderecoDaPastaPadraoDoProgramaGerador, pathValidationTemplate, @"ClasseCommandValidation.txt");
            template    = template.Replace("{{Sistema}}", param.NomeDoSistema);
            template    = template.Replace("{{Classe}}", param.NomeDaClasse);
            template    = template.Replace("{{PrefixoClasse}}", prefixo2);
            template    = template.Replace("{{MetodosValidacao}}", sbMetodos.ToString());
            nomeArquivo = $"{prefixo2}{param.NomeDaClasse}CommandValidation.cs";
            GravarResultado.Gravar(true, template, nomeArquivo, param.EnderecoDoProjetoDomain, @"Validations\");

            // Gerar Para o Prefixo3;
            template    = LerTemplate.Ler(param.EnderecoDaPastaPadraoDoProgramaGerador, pathValidationTemplate, @"ClasseCommandValidation.txt");
            template    = template.Replace("{{Sistema}}", param.NomeDoSistema);
            template    = template.Replace("{{Classe}}", param.NomeDaClasse);
            template    = template.Replace("{{PrefixoClasse}}", prefixo3);
            template    = template.Replace("{{MetodosValidacao}}", sbMetodos.ToString());
            nomeArquivo = $"{prefixo3}{param.NomeDaClasse}CommandValidation.cs";
            GravarResultado.Gravar(true, template, nomeArquivo, param.EnderecoDoProjetoDomain, @"Validations\");
        }