Exemplo n.º 1
0
        public Tentativa FindTentativa(String id)
        {
            Tentativa tent = new Tentativa();
            Expression <Func <Tentativa, bool> > filter = x => x.tentativaID == id;

            tent = conexaoDB.Tentativas.Find(filter).FirstOrDefault();
            return(tent);
        }
Exemplo n.º 2
0
 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!";
     }
 }
Exemplo n.º 3
0
        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;
                }
            }
        }
Exemplo n.º 4
0
        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.");
            }
        }