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