private void WriteFile(string pathTemplate, string pathCsv, string pathDist) { try { Task task = DisableAllButtonsAsync(); using (DocX docuement = DocX.Create(pathDist)) { using (DocX template = DocX.Load(pathTemplate)) { int lineCount = 0; using (var csv = new CsvReader(new StreamReader(pathCsv), true)) { lineCount = csv.Count(); } using (var csv = new CsvReader(new StreamReader(pathCsv), true)) { var fieldCount = csv.FieldCount; var headers = csv.GetFieldHeaders(); while (csv.ReadNextRecord()) { if (csv.CurrentRecordIndex != 0) { docuement.InsertSectionPageBreak(); } docuement.InsertDocument(template); for (var i = 0; i < fieldCount; i++) { docuement.ReplaceText(String.Format("<<{0}>>", headers[i]), csv[i]); } Task t = UpdatePgbAsync((double)(csv.CurrentRecordIndex + 1) / lineCount * 100); } } } docuement.Save(); if (docuement.Text.Contains("<<") || docuement.Text.Contains(">>")) { MessageBox.Show("There is some << / >> not merged."); } Task t2 = FinishMergeAsync(); } } catch (Exception ex) { MessageBox.Show(String.Format("{0}", ex.Message), "Warning", MessageBoxButton.OK, MessageBoxImage.Warning); } finally { Task task = EnableAllButtonsAsync(); } }
public string lastId() { using (CsvReader csv = new CsvReader(new StreamReader(pathcsv), true, ';')) { int n = csv.Count(); if (n == 0) { return("0"); } else { return(csv[n - 1, 0]); } } }
public void Execute(DocumentStore store) { Stopwatch sw = Stopwatch.StartNew(); decimal pos = 0; var csvReader = new CsvReader(new StreamReader(File.OpenRead("C:\\coding\\SchoolMap.Net\\Collateral\\extract.csv")), true); decimal total = csvReader.Count(); csvReader = new CsvReader(new StreamReader(File.OpenRead("C:\\coding\\SchoolMap.Net\\Collateral\\extract.csv")), true); var batch = new List<School>(); foreach (var line in csvReader) { using (IDocumentSession session = store.OpenSession()) { string id = line[31]; School school = session.Query<School>().SingleOrDefault(x => x.Id == id); if (school == null) { school = new School(); SetSchoolProperties(line, school); school.Id = id; } else { SetSchoolProperties(line, school); } if (batch.Count == 30) { var savingSession = store.OpenSession(); batch.ForEach(savingSession.Store); savingSession.SaveChanges(); batch.Clear(); } batch.Add(school); } Console.Write("\r{0}% ", Math.Round((++pos/total)*100, 2)); } sw.Stop(); Console.WriteLine("Completed in {0} minutes"); }
public string lastId() { using (CsvReader csv = new CsvReader(new StreamReader(pathcsv), true, ';')) { int n = csv.Count(); if (n == 0) return "0"; else return csv[n - 1, 0]; } }
public static ArquivoCSV ImportarArquivo(string caminhoArquivoCSV = null, string nomeIdentificacao = null) { Console.WriteLine("Informe o caminho de um arquivo para importação:"); if (string.IsNullOrEmpty(caminhoArquivoCSV)) { caminhoArquivoCSV = Console.ReadLine().Replace("\"", ""); } try { // Criação de StreamReader para importação via CSVHelper using (var fs = new StreamReader(caminhoArquivoCSV)) { List <SalesRecord> lines = new CsvReader(fs, System.Globalization.CultureInfo.CurrentCulture).GetRecords <LinhaCSV>().Select((l, index) => new SalesRecord(l, index + 1)).ToList(); Console.WriteLine("Informe um nome para identificação do arquivo:"); if (string.IsNullOrEmpty(nomeIdentificacao)) { nomeIdentificacao = Console.ReadLine(); } // Preparação do objeto de arquivo com detalhes para envio var csvFileDetails = new ArquivoCSV(); csvFileDetails.CaminhoInicial = caminhoArquivoCSV; csvFileDetails.NomeIdentificacao = nomeIdentificacao; csvFileDetails.TotalLinhas = lines.Count(); csvFileDetails.TotalLinhasComErro = lines.Count(l => l.FlagErro); csvFileDetails.TotalLinhasImportadas = lines.Count(l => !l.FlagErro); csvFileDetails.RegistrosParaImportacao = lines.ToList(); // Chamada à API de testes var client = new HttpClient(); client.BaseAddress = new Uri("http://localhost:5000/"); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); // Conversão para JSON do arquivo string json = JsonSerializer.Serialize(csvFileDetails); // Envio de dados e retorno esperado como JSON HttpResponseMessage retorno = client.PostAsync("api/principal/enviar", new StringContent(json, Encoding.UTF8, "application/json")).Result; var arquivoRetorno = JsonSerializer.Deserialize <ArquivoCSV>(retorno.Content.ReadAsStringAsync().Result); if (arquivoRetorno.StatusProcessamento == -1) { Console.WriteLine("Erro na Importação pela API: " + arquivoRetorno.DescricaoProcessamento); } else { Console.WriteLine("Status de Importação:"); Console.WriteLine($"---Total de Linhas:{arquivoRetorno.TotalLinhas}"); Console.WriteLine($"---Total de Linhas Importadas:{arquivoRetorno.TotalLinhasImportadas}"); Console.WriteLine($"---Total de Linhas Com Erro:{arquivoRetorno.TotalLinhasComErro}"); Console.WriteLine($"---ID do Arquivo:{arquivoRetorno.IdCSVFile}"); Console.WriteLine($"---Nome de Identificação:{arquivoRetorno.NomeIdentificacao}"); } return(arquivoRetorno); } } catch (Exception e) { Console.WriteLine("Erro geral: " + e); return(null); } }