private static bool FlowOptionsClassic(string[] args, HelperSysObjectsBase sysObject, string flow) { var result = false; if (flow == ((int)Eflows.GerarCodigo).ToString()) { PrinstScn.WriteLine("Gerar direto na pasta dos projetos? [S=Sim, N=Não]"); var usePathProjects = Console.ReadLine(); MainWithOutConfirmation(args, usePathProjects.ToLower() == "s", sysObject); result = true; } if (flow == ((int)Eflows.GerarCodigoEspecifico).ToString()) { PrinstScn.WriteLine("Gerar direto na pasta dos projetos? [S=Sim, N=Não]"); var usePathProjects = Console.ReadLine(); MainWithConfirmation(args, usePathProjects.ToLower() == "s", sysObject); result = true; } if (flow == ((int)Eflows.Sair).ToString()) { Environment.Exit(0); result = true; } return(result); }
private static void MainEspecificClass(string[] args, bool UsePathProjects, HelperSysObjectsBase sysObject) { PrinstScn.WriteLine($"Atualizando / Criando Contextos ou classes especificas! [{args.LastOrDefault()}]"); foreach (var item in sysObject.Contexts) { sysObject.MakeClass(item, args[1], UsePathProjects); } }
private static void MainWithOutConfirmation(string[] args, bool UsePathProjects, HelperSysObjectsBase sysObject) { PrinstScn.WriteLine("Atualizando / Criando todos os Contextos"); foreach (var item in sysObject.Contexts) { PrinstScn.WriteLine(item.Namespace); sysObject.MakeClass(item, UsePathProjects); } }
public static void Flow(string[] args, Func <IEnumerable <ExternalResource> > GetConfigExternarReources, HelperSysObjectsBase sysObject) { var executeFlow = FlowOptions(args, GetConfigExternarReources, sysObject); if (!executeFlow) { PrinstScn.WriteLine("Fluxo Não implementado"); } Flow(args, GetConfigExternarReources, sysObject); }
public static void Flow(string[] args, HelperSysObjectsBase sysObject) { var executeFlow = FlowOptionsClassic(args, sysObject); if (!executeFlow) { PrinstScn.WriteLine("Fluxo Não implementado"); } Flow(args, sysObject); }
public static string CopySolutionFile(IEnumerable <ExternalResource> resources, string contextName) { var resource = resources.Where(_ => _.SolutionBase).SingleOrDefault(); var solutionSeedSource = Path.Combine(resource.ResourceLocalPathFolderCloningRepository, "Seed.sln"); if (File.Exists(solutionSeedSource)) { var solutionSeedDestination = Path.Combine(resource.ResourceLocalPathDestinationFolrderApplication, string.Format("{0}.sln", contextName)); File.Copy(solutionSeedSource, solutionSeedDestination); PrinstScn.WriteLine("{0} foi copiado", solutionSeedDestination); return(solutionSeedDestination); } return(null); }
public static void Flow(string[] args, HelperSysObjectsBase sysObject) { var executeFlow = FlowOptionsClassic(args, sysObject); if (args.FirstOrDefault() != "?") { if (!executeFlow) { PrinstScn.WriteLine("Fluxo Não implementado #"); } Flow(new string[] { "?" }, sysObject); } }
private static bool FlowOptions(string[] args, Func <IEnumerable <ExternalResource> > GetConfigExternarReources, HelperSysObjectsBase sysObject) { Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine("Escolha as opções;"); Console.WriteLine("[{0} = >> Clonar e Copiar para aplicação]", (int)Eflows.AtualizarAplicacao); Console.WriteLine("[{0} = >> Atualizar repositorio local com arquivos da aplicação]", (int)Eflows.AtualizarRepository); Console.WriteLine("[{0} = >> Gerar Código ]", (int)Eflows.GerarCodigo); Console.WriteLine("[{0} = >> Gerar Código de um Contexto ou Classe Especifica]", (int)Eflows.GerarCodigoEspecifico); Console.WriteLine("[{0} = >> Clonar apenas]", (int)Eflows.AtualizarAplicacaoSemcopiar); Console.WriteLine("[{0} = >> Abrir local do projeto]", (int)Eflows.AbrirLocalDoProjeto); Console.WriteLine("[{0} = >> Sair", (int)Eflows.Sair); var flow = Console.ReadLine(); var result = FlowOptionsClassic(args, sysObject, flow); if (flow == ((int)Eflows.AtualizarAplicacao).ToString()) { PrinstScn.WriteLine("Clonar e Copiar para aplicação"); HelperExternalResources.CloneAndCopy(GetConfigExternarReources()); result = true; } if (flow == ((int)Eflows.AtualizarAplicacaoSemcopiar).ToString()) { PrinstScn.WriteLine("Clonar apenas"); HelperExternalResources.CloneOnly(GetConfigExternarReources()); result = true; } if (flow == ((int)Eflows.AtualizarRepository).ToString()) { PrinstScn.WriteLine("Atualizar repositorio local com arquivos da aplicação"); HelperExternalResources.UpdateLocalRepository(GetConfigExternarReources()); result = true; } if (flow == ((int)Eflows.FixFileNameToExtInApp).ToString()) { PrinstScn.WriteLine("Atualizar nomes dos Arquivos da aplicação para .Ext"); FixRename.Fix(sysObject); result = true; } return(result); }
private static bool FlowOptionsClassic(string[] args, HelperSysObjectsBase sysObject, string flow) { var result = false; if (flow == ((int)Eflows.GerarCodigo).ToString()) { PrinstScn.WriteLine("Gerar direto na pasta dos projetos? [S=Sim, N=Não]"); var usePathProjects = Console.ReadLine(); MainWithOutConfirmation(args, usePathProjects.ToLower() == "s", sysObject); result = true; } if (flow == ((int)Eflows.GerarCodigoEspecifico).ToString()) { if (args.Count() == 3) { MainEspecificClass(args, args.LastOrDefault().ToLower() == "s", sysObject); } else { PrinstScn.WriteLine("Gerar direto na pasta dos projetos? [S=Sim, N=Não]"); var usePathProjects = Console.ReadLine(); MainWithConfirmation(args, usePathProjects.ToLower() == "s", sysObject); } result = true; } if (flow == ((int)Eflows.AbrirLocalDoProjeto).ToString()) { HelperCmd.ExecuteCommand(string.Format("explorer {0}", "."), 10000); result = true; } if (flow == ((int)Eflows.Sair).ToString()) { Environment.Exit(0); result = true; } return(result); }
public StreamWriter GetInstance() { try { this._attemps++; return(new StreamWriter(this._path, false, Encoding.UTF8)); } catch (Exception ex) { this._attemps++; if (this._attemps <= 99) { PrinstScn.WriteWarningLine(string.Format(">>>>> Retry {0} GetInstance {1} Erro: [{2}]", this._path, _attemps, ex.Message)); Thread.Sleep(2000 * _attemps); return(GetInstance()); } throw ex; } }
public static void Flow(string[] args, Func <IEnumerable <ExternalResource> > GetConfigExternarReources, HelperSysObjectsBase sysObject) { if (sysObject.DisableCompleteFlow) { PrinstScn.WriteWarningLine("Fluxo completo foi desabilitado para essa aplicação"); Flow(args, sysObject); } else { var executeFlow = FlowOptions(args, GetConfigExternarReources, sysObject); if (args.FirstOrDefault() != "?") { if (!executeFlow) { PrinstScn.WriteLine("Fluxo Não implementado #"); } Flow(new string[] { "?" }, GetConfigExternarReources, sysObject); } } }
private static bool FlowOptionsClassic(string[] args, HelperSysObjectsBase sysObject, string flow) { var result = false; if (flow == ((int)Eflows.GerarCodigo).ToString()) { PrinstScn.WriteLine("Gerar direto na pasta dos projetos? [S=Sim, N=Não]"); var usePathProjects = Console.ReadLine(); MainWithOutConfirmation(args, usePathProjects.ToLower() == "s", sysObject); result = true; } if (flow == ((int)Eflows.GerarCodigoEspecifico).ToString()) { PrinstScn.WriteLine("Gerar direto na pasta dos projetos? [S=Sim, N=Não]"); var usePathProjects = Console.ReadLine(); MainWithConfirmation(args, usePathProjects.ToLower() == "s", sysObject); result = true; } if (flow == ((int)Eflows.AbrirLocalDoProjeto).ToString()) { HelperCmd.ExecuteCommand(string.Format("explorer '{0}'", AppDomain.CurrentDomain.BaseDirectory.Replace("\\Gerador.Gen\\", "").Replace("bin\\Debug\\", "").Replace("bin\\Release\\", "")), 10000); result = true; } if (flow == ((int)Eflows.Sair).ToString()) { Environment.Exit(0); result = true; } return(result); }
private static void CopyFiles(List <string> filesOutput, ExternalResource resource, DirectoryInfo item) { var files = item.GetFiles(); foreach (var file in files) { var pathDestination = Path.Combine(resource.ResourceLocalPathDestinationFolrderApplication, item.Name); var sourceFile = file.FullName; var destinationFile = Path.Combine(pathDestination, file.Name); if (File.Exists(sourceFile)) { if (!Directory.Exists(pathDestination)) { Directory.CreateDirectory(pathDestination); } File.Copy(sourceFile, destinationFile, resource.ReplaceLocalFilesApplication); PrinstScn.WriteLine("{0} foi copiado", destinationFile); filesOutput.Add(destinationFile); } } }
private static void MainWithConfirmation(string[] args, bool UsePathProjects, HelperSysObjectsBase sysObject) { PrinstScn.WriteLine("Atualizando / Criando Contextos ou classes especificas!"); foreach (var item in sysObject.Contexts) { PrinstScn.WriteLine("Deseja Atualizar/Criar o Contexto? {0} [S=Sim, N=Não]", item.Namespace); var accept = Console.ReadLine(); if (accept == "s") { PrinstScn.WriteLine("Deseja Escolher uma classe, Digite o nome dela?"); var className = Console.ReadLine(); if (!string.IsNullOrEmpty(className)) { sysObject.MakeClass(item, className, UsePathProjects); } else { sysObject.MakeClass(item); } } } }
private static IEnumerable <ExternalResource> FilterRepository(Func <IEnumerable <ExternalResource> > GetConfigExternarReources, string resouceRepositoryNumberRead) { Int32.TryParse(resouceRepositoryNumberRead, out int resouceRepositoryNumber); if (resouceRepositoryNumber <= 0 || resouceRepositoryNumber > 6) { PrinstScn.WriteLine("Repositório inexistente"); return(null); } var repositories = new string[] { "template-gerador-back-core2.0-DDD", "framework-core2.0-common", "template-gerador-front-coreui-angular6.0", "framework-angular6.0-CRUD", "project-base-layout-front-coreui-angular6.0", "solution-base-core2.0-ddd-project-with-gerador-empty" }; var resouceRepositoryName = repositories[resouceRepositoryNumber - 1]; PrinstScn.WriteLine(string.Format("Clonar e Copiar parcialmente para aplicação o repositorio: {0}", resouceRepositoryName)); var result = GetConfigExternarReources().Where(_ => _.ResouceRepositoryName == resouceRepositoryName); //if (resouceRepositoryNumber == 6) //{ // result.SingleOrDefault().OnlyThisFiles = new List<string> { "Common.dll", "Common.Domain.dll", "Common.Gen.dll" }; //} return(result); }
private static bool FlowOptions(string[] args, Func <IEnumerable <ExternalResource> > GetConfigExternarReources, HelperSysObjectsBase sysObject) { Console.ForegroundColor = ConsoleColor.Yellow; var flow = string.Empty; if (args.Length == 0) { Options(); flow = Console.ReadLine(); } else if (args.FirstOrDefault() == "?") { Options(); } else { flow = args.FirstOrDefault(); } var result = FlowOptionsClassic(args, sysObject, flow); if (flow == ((int)Eflows.AtualizarAplicacao).ToString()) { PrinstScn.WriteLine("Clonar e Copiar para aplicação"); HelperExternalResources.CloneAndCopy(GetConfigExternarReources()); result = true; } if (flow == ((int)Eflows.ReduzirArquivosParaCrudBasic).ToString()) { PrinstScn.WriteLine("Essa opção deleta diversos arquivos do Front SPA, tem certeza que deseja fazer isso? [S=Sim, N=Não]"); var confirmDelete = Console.ReadLine(); if (confirmDelete.ToLower() == "s") { HelperCrudBasicDelete.Fix(sysObject); var usePathProjects = confirmDelete; MainWithOutConfirmation(args, usePathProjects.ToLower() == "s", sysObject); } result = true; } if (flow == ((int)Eflows.AtualizarAplicaoParcialmente).ToString()) { Console.WriteLine("Qual dos seguintes Projetos você deseja Atualizar:"); Console.WriteLine("[1 = >> template-gerador-back-core2.0-DDD]"); Console.WriteLine("[2 = >> framework-core2.0-common]"); Console.WriteLine("[3 = >> template-gerador-front-coreui-angular6.0]"); Console.WriteLine("[4 = >> framework-angular6.0-CRUD]"); Console.WriteLine("[5 = >> Seed-layout-front-coreui-angular6.0]"); Console.WriteLine("[6 = >> Gerador]"); var resouceRepositoryNumberRead = Console.ReadLine(); HelperExternalResources.CloneAndCopy(FilterRepository(GetConfigExternarReources, resouceRepositoryNumberRead)); result = true; } if (flow == ((int)Eflows.GerarEstruturaParaNovoContexto).ToString()) { PrinstScn.WriteWarningLine("ATENÇÃO ESSE PROCEDIMENTO VAI BAIXAR DO GIT PROJETOS INICIAIS NAS PASTAS DE OUTPUT DO SEU PROJETO ATUAL. CASO SEU PROJETO AINDA ESTEJA COM O NOME DEFAULT SEED, ELE SERA SOBRESCRITO. AS CONFIGURAÇÕES DE OUTPUT ESTÃO NO APP.CONFIG DO GERADOR. TEM CERTEZA QUE DESEJA FAZER ISSO? (S=SIM/N=NÃO)"); var continueClony = Console.ReadLine(); if (continueClony.ToLower() == "s") { var projectFiles = HelperExternalResources.CloneAndCopyStructureForNewContext(GetConfigExternarReources()); Console.WriteLine("Digite o nome do novo Contexto"); var contextName = Console.ReadLine(); FixRenameSeed.Fix(sysObject.GetOutputClassRoot(), contextName, false); var seedFile = HelperExternalResources.CopySolutionFile(GetConfigExternarReources(), contextName); var projectFilesFix = FixRenameSeed.FixCollectionFile(projectFiles, contextName); var filesFixContent = new List <string>(); filesFixContent.AddRange(projectFilesFix); filesFixContent.Add(seedFile); foreach (var file in filesFixContent) { FixRenameSeed.FixContentFile(contextName, file); } } result = true; } if (flow == ((int)Eflows.AtualizarAplicacaoSemcopiar).ToString()) { PrinstScn.WriteLine("Clonar apenas"); HelperExternalResources.CloneOnly(GetConfigExternarReources()); result = true; } if (flow == ((int)Eflows.AtualizarRepository).ToString()) { PrinstScn.WriteLine("Atualizar repositorio local com arquivos da aplicação"); HelperExternalResources.UpdateLocalRepository(GetConfigExternarReources()); result = true; } if (flow == ((int)Eflows.FixFileNameToExtInApp).ToString()) { PrinstScn.WriteLine("Atualizar nomes dos Arquivos da aplicação para .Ext"); FixRenameExt.Fix(sysObject); result = true; } if (flow == ((int)Eflows.RenomearProjeto).ToString()) { Console.WriteLine("[1 = >> Apenas Sistema de Arquivos]"); Console.WriteLine("[2 = >> Sistema de Arquivos e Conteúdo]"); var Renameprocess = Console.ReadLine(); if (Renameprocess != "1" && Renameprocess != "2") { Console.WriteLine("fluxo Não disponível"); return(true); } var replaceinContentFile = Renameprocess == "1" ? false : true; PrinstScn.WriteLine("Definir nome do Projeto"); var projectName = Console.ReadLine(); FixRenameSeed.Fix(sysObject.GetOutputClassRoot(), projectName, replaceinContentFile); result = true; } if (flow == ((int)Eflows.RenomearUmaEntidadeDoSistema).ToString()) { Console.WriteLine("[1 = >> Apenas Sistema de Arquivos (Ignorar Case)]"); Console.WriteLine("[2 = >> Sistema de Arquivos e Conteúdo (Considerar Case)]"); var Renameprocess = Console.ReadLine(); if (Renameprocess != "1" && Renameprocess != "2") { Console.WriteLine("fluxo Não disponível"); return(true); } var replaceinContentFile = Renameprocess == "1" ? false : true; Console.WriteLine("Digite o nome da Entidade que Dejeja Renomear"); var termOrigin = Console.ReadLine(); Console.WriteLine("Digite o novo Nome"); var termDestination = Console.ReadLine(); var _fromTo = new Dictionary <string, string> { { termOrigin, termDestination } }; FixRenameFiles.Fix(sysObject.GetOutputClassRoot(), _fromTo, replaceinContentFile); result = true; } if (flow == ((int)Eflows.RenomearEntidadesDoSistema).ToString()) { Console.WriteLine("[1 = >> Apenas Sistema de Arquivos]"); Console.WriteLine("[2 = >> Sistema de Arquivos e Conteúdo]"); Console.WriteLine("<<<< Atenção esse processo é Case Sensitive >>>>>"); var Renameprocess = Console.ReadLine(); if (Renameprocess != "1" && Renameprocess != "2") { Console.WriteLine("fluxo Não disponível"); return(true); } var replaceinContentFile = Renameprocess == "1" ? false : true; Console.WriteLine("Digite o Caminho do Arquivo , com a relação de Para separado por ;"); var filePath = Console.ReadLine(); var content = File.ReadAllLines(filePath); var _fromTo = new Dictionary <string, string>(); foreach (var item in content) { _fromTo.Add(item.Split(';').FirstOrDefault(), item.Split(';').LastOrDefault()); } var fronToFixed = PrepareFromTo(_fromTo); Console.ForegroundColor = ConsoleColor.Green; foreach (var item in fronToFixed) { Console.WriteLine($"{item.Key} >> {item.Value}"); } Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("Confira as trocas e a ordenação e escolha sim ou não (s=Sim/n=Não)"); var done = Console.ReadLine(); if (done == "s") { FixRenameFiles.Fix(sysObject.GetOutputClassRoot(), fronToFixed, replaceinContentFile); } result = true; } if (flow == ((int)Eflows.ImportarArquivosDeOutroProjeto).ToString()) { Console.WriteLine("Digite a Namespace do projeto de Origem"); var originNamespace = Console.ReadLine(); Console.WriteLine("Digite o Caminho do projeto de Origem"); var originPathRoot = Console.ReadLine(); HelperMigationToAnotherProject.DoMigation(sysObject, originPathRoot, originNamespace); result = true; } if (flow == ((int)Eflows.LimparDadosSeed).ToString()) { PrinstScn.WriteLine("Limpar Diretorios do Seed"); FixRenameSeed.ClearEnd(sysObject.GetOutputClassRoot()); result = true; } Console.ForegroundColor = ConsoleColor.White; return(result); }