Example #1
0
        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);
        }
Example #3
0
        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);
        }