diff --git a/Program - Cópia.cs b/Program - Cópia.cs deleted file mode 100644 index 6bbdfea..0000000 --- a/Program - Cópia.cs +++ /dev/null @@ -1,436 +0,0 @@ -//// See https://aka.ms/new-console-template for more information -//using Newtonsoft.Json; -//using System; -//using System; -//using System.Collections.Generic; -//using System.ComponentModel; -//using System.Data; -//using System.Data.OleDb; -//using System.Data.SqlClient; -//using System.Diagnostics; -//using System.Drawing; -//using System.Globalization; -//using System.Linq; -//using System.Net.Http; -//using System.Security.Authentication; -//using System.Security.Cryptography.X509Certificates; -//using System.Text; -//using System.Threading; -//using System.Threading.Tasks; -//using System.Xml; -//using Npgsql; - -//internal class Plat_integ -//{ -// //tempo medio de execucao para processamente sincrono: 15 dias: 5,4s / 30 dias:10,0s / 60 dias:16,2s -// static string PG_CONN_STRING_DEV = "Server = smart-energia-dev-pgsql.cykff7tj7mik.us-east-1.rds.amazonaws.com; Port = 5432; Database = smartimptest; User Id = postgres; Password = VfHml#Z78!%kvvNM;"; -// static string PG_CONN_STRING_PROD = "Server = smart-energia-dev-pgsql.cykff7tj7mik.us-east-1.rds.amazonaws.com; Port = 5432; Database = smartenergiaprod; User Id = postgres; Password = VfHml#Z78!%kvvNM;"; - -// static string ENVIRONMENT = "prod"; // "dev" | "prod" - -// static string BUILD_FOR = "access"; // "access" | "postgres" - -// static void Main() -// { -// MainAsync().Wait(); -// } - -// private static async Task MainAsync() -// { -// string caminho_BD; -// int max_i; -// DateTime data_inicial; -// DateTime tempo_cod, tempo_ini; - -// Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB"); - -// //auxiliar para calculo do tempo de execucao do codigo -// tempo_ini = DateTime.Now; -// tempo_cod = DateTime.Now; - -// //caminho do BD em que sera salvo os valores de PLD -// caminho_BD = @"X:\Middle\Informativo Setorial\Modelo Word\BD_SCDE.accdb"; - -// //data inicial conforme ultimo valor salvo no BD -// data_inicial = data_inicio_BD(caminho_BD); - -// DateTime data_final = DateTime.Now.AddDays(1); - -// if (data_inicial.Year != data_final.Year) -// { -// data_final = new DateTime(data_inicial.Year, 12, 31); -// } - -// //roda a requisicao de forma sincrona para obter o numero total de paginas - tambem busca os dados da primeira pagina -// max_i = processar_XML_sync(requisicao_http_sync(xml_requisicao(1, data_inicial, data_final)), caminho_BD); -// Console.Write("Tempo de execucao da etapa inicial: {0}", DateTime.Now - tempo_cod); -// Console.WriteLine("\nHavera {0} processos rodando em paralelo", max_i - 1); -// tempo_cod = DateTime.Now; - -// if (BUILD_FOR == "postgres") -// { -// int pagesN; -// for (int i = 2; i <= max_i; i++) -// { -// pagesN = processar_XML_sync(requisicao_http_sync(xml_requisicao(i, data_inicial, data_final)), caminho_BD); -// } -// } -// else -// { -// //abre a conexao com o BD -// OleDbConnection access_conn = new("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + caminho_BD + ";Jet OLEDB:Database Password=gds21"); -// access_conn.Open(); -// await Task.WhenAll(assync_requisicao_http(data_inicial, max_i, caminho_BD, access_conn)); -// Thread.Sleep(2000); -// Console.WriteLine("Concluido. Tempo TOTAL de execucao: {0}", DateTime.Now - tempo_ini); -// //repete a requisicao de forma assincrona para as demais paginas -// access_conn.Close(); -// } -// return 0; -// } - -// public static async Task assync_requisicao_http(DateTime data_inicial, int max_i, string caminho_BD, OleDbConnection access_conn) -// { -// int i; -// var handler = new HttpClientHandler(); -// Task[] arr_Tks = new Task[max_i - 1]; -// Task[] arr_Tks_gen = new Task[max_i - 1]; -// var arr_Var = new HttpResponseMessage[max_i - 1]; - -// // Carrega o certificado do arquivo .pfx -// X509Certificate2 cert = new X509Certificate2("X:\\Back\\APP Smart\\Certificado\\Certificado Fernando.pfx", "appsmart"); -// handler.ClientCertificates.Add(cert); - -// DateTime data_final = DateTime.Now; -// if (data_inicial.Year != data_final.Year) -// { -// data_final = new DateTime(data_inicial.Year, 12, 31); -// } - -// DateTime aux_tempo = DateTime.Now; -// var client = new HttpClient(handler); -// client.DefaultRequestHeaders.Add("SOAPAction", "listarPLD"); -// var endpoint = new Uri("https://servicos.ccee.org.br:443/ws/prec/PLDBSv1"); -// Parallel.For(2, max_i + 1, (i) => -// { -// var payload = new StringContent(xml_requisicao(i, data_inicial, data_final), Encoding.UTF8, "application/json"); -// arr_Tks[i - 2] = client.PostAsync(endpoint, payload); -// }); - -// Parallel.For(2, max_i + 1, (i, state) => -// { -// var retorno = arr_Tks[i - 2].Result; -// try -// { -// arr_Tks_gen[i - 2] = processar_XML_assync(retorno.Content.ReadAsStringAsync().Result, caminho_BD, access_conn); -// } -// catch (AggregateException ae) -// { -// Task.Delay(100); -// arr_Tks_gen[i - 2] = processar_XML_assync(retorno.Content.ReadAsStringAsync().Result, caminho_BD, access_conn); -// } -// }); -// await Task.WhenAll(arr_Tks_gen.ToArray()); -// return 2; -// } - -// //processa as respostas de forma assincrona -// public static async Task processar_XML_assync(string entrada, string caminho_BD, OleDbConnection access_conn) -// { -// XmlDocument doc = new XmlDocument(); -// doc.LoadXml(entrada); -// //doc.Save(@"X:\Back\PLD Horário\xmlresposta.xml"); -// int hora = 0, dia_semana = 0; -// int j; -// int num_pag; -// double dia = 0; -// string submercado = "", mes = "", access_strCOM, pg_strCOM; -// double valor = 0; -// DateTime aux_data = new DateTime(2005, 01, 01); -// DateTime tempo_xml; - -// XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable); -// nsmgr.AddNamespace("bm", "http://xmlns.energia.org.br/BM/v1"); -// nsmgr.AddNamespace("bo", "http://xmlns.energia.org.br/BO/v1"); -// nsmgr.AddNamespace("hdr", "http://xmlns.energia.org.br/MH/v1"); -// nsmgr.AddNamespace("soapenv", "http://schemas.xmlsoap.org/soap/envelope"); -// nsmgr.AddNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance"); - -// tempo_xml = DateTime.Now; - -// int.TryParse(doc.SelectSingleNode("//hdr:totalPaginas", nsmgr).InnerText, out num_pag); -// //Console.WriteLine("Total paginas " + num_pag); - -// await Task.Run(() => -// { -// //START PGSQL -// NpgsqlConnection pg_conn; -// if (ENVIRONMENT is "dev") -// { -// pg_conn = new(PG_CONN_STRING_DEV); -// } -// else -// { -// pg_conn = new(PG_CONN_STRING_PROD); -// } -// if (BUILD_FOR != "access") -// { -// pg_conn.Open(); -// } - -// foreach (XmlNode n1 in doc.SelectNodes("//bm:plds//bm:pld", nsmgr)) -// { -// XmlNode n2 = n1; -// aux_data = DateTime.ParseExact(n2.SelectSingleNode("bo:vigencia//bo:inicio", nsmgr).InnerText, "yyyy-MM-dd'T'HH:mm:ss'-03:00'", null); -// dia = (aux_data.ToOADate() - aux_data.ToOADate() % 1); -// hora = aux_data.Hour; -// mes = aux_data.ToString("yyMM"); -// dia_semana = (int)aux_data.DayOfWeek; -// if (dia_semana == 0) -// { -// dia_semana = 7; -// } -// for (j = 0; j <= 3; j++) -// { -// submercado = n2.SelectNodes("bo:valores//bo:valor//bo:submercado//bo:nome", nsmgr)[j].InnerText; -// Double.TryParse(n2.SelectNodes("bo:valores//bo:valor//bo:valor//bo:valor", nsmgr)[j].InnerText, out valor); - -// if (BUILD_FOR == "access") -// { -// //START ACCESS -// access_strCOM = "INSERT INTO PLD_comp (Data, Hora, Submercado, Valor, Mes_ref, Dia_da_semana)"; -// access_strCOM += " VALUES (" + dia + "," + (hora + 1) + ",\"" + submercado + "\"," + valor + "," + mes + "," + dia_semana + ")"; -// OleDbCommand tbPLD = new(access_strCOM, access_conn); -// OleDbDataReader reader = tbPLD.ExecuteReader(); -// //END ACCESS -// } -// else -// { -// pg_strCOM = "INSERT INTO pld (dia_num, hora, submercado, valor, mes_ref, dia_da_semana) "; -// pg_strCOM += "VALUES (" + dia + ", " + (hora + 1) + ", '" + submercado + "', " + valor + ", '" + mes + "', " + dia_semana + ")"; -// NpgsqlCommand pg_tcSCDE = new(pg_strCOM, pg_conn); -// NpgsqlDataReader pg_reader = pg_tcSCDE.ExecuteReader(); -// pg_reader.Close(); -// //END PGSQL -// } -// } -// } -// pg_conn.Close(); -// }); -// foreach (XmlNode n1 in doc.GetElementsByTagName("hdr:numero")) -// { -// Console.WriteLine("Processando pagina {0} de {1} - tempo de execucao {2}", n1.InnerText, num_pag, DateTime.Now - tempo_xml); -// } -// } - -// //prepara o xml de entrada a ser enviado à CCEE -// public static string xml_requisicao(int pag, DateTime dat_ini, DateTime dat_fim) -// { -// string cam_ent, tex_req, sdat_ini, sdat_fim; -// cam_ent = @"X:\Back\PLD Horário\listarPLD.txt"; - -// sdat_ini = dat_ini.ToString("yyyy-MM-ddT00:00:00"); //2022-12-31T00:00:00 -// sdat_fim = dat_fim.ToString("yyyy-MM-ddT00:00:00"); -// tex_req = File.ReadAllText(cam_ent); -// tex_req = tex_req.Replace("DATA_INI", sdat_ini); -// tex_req = tex_req.Replace("DATA_FIM", sdat_fim); -// tex_req = tex_req.Replace("PAG_NUM", pag.ToString()); -// return tex_req; -// } - -// //calcula a data de inicio da solicitacao do PLD, utilizando como base o ultimo dia de valor do PLD salvo no BD -// public static DateTime data_inicio_BD(string caminho_BD) -// { -// string access_strCOM, pg_strCOM; -// DateTime saida_ult_dia = DateTime.Now; - -// if (BUILD_FOR == "access") -// { -// access_strCOM = "SELECT MAX(Data) As ultimo_dia FROM PLD_comp"; - -// OleDbConnection access_conn = new("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + caminho_BD + ";Jet OLEDB:Database Password=gds21"); -// access_conn.Open(); -// OleDbCommand access_tbPLD = new(access_strCOM, access_conn); -// OleDbDataReader access_reader = access_tbPLD.ExecuteReader(); - -// access_reader.Read(); - -// DateTime.TryParse(access_reader["ultimo_dia"].ToString(), out saida_ult_dia); -// access_conn.Close(); -// saida_ult_dia = saida_ult_dia.AddDays(1); -// Console.WriteLine("Importando dados a partir de:" + saida_ult_dia); -// } -// else -// { -// pg_strCOM = "SELECT TO_DATE('1899-12-30', 'YYYY-MM-DD') + INTERVAL '1' DAY * MAX(dia_num) AS ultimo_dia FROM pld"; - -// NpgsqlConnection pg_conn; -// if (ENVIRONMENT is "dev") -// { -// pg_conn = new(PG_CONN_STRING_DEV); -// } -// else -// { -// pg_conn = new(PG_CONN_STRING_PROD); -// } -// if (BUILD_FOR != "access") -// { -// pg_conn.Open(); -// } -// NpgsqlCommand pg_tcSCDE = new(pg_strCOM, pg_conn); -// NpgsqlDataReader pg_reader = pg_tcSCDE.ExecuteReader(); -// pg_reader.Read(); -// Console.WriteLine("" + pg_reader["ultimo_dia"].ToString()); -// if (pg_reader["ultimo_dia"].ToString().Length > 0) -// { -// DateTime.TryParse(pg_reader["ultimo_dia"].ToString(), out saida_ult_dia); -// pg_reader.Close(); -// saida_ult_dia = saida_ult_dia.AddDays(1); -// Console.WriteLine("Importando dados a partir de:" + saida_ult_dia); -// } -// else -// { -// saida_ult_dia = DateTime.Now.AddYears(-2); -// Console.WriteLine("Importando dados a partir de:" + saida_ult_dia); -// } -// } -// return saida_ult_dia; -// } - -// //requisicao sincrona de valor do PLD -// public static string requisicao_http_sync(string tex_req) -// { -// var handler = new HttpClientHandler(); - -// // Carrega o certificado do arquivo .pfx -// X509Certificate2 cert = new X509Certificate2("X:\\Back\\APP Smart\\Certificado\\Certificado Fernando.pfx", "appsmart"); -// handler.ClientCertificates.Add(cert); - -// using (var client = new HttpClient(handler)) -// { -// client.DefaultRequestHeaders.Add("SOAPAction", "listarPLD"); -// var endpoint = new Uri("https://servicos.ccee.org.br:443/ws/prec/PLDBSv1"); -// var newPostJson = JsonConvert.ToString(tex_req); -// var payload = new StringContent(tex_req, Encoding.UTF8, "application/json"); - -// //modificar a proxima linha para transformar em assincrono -// //var retorno = client.PostAsync(endpoint, payload).Result.Content.ReadAsStringAsync().Result; -// var retorno = client.PostAsync(endpoint, payload).Result.Content.ReadAsStringAsync().Result; -// //https://stackoverflow.com/questions/642293/how-do-i-read-and-parse-an-xml-file-in -// return retorno; -// } -// } - -// //processa os dados da resposta de forma sincrona, retorna o numero total de paginas da requisicao -// public static int processar_XML_sync(string entrada, string caminho_BD) -// { -// XmlDocument doc = new XmlDocument(); -// doc.LoadXml(entrada); -// doc.Save(@"X:\Back\PLD Horário\xmlresposta.xml"); -// int hora = 0, dia_semana = 0; -// int num_pag; -// double dia = 0; -// string submercado = "", mes = "", access_strCOM, pg_strCOM; -// double valor = 0; -// DateTime aux_data = new DateTime(2005, 01, 01); - -// //abre a conexao com o BD -// OleDbConnection access_conn = new("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + caminho_BD + ";Jet OLEDB:Database Password=gds21"); -// access_conn.Open(); - -// NpgsqlConnection pg_conn; -// if (ENVIRONMENT is "dev") -// { -// pg_conn = new(PG_CONN_STRING_DEV); -// } -// else -// { -// pg_conn = new(PG_CONN_STRING_PROD); -// } -// if (BUILD_FOR != "access") -// { -// pg_conn.Open(); -// } -// Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-GB"); - -// num_pag = 1; -// foreach (XmlNode n1 in doc.GetElementsByTagName("hdr:totalPaginas")) -// { -// int.TryParse(n1.InnerText, out num_pag); -// } - -// foreach (XmlNode n1 in doc.GetElementsByTagName("hdr:numero")) -// { -// Console.WriteLine("Processando pagina {0} de {1}", n1.InnerText, num_pag); -// } - -// foreach (XmlNode n1 in doc.GetElementsByTagName("bm:pld")) -// { -// foreach (XmlNode n2 in n1.ChildNodes) -// { -// foreach (XmlNode n3 in n2.ChildNodes) -// { -// if (n3.Name == "bo:inicio") -// { -// aux_data = DateTime.ParseExact(n3.InnerText, "yyyy-MM-dd'T'HH:mm:ss'-03:00'", null); -// dia = (aux_data.ToOADate() - aux_data.ToOADate() % 1); -// hora = aux_data.Hour; -// mes = aux_data.ToString("yyMM"); -// dia_semana = (int)aux_data.DayOfWeek; -// if (dia_semana == 0) -// { -// dia_semana = 7; -// } -// } -// if (n3.Name == "bo:valor") -// { -// foreach (XmlNode n4 in n3.ChildNodes) -// { -// if (n4.Name == "bo:submercado" || n4.Name == "bo:valor") -// { -// foreach (XmlNode n5 in n4.ChildNodes) -// { -// switch (n5.Name) -// { -// case "bo:nome": -// submercado = n5.InnerText; -// break; -// case "bo:valor": -// Double.TryParse(n5.InnerText, out valor); -// //Console.WriteLine("Mes:" + mes + " - Dia da semana:" + dia_semana + " - Dia:" + dia + " - Hora:" + hora + "- Submercado:" + submercado + "- Valor:" + valor + "\n"); -// //Escreva as informacoes no BD -// if (BUILD_FOR == "access") -// { -// access_strCOM = "INSERT INTO PLD_comp (Data, Hora, Submercado, Valor, Mes_ref, Dia_da_semana)"; -// access_strCOM += " VALUES (" + dia + "," + (hora + 1) + ",\"" + submercado + "\"," + valor + "," + mes + "," + dia_semana + ")"; -// //Console.WriteLine(strCOM); -// OleDbCommand access_tbPLD = new(access_strCOM, access_conn); -// OleDbDataReader access_reader = access_tbPLD.ExecuteReader(); -// access_reader.Close(); -// } -// else -// { -// pg_strCOM = "INSERT INTO pld " + -// "(dia_num, hora, submercado, valor, mes_ref, dia_da_semana) "; -// pg_strCOM += "VALUES (" + dia + ", " + (hora + 1) + ", '" + submercado + "', " + valor + ", '" + mes + "', " + dia_semana + ")"; -// NpgsqlCommand pg_tcSCDE = new(pg_strCOM, pg_conn); -// NpgsqlDataReader pg_reader = pg_tcSCDE.ExecuteReader(); -// pg_reader.Close(); -// } -// break; -// default: -// break; -// } -// } -// } -// } -// } -// } -// } -// } -// access_conn.Close(); -// pg_conn.Close(); -// return num_pag; -// } - -//} \ No newline at end of file