/// <summary> /// Método que cria o relatório final /// </summary> /// <returns></returns> public bool Criar(ref string mensagemErro) { CL_Files.WriteOnTheLog("Document.Criar", Global.TipoLog.DETALHADO); mensagemErro = ""; try { //string responseFromServer = File.ReadAllText("C:\\Users\\Rodrigo\\Desktop\\entrada.json"); string responseFromServer = this.requisicao; //if(!FazRequisicao(ref mensagemErro, ref responseFromServer)) //{ // return false; //} Save(responseFromServer, ref mensagemErro); } catch (Exception e) { Util.CL_Files.WriteOnTheLog("Erro na requisição: " + e.Message, Util.Global.TipoLog.SIMPLES); mensagemErro = "Erro: " + e.Message; return(false); } return(true); }
/// <summary> /// Método que salva o resultado da requisição do servidor /// </summary> /// <param name="colunas">Parêmetros do arquivo JSON</param> /// <param name="dados">Dados do JSON</param> /// <param name="mensagemErro">Variável para armazenar algum possível erro</param> /// <returns>True - sucesso; False - erro</returns> public bool SaveResultAsCsv(List <string> colunas, List <string> dados, ref string mensagemErro) { CL_Files.WriteOnTheLog("Document.SaveResultAsCsv", Global.TipoLog.DETALHADO); mensagemErro = ""; try { if (File.Exists(Global.app_out_file_csv)) { File.Delete(Global.app_out_file_csv); } string texto = ""; bool first = true; foreach (string coluna in colunas) { if (first) { texto += coluna.Replace("\t", "").Replace("\n", ""); } else { texto += ";" + coluna.Replace("\t", "").Replace("\n", ""); } first = false; } texto += "\n"; first = true; int i = 0; foreach (string dado in dados) { i++; if (first) { texto += dado.Replace("\t", "").Replace("\n", ""); } else { texto += ";" + dado.Replace("\t", "").Replace("\n", ""); } if (i == colunas.Count) { texto += "\n"; } first = false; } File.AppendAllText(Global.app_out_file_csv, texto); } catch (Exception e) { mensagemErro = e.Message; return(false); } return(true); }
/// <summary> /// Method that write on the log /// </summary> /// <param name="message"></param> public static void WriteOnTheLog(string message, Global.TipoLog tipoLog) { if (Global.log_system == Global.TipoLog.SIMPLES && tipoLog != Global.TipoLog.SIMPLES) { return; } string directory_ach = Global.app_logs_directoty; if (DateTime.Now.Day < 10) { directory_ach += "0" + DateTime.Now.Day; } else { directory_ach += DateTime.Now.Day; } if (DateTime.Now.Month < 10) { directory_ach += "0" + DateTime.Now.Month; } else { directory_ach += DateTime.Now.Month; } directory_ach += DateTime.Now.Year + ".log"; CL_Files file = new CL_Files(directory_ach); file.WriteOnTheEnd(DateTime.Now.ToString() + "- " + message + "\n"); file = null; }
/// <summary> /// Método que salva o resultado da requisição do servidor /// </summary> /// <param name="colunas">Parêmetros do arquivo JSON</param> /// <param name="dados">Dados do JSON</param> /// <param name="mensagemErro">Variável para armazenar algum possível erro</param> /// <returns>True - sucesso; False - erro</returns> public bool SaveResultOnBD(List <string> colunas, List <string> dados, ref string mensagemErro) { CL_Files.WriteOnTheLog("Document.SaveResultOnBD", Global.TipoLog.DETALHADO); mensagemErro = ""; ///Drop e cria a tabela MD_Retorno r = new MD_Retorno(true); r = null; try { string[] col = new string[colunas.Count]; string[] inf = new string[dados.Count]; col = colunas.ToArray(); inf = dados.ToArray(); string comando = "INSERT INTO RETORNO ("; string values = "VALUES ("; Util.DataBase.Execute("DROP TABLE RETORNO"); Util.DataBase.Execute("DROP TABLE INCREMENTAIS"); for (int i = 0; i < colunas.Count; i++) { MD_Retorno retorno = new MD_Retorno(col[i], false); comando += (i == 0 ? "CODIGO, " + retorno.Path : ", " + retorno.Path); values += (i == 0 ? retorno.Inc() + ", '" + inf[0] + "'" : ",'" + inf[i].Replace("'", "") + "'"); retorno = null; } comando += ")"; values += ")"; Util.DataBase.Insert(comando + values); values = "VALUES ("; for (int j = colunas.Count, i = 0; j < dados.Count; j++) { MD_Retorno retorno = new MD_Retorno(col[i], false); values += (i == 0 ? retorno.Inc() + ", '" + inf[j] + "'" : ",'" + inf[j].Replace("'", "") + "'"); i++; if (i == colunas.Count) { values += ")"; Util.DataBase.Insert(comando + values); values = "VALUES ("; i = 0; } } Util.DataBase.Execute("DROP TABLE INCREMENTAIS"); } catch (Exception e) { mensagemErro = e.Message; return(false); } return(true); }
/// <summary> /// Construtor principal da classe /// </summary> /// <param name="requisicao">Comando de requisição a ser feita</param> public Document(string requisicao, Document.Saida out_files) { CL_Files.WriteOnTheLog("Document.Document", Global.TipoLog.DETALHADO); this.requisicao = requisicao; this.out_files = out_files; Save_as_csv = out_files.csv; Save_as_json = out_files.json; Save_as_xml = out_files.xml; Save_on_bd = out_files.sqlite; }
/// <summary> /// Método que salva a resposta do servidor /// </summary> /// <param name="responseFromServer">Resposta JSON do servidor a ser salva</param> /// <returns></returns> private bool Save(string responseFromServer, ref string mensagemErro) { CL_Files.WriteOnTheLog("Document.Save", Global.TipoLog.DETALHADO); mensagemErro = ""; List <string> colunas = new List <string>(); List <string> dados = new List <string>(); MontaDados(responseFromServer, ref colunas, ref dados); try { if (Save_as_csv) { CL_Files.WriteOnTheLog("Arquivos de saída" + Global.app_out_file_csv, Global.TipoLog.SIMPLES); if (!SaveResultAsCsv(colunas, dados, ref mensagemErro)) { return(false); } } if (Save_as_xml) { CL_Files.WriteOnTheLog("Arquivos de saída" + Global.app_out_file_xml, Global.TipoLog.SIMPLES); if (!SaveResultAsXML(colunas, dados, ref mensagemErro)) { return(false); } } if (Save_as_json) { CL_Files.WriteOnTheLog("Arquivos de saída" + Global.app_out_file_json, Global.TipoLog.SIMPLES); if (!SaveResultAsJSON(responseFromServer, ref mensagemErro)) { return(false); } } if (Save_on_bd) { CL_Files.WriteOnTheLog("Arquivos de saída" + Global.app_base_file, Global.TipoLog.SIMPLES); if (!SaveResultOnBD(colunas, dados, ref mensagemErro)) { return(false); } } } catch (Exception e) { mensagemErro = e.Message; return(false); } return(true); }
/// <summary> /// Método que salva o resultado da requisição do servidor /// </summary> /// <param name="colunas">Parêmetros do arquivo JSON</param> /// <param name="dados">Dados do JSON</param> /// <param name="mensagemErro">Variável para armazenar algum possível erro</param> /// <returns>True - sucesso; False - erro</returns> public bool SaveResultAsXML(List <string> colunas, List <string> dados, ref string mensagemErro) { CL_Files.WriteOnTheLog("Document.SaveResultAsXML", Global.TipoLog.DETALHADO); mensagemErro = ""; string[] col = new string[colunas.Count]; string[] inf = new string[dados.Count]; col = colunas.ToArray(); inf = dados.ToArray(); try { if (File.Exists(Global.app_out_file_xml)) { File.Delete(Global.app_out_file_xml); } string texto = "<?xml version=\"1.0\" encoding=\"UTF - 8\"?>\n"; texto += "<json>\n"; for (int i = 0, j = 0; i < dados.Count; i++) { if (j == 0) { texto += "\t<tweet>\n"; } texto += "\t\t<" + col[j].Replace("\t", "").Replace("\n", "") + ">" + inf[i].Replace("\t", "").Replace("\n", "") + "</" + col[j].Replace("\t", "").Replace("\n", "") + ">\n"; j++; if (j == colunas.Count) { texto += "\t</tweet>\n"; j = 0; } } texto += "</json>"; File.AppendAllText(Global.app_out_file_xml, texto); } catch (Exception e) { mensagemErro = e.Message; return(false); } return(true); }
/// <summary> /// Método que salva o resultado da requisição do servidor /// </summary> /// <param name="response">Resposta JSON do servidor</param> /// <param name="mensagemErro">Variável para armazenar algum possível erro</param> /// <returns>True - sucesso; False - erro</returns> public bool SaveResultAsJSON(string response, ref string mensagemErro) { CL_Files.WriteOnTheLog("Document.SaveResultAsJSON", Global.TipoLog.DETALHADO); mensagemErro = ""; try { if (File.Exists(Global.app_out_file_json)) { File.Delete(Global.app_out_file_json); } File.AppendAllText(Global.app_out_file_json, response); } catch (Exception e) { mensagemErro = e.Message; return(false); } return(true); }
/// <summary> /// Método que monta os dados de colunas e informações da resposta do servidor /// </summary> /// <param name="responseFromServer">Resposta json do servidor</param> /// <param name="colunas">Colunas referentes aos parâmetros do json</param> /// <param name="dados">Dados referente ao JSON</param> public void MontaDados(string responseFromServer, ref List <string> colunas, ref List <string> dados) { CL_Files.WriteOnTheLog("Document.MontaDados", Global.TipoLog.DETALHADO); colunas = new List <string>(); List <JObject> response = JsonConvert.DeserializeObject <List <JObject> >(responseFromServer); foreach (dynamic en in response) { foreach (JToken o in en.PropertyValues()) { if (!colunas.Contains(o.Path.ToString().Replace(":", "").Replace(";", "").Replace(".", "").Replace(",", ""))) { colunas.Add(o.Path.ToString().Replace(":", "").Replace(";", "").Replace(".", "").Replace(",", "")); } dados.Add(o.ToString()); } response = null; } }
/// <summary> /// Método que faz a requisição e retorno uma string com o Json /// </summary> /// <param name="mensagemErro"></param> /// <returns></returns> private bool FazRequisicao(ref string mensagemErro, ref string retorno) { CL_Files.WriteOnTheLog("Document.FazRequisicao", Global.TipoLog.DETALHADO); mensagemErro = retorno = ""; try { // Create a request for the URL. WebRequest request = WebRequest.Create(requisicao); // If required by the server, set the credentials. request.Credentials = CredentialCache.DefaultCredentials; // Get the response. HttpWebResponse response = (HttpWebResponse)request.GetResponse(); // Get the stream containing content returned by the server. Stream dataStream = response.GetResponseStream(); // Open the stream using a StreamReader for easy access. StreamReader reader = new StreamReader(dataStream); // Read the content. retorno = reader.ReadToEnd(); // Cleanup the streams and the response. reader.Close(); dataStream.Close(); response.Close(); } catch (Exception e) { Util.CL_Files.WriteOnTheLog("Erro na requisição: " + e.Message, Util.Global.TipoLog.SIMPLES); mensagemErro = "Erro: " + e.Message; return(false); } return(true); }