public static async Task <ArquivoInfo> StartGenerateSQL(SqlGenerator sqlGenerator) { ArquivoInfo _arquivoInfo = new ArquivoInfo(); SqlParcialErros sqlParcialErros = new SqlParcialErros(); _arquivoInfo.erro = false; _arquivoInfo.Mensagem = "SQL Gerado com sucesso!"; columnTable.Clear(); var i = 0; try { if (sqlGenerator.HasHeader) { StringBuilder cabecalho = await Core.ReadFileHead(sqlGenerator.csvFile); _arquivoInfo.cabecalho = cabecalho.ToString().Split(new[] { sqlGenerator.delimiter }, StringSplitOptions.RemoveEmptyEntries).ToList(); foreach (var item in _arquivoInfo.cabecalho) { Tabela tabela = new Tabela(); var nomeColuna = Core.RemoveAccentsAndEspecialCHars(item); if (columnTable.FindIndex(c => c.NomeCampo == nomeColuna) > 0) { nomeColuna = nomeColuna + "_" + i++; } tabela.NomeCampo = nomeColuna; tabela.TamanhoCampo = 1; columnTable.Add(tabela); } } string res = ConvertCSVtoSqlInsert(sqlGenerator.csvFile, sqlGenerator.delimiter, sqlGenerator.HasHeader, ref sqlParcialErros); gerarSQL(res, sqlGenerator.GenerateCreateTable); if (sqlParcialErros.sqlParcialErros) { _arquivoInfo.caminhoParcialErros = "ParcialErrors.txt"; _arquivoInfo.msgParcialErros = sqlParcialErros.msgParcialErros; using (StreamWriter stw = new StreamWriter("ParcialErrors.txt")) { stw.WriteLine(sqlParcialErros.linhasErros); } } } catch (Exception e) { _arquivoInfo.erro = true; _arquivoInfo.Mensagem = String.Format("Erro ao gerar SQL: {0}", e.Message); } return(_arquivoInfo); }
public ArquivoInfo lerArquivo(StringBuilder stringBuilder, string delimiter) { ArquivoInfo arquivoInfo = new ArquivoInfo(); arquivoInfo.cabecalho = stringBuilder.ToString().Split(new[] { delimiter }, StringSplitOptions.RemoveEmptyEntries).ToList(); arquivoInfo.file = "file.fmt"; arquivoInfo.caminho = Path.GetFullPath(arquivoInfo.file);; arquivoInfo.totalLinhas = arquivoInfo.cabecalho.Count; Caminho = arquivoInfo.caminho; return(arquivoInfo); }
public static async Task <ArquivoInfo> StartGenerateFMT(IFormFile Ifilename, string delimiter, string lineBreak) { ArquivoInfo _arquivoInfo = new ArquivoInfo(); try { var strinBuilder = await Core.ReadFileHead(Ifilename); _arquivoInfo = Core.geraFMT(strinBuilder, delimiter, lineBreak); } catch (Exception e) { _arquivoInfo.erro = true; _arquivoInfo.Mensagem = String.Format("Erro ao gerar FMT: {0}", e.Message); } return(_arquivoInfo); }