Exemplo n.º 1
0
        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();
            }
        }
Exemplo n.º 2
0
 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");
 }
Exemplo n.º 4
0
 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];
     }
 }
Exemplo n.º 5
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);
            }
        }