namespace Download_Faturas { using System.Data.OleDb; using System.Globalization; using System.Net.Http.Headers; using System.Text; using System.Text.Json; using System.Text.RegularExpressions; public class Program { #if DEBUG public const string LogFaturas = @"X:\Back\Carteira x.x\4Docs\import.txt"; public const string LogFaturas2 = @"X:\Back\Carteira x.x\4Docs\import2.txt"; #else public const String LogFaturas = "import.txt"; public const String LogFaturas2 = "import2.txt"; #endif public const string CaminhoDB = "X:/Middle/Informativo Setorial/Modelo Word/BD1_dados cadastrais e faturas.accdb"; private static HttpClient httpClient = new HttpClient(); private static OleDbConnection conn = new (@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + CaminhoDB + ";Jet OLEDB:Database Password=gds21"); private static OleDbCommand cmd = new (); private static StreamReader sr = new StreamReader(LogFaturas); private static StreamWriter sw = new StreamWriter(LogFaturas2); private static string? fatura; public static void Main() { // Abre a conexao com o banco de dados conn.Open(); cmd.Connection = conn; // Loop entre as faturas pendentes while ((fatura = sr.ReadLine()) != null) { string fatura_ID = fatura.Split(",")[0]; string fatura_status = fatura.Split(",")[1]; string fatura_arquivo = fatura.Split(",")[2]; // Verifica se a fatura foi processada e atualiza os valores para banco de dados if (fatura_status == "DELAYED" | fatura_status == "ACTIONABLE" | fatura_status == string.Empty | fatura_status == "UNIDADE CONSUMIDORA NÃO LOCALIZADA NO BD") { // Verifica se a fatura foi processada e atualiza os valores para o banco de dados Fatura fatura = new Fatura(fatura_ID, fatura_arquivo, httpClient); if (fatura.Status == "SUCCESS" & !fatura.Agrupada) { fatura.Processar(cmd); sw.WriteLine(fatura_ID + "," + fatura.Status + "," + fatura_arquivo); // mover_fatura(fatura_processamento, fatura_arquivo); } else if (fatura.Status == "SUCCESS" & fatura.Agrupada) { foreach (JsonElement individual_ID in fatura.Agrupada_children) { Fatura faturaIndividual = new Fatura(individual_ID.ToString(), fatura_arquivo, httpClient); if (faturaIndividual.Status == "SUCCESS") { faturaIndividual.Processar(cmd); sw.WriteLine(individual_ID.ToString() + "," + faturaIndividual.Status + "," + fatura_arquivo); faturaIndividual.Mover(); // mover fatura } else { sw.WriteLine(individual_ID.ToString() + "," + faturaIndividual.Status + "," + fatura_arquivo); // mover fatura } } } else { sw.WriteLine(fatura_ID + "," + fatura.Status + "," + fatura_arquivo); // mover fatura } } else { sw.WriteLine(fatura); } } conn.Close(); sr.Close(); sw.Close(); File.Move(LogFaturas2, LogFaturas, true); } } }