public Historico FindHistorico(String id) { Historico hist = new Historico(); Expression <Func <Historico, bool> > filter = x => x.Id == ObjectId.Parse(id); hist = conexaoDB.Historicos.Find(filter).FirstOrDefault(); return(hist); }
private void updateObjectsOnDB(Historico historico, Tentativa tentativa) { historico.Output = output; try { conexaoDB.Historicos.InsertOne(historico); Expression <Func <Tentativa, bool> > filtro = x => x.tentativaID == "MCEL"; conexaoDB.Tentativas.ReplaceOne(filtro, tentativa); } catch (Exception ex) { textBox2.Text = " Erro de conexão com a Base de dados : \n" + ex.Message.ToString() + "\n" + "verificar se servico MongoDB está a correr!"; } }
private void dataGridView1_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0) { DataGridViewRow row = this.dataGridView1.Rows[e.RowIndex]; String id = row.Cells["index"].Value.ToString(); Historico historico = FindHistorico(id); if (historico != null) { String details = "Data inicio: " + historico.Inicio.ToString(string.Format("dd/MM/yyyy HH:mm")) + "\n\nData Fim: " + historico.Fim.ToString(string.Format("dd/MM/yyyy HH:mm")) + "\n\nLOG:\n\n" + historico.Output; MessageBox.Show(details); } else { MessageBox.Show("Registro não encontrado! Pf, reinicie a aplicação. Se o erro persistir verifique a disponibilidade da Base de dados --> Serviço MongoDB.exe"); } } }
private void tryUSSDCommands(Historico historico, Tentativa tentativa) { //Passo 1 GSMConnection.protocol = GSMConnection.gsmComm.GetProtocol(); string request = "*123#"; output = "*123#\n "; textBox1.Text = output; textBox2.Text = "Chamando ... *123#"; string gottenString = GSMConnection.protocol.ExecAndReceiveMultiple("AT+CUSD=1," + request + ",15"); string responce = ""; if (!gottenString.Contains("\r\n+CUSD: 2")) { do { Thread.Sleep(4000); output += gottenString; responce += gottenString; } while (GSMConnection.protocol.Receive(out gottenString)); if (responce != "" && !responce.Contains("down") && !responce.Contains("ERROR")) { responce = ""; updateInfoInTextViews(); //Passo 2 request = "9" + char.ConvertFromUtf32(26); textBox2.Text = "Selecionando opção... 9"; output += "9\n "; textBox1.Text = output; gottenString = GSMConnection.protocol.ExecAndReceiveMultiple(request); if (!gottenString.Contains("\r\n+CUSD: 2")) { do { Thread.Sleep(4000); output += gottenString; responce += gottenString; } while (GSMConnection.protocol.Receive(out gottenString)); if (responce != "" && !responce.Contains("down") && !responce.Contains("ERROR")) { responce = ""; updateInfoInTextViews(); //Passo 3 request = "1" + char.ConvertFromUtf32(26); textBox2.Text = "Selecionando opção... 1"; output += "1\n "; textBox1.Text = output; gottenString = GSMConnection.protocol.ExecAndReceiveMultiple(request); if (!gottenString.Contains("\r\n+CUSD: 2")) { do { Thread.Sleep(4000); output += gottenString; responce += gottenString; } while (GSMConnection.protocol.Receive(out gottenString)); } updateInfoInTextViews(); historico.Fim = DateTime.Now; historico.Success = true; textBox2.Text = "Comandos USSD executado com sucesso.."; historico.Resultado = "Teste USSD concluido com sucesso!"; tentativa.Fim = DateTime.Now; if (tentativa.Success == false && tentativa.Alertou == true) { String mensagem = "Anteção: Problema ultrapassado.\nA sonda IZI USSD MCEL realizou com sucesso o teste.\nHora de Disponibilidade: " + tentativa.Fim.ToString(string.Format("dd/MM/yyyy HH:mm")) + "\nNotificação de teste"; String sms = "Anteção: Problema ultrapassado, \nO servico IZI USSD MCEL ja esta disponivel. \nCmpts"; String subject = "ALERTA - Disponibilidade Serviço IZI USSD MCEL (TESTE)"; contactos = new List <Contacto>(); contactos.Add(new Contacto("1", "LUCIA CUMBANE", "844380605")); contactos.Add(new Contacto("2", "ESSAU GUDO", "843106740")); contactos.Add(new Contacto("3", "DIOGO AMARAL", "841845213")); SendEMAILNOTIFICATION(mensagem, subject); Task obj = new Task(() => { SendSMSNOTIFICATION(sms, contactos); }); obj.Start(); // SendSMSNOTIFICATIONGSM(mensagem, contactos); } tentativa.Success = true; tentativa.Nr = 0; tentativa.Alertou = false; } else { output += "Servidor USSD não respondeu ao pedido!\n"; textBox1.Text = output; historico.Fim = DateTime.Now; tentativa.Fim = DateTime.Now; textBox2.Text = "Sem resposta esperada do servidor USSD"; historico.Success = false; historico.Resultado = "Teste USSD sem sucesso! Ver Log P/detalhes"; tentativa.Success = false; if (tentativa.Nr == 4) { tentativa.Nr = 0; String mensagem = "Atenção.\nA sonda IZI USSD MCEL registou quatro (4) falhas consecutivas nos testes.\nHora de Indisponibilidade: " + tentativa.Inicio.ToString(string.Format("dd/MM/yyyy HH:mm")) + "\nNotificação de teste"; String sms = "Anteção: Indisponibilidade, \nA sonda IZI USSD MCEL registou quatro (4) falhas consecutivas nos testes. \nCmpts"; String subject = "ALERTA - Indisponibilidade Serviço IZI USSD MCEL (TESTE)"; contactos = new List <Contacto>(); contactos.Add(new Contacto("1", "LUCIA CUMBANE", "844380605")); contactos.Add(new Contacto("2", "ESSAU GUDO", "843106740")); contactos.Add(new Contacto("3", "DIOGO AMARAL", "841845213")); SendEMAILNOTIFICATION(mensagem, subject); Task obj = new Task(() => { SendSMSNOTIFICATION(sms, contactos); }); obj.Start(); // SendSMSNOTIFICATIONGSM(mensagem, contactos); tentativa.Alertou = true; } } } } else { output += "Servidor USSD não respondeu ao pedido!\n"; textBox1.Text = output; historico.Fim = DateTime.Now; tentativa.Fim = DateTime.Now; textBox2.Text = "Sem resposta esperada do servidor USSD"; historico.Success = false; historico.Resultado = "Teste USSD sem sucesso! Ver Log P/detalhes"; tentativa.Success = false; if (tentativa.Nr == 43) { tentativa.Nr = 0; String mensagem = "Anteção: Indisponibilidade.\nA sonda IZI USSD MCEL registou quatro (4) falhas consecutivas nos testes.\nHora de ocorrência: " + tentativa.Inicio.ToString(string.Format("dd/MM/yyyy HH:mm")) + "\nNotificação de teste"; String sms = "Anteção: Indisponibilidade, \nA sonda IZI USSD MCEL registou quatro (4) falhas consecutivas nos testes. \nCmpts"; String subject = "ALERTA - Indisponibilidade Serviço IZI USSD MCEL (TESTE)"; contactos = new List <Contacto>(); contactos.Add(new Contacto("1", "LUCIA CUMBANE", "844380605")); contactos.Add(new Contacto("2", "ESSAU GUDO", "843106740")); contactos.Add(new Contacto("3", "DIOGO AMARAL", "841845213")); SendEMAILNOTIFICATION(mensagem, subject); Task obj = new Task(() => { SendSMSNOTIFICATION(sms, contactos); }); obj.Start(); tentativa.Alertou = true; } } } else { output += "Servidor USSD não respondeu ao pedido!\n"; textBox1.Text = output; historico.Fim = DateTime.Now; tentativa.Fim = DateTime.Now; textBox2.Text = "Sem resposta esperada do servidor USSD"; historico.Success = false; historico.Resultado = "Teste USSD sem sucesso! Ver Log P/detalhes"; tentativa.Success = false; if (tentativa.Nr == 4) { tentativa.Nr = 0; String mensagem = "Anteção: Indisponibilidade.\nA sonda IZI USSD MCEL registou quatro (4) falhas consecutivas nos testes.\nHora de ocorrência: " + tentativa.Inicio.ToString(string.Format("dd/MM/yyyy HH:mm")) + "\nNotificação de teste"; String sms = "Anteção: Indisponibilidade, \nA sonda IZI USSD MCEL registou quatro (4) falhas consecutivas nos testes. \nCmpts"; String subject = "ALERTA - Indisponibilidade Serviço IZI USSD MCEL (TESTE)"; contactos = new List <Contacto>(); contactos.Add(new Contacto("1", "LUCIA CUMBANE", "844380605")); contactos.Add(new Contacto("2", "ESSAU GUDO", "843106740")); contactos.Add(new Contacto("3", "DIOGO AMARAL", "841845213")); SendEMAILNOTIFICATION(mensagem, subject); Task obj = new Task(() => { SendSMSNOTIFICATION(sms, contactos); }); obj.Start(); //SendSMSNOTIFICATIONGSM(mensagem, contactos); tentativa.Alertou = true; } } }
private void runMonitorizacaoUSSD() { // Gets executed on a seperate thread and // doesn't block the UI while sleeping textBox2.Text = "Iniciando script...."; output = ""; textBox1.Text = output; ConnectPhone(); th = Thread.CurrentThread; Historico historico = new Historico(); Tentativa tentativa = FindTentativa("MCEL"); if (GSMConnection.gsmComm.IsOpen() == true && comboBox1.Enabled == false) { running = true; do { if (DateTime.Now.Hour >= 8 && DateTime.Now.Hour < 20) { try { historico = new Historico(); historico.Inicio = DateTime.Now; historico.Operadora = "MCEL"; historico.Id = ObjectId.GenerateNewId(); tentativa.Inicio = DateTime.Now; if (GSMConnection.gsmComm.IsOpen() == false) { GSMConnection.gsmComm.Open(); } tentativa.Nr = tentativa.Nr + 1; tryUSSDCommands(historico, tentativa); } catch (CommException ex) { textBox2.Text = "Servidor USSD retornou mensagem de erro: \n" + ex.Message.ToString(); output += "Servidor USSD retornou mensagem de erro: \n" + ex.Message.ToString(); Thread.Sleep(5000); updateInfoInTextViews(); historico.Fim = DateTime.Now; historico.Success = false; historico.Output = output; historico.Resultado = "Teste USSD sem sucesso! Ver Log P/detalhes"; tentativa.Success = false; if (tentativa.Nr == 4) { tentativa.Nr = 0; String mensagem = "Atenção.\nA sonda IZI USSD MCEL registou quatro (4) falhas consecutivas nos testes.\nHora de Indisponibilidade: " + tentativa.Inicio.ToString(string.Format("dd/MM/yyyy HH:mm")) + "\nNotificação de teste"; String sms = "Atenção, \nA sonda IZI USSD MCEL registou quatro (4) falhas consecutivas nos testes. \nCmpts"; String subject = "ALERTA - Indisponibilidade Serviço IZI USSD MCEL (TESTE)"; contactos = new List <Contacto>(); contactos.Add(new Contacto("1", "LUCIA CUMBANE", "844380605")); contactos.Add(new Contacto("1", "ESSAU GUDO", "843106740")); contactos.Add(new Contacto("1", "DIOGO AMARAL", "841845213")); SendEMAILNOTIFICATION(mensagem, subject); Task obj = new Task(() => { SendSMSNOTIFICATION(sms, contactos); }); obj.Start(); // SendSMSNOTIFICATIONGSM(mensagem, contactos); tentativa.Alertou = true; } } finally { GSMConnection.gsmComm.ReleaseProtocol(); GSMConnection.gsmComm.Close(); if (historico.Resultado != null) { updateObjectsOnDB(historico, tentativa); } UpdateTableContent(); counter = 120; timer = new System.Timers.Timer(); timer.Interval = 1000; timer.Elapsed += new ElapsedEventHandler(OnTimedEvent); timer.Start(); Thread.Sleep(120000); } } else { textBox2.Text = "Monitorização está configurada para correr das 8h até as 20h..."; } } while (running == true); } else { MessageBox.Show("Falhou conexão com o Modem GSM! \n" + "Pf, tente novamente! Se o erro persisitir reinicie a Aplicação/Sonda/Modem."); } }