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); }
protected void inicializar() { Session.Remove("tentativa"); if (Session["tentativa"] == null) { Tentativa tentativa = new Tentativa(); tentativa.NTentativa = 0; Session["tentativa"] = tentativa; } }
private void updateObjectsOnDB(Historico historico, Tentativa tentativa) { historico.Output = output; try { conexaoDB.Historicos.InsertOne(historico); Expression <Func <Tentativa, bool> > filtro = x => x.tentativaID == "VODACOM"; 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!"; } }
public async Task <IActionResult> NovaTentativaAsync(Tentativa tentativa) { if (ModelState.IsValid) { tentativa.IniciarTentativa(); Repositorio.AddTentativa(tentativa); HttpClient client = MyHttpClient.Client; string path = "/api/NewGame"; NewGameRequest newGameRequest = new NewGameRequest(tentativa.Nickname, tentativa.Classe); string json = JsonConvert.SerializeObject(newGameRequest); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, path); request.Content = new StringContent(json, System.Text.Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.SendAsync(request); if (!response.IsSuccessStatusCode) { return(Redirect("/")); } string json_r = await response.Content.ReadAsStringAsync(); GameState gs = JsonConvert.DeserializeObject <GameState>(json_r); tentativa.AtualizarDados(gs); return(View("AreaDeJogo", tentativa)); } else { return(View("NovaTentativa")); } }
protected void btnLogar_Click(object sender, EventArgs e) { lblInicio.Visible = false; Tentativa tentativa = (Tentativa)Session["tentativa"]; ValueObjectLayer.Usuario usuario = null; if (tentativa.NTentativa == 0) { tentativa.Login = txtLogin.Text; } if (tentativa.Login != null) { if (!tentativa.Login.Equals(txtLogin.Text)) { inicializar(); tentativa = (Tentativa)Session["tentativa"]; tentativa.Login = txtLogin.Text; } } if (!UsuarioFacade.RecuperarUsuarioBloqueado(txtLogin.Text, txtSenha.Text)) { usuario = UsuarioFacade.Logar(txtLogin.Text, txtSenha.Text); if (usuario != null) { IList <ValueObjectLayer.CarregarPerfil> perfisUsuario = PerfilFacade.RecuperarPerfilUsuario(usuario.Id, ValueObjectLayer.TipoBuscaPerfil.RecuperaTodasPermissoesPerfil); IList <ValueObjectLayer.CarregarPerfil> perfisPermissao = PerfilFacade.RecuperarPerfilUsuario(usuario.Id, ValueObjectLayer.TipoBuscaPerfil.RecuperaPermissoes); ValueObjectLayer.Perfil_Usuario perfilUsuario = PerfilFacade.RecuperarPerfilPorId(usuario.Id); if (perfilUsuario != null) { IList <ValueObjectLayer.Modulo> modulos = ModuloFacade.RecuperaModulosdoPerfil(perfilUsuario._Perfil.Id); Session["UsuarioLogado"] = usuario; Session["Modulos"] = modulos; Session["PerfilFuncionalidades"] = perfisUsuario; Session["PerfilPermissao"] = perfisPermissao; //RegisterHyperLink.NavigateUrl = "Principal.aspx?ReturnUrl=" + HttpUtility.UrlEncode(Request.QueryString["ReturnUrl"]); Session.Remove("tentativa"); Response.Redirect(@"~/Principal.aspx"); } else { lblMsg.Text = MensagensValor.GetStringValue(Mensagem.USUARIO_SEM_PERFIL.ToString()); } } else { lblMsg.Text = MensagensValor.GetStringValue(Mensagem.LOGIN_INVALIDO.ToString()); tentativa.NTentativa++; Session["tentativa"] = tentativa; if (tentativa.NTentativa > 2) { usuario = UsuarioFacade.RecuperarPorLogin(txtLogin.Text); if (usuario != null) { UsuarioFacade.BloquearUsuario(usuario); lblMsg.Text = MensagensValor.GetStringValue(Mensagem.TENTATIVA_LOGIN_EXCEDIDA.ToString()); inicializar(); } else { inicializar(); } } } } else { lblMsg.Text = MensagensValor.GetStringValue(Mensagem.BLOQUEADO.ToString()); } }
public async Task <IActionResult> NovaTentativaAutonomaAsync(Tentativa tentativa) { tentativa.IniciarTentativa(); Repositorio.AddTentativa(tentativa); HttpClient client = MyHttpClient.Client; string path = "/api/NewGame"; NewGameRequest newGameRequest = new NewGameRequest(tentativa.Nickname, tentativa.Classe); string json = JsonConvert.SerializeObject(newGameRequest); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, path); request.Content = new StringContent(json, System.Text.Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.SendAsync(request); if (!response.IsSuccessStatusCode) { return(Redirect("/")); } string json_r = await response.Content.ReadAsStringAsync(); GameState gs = JsonConvert.DeserializeObject <GameState>(json_r); tentativa.AtualizarDados(gs); while (!tentativa.JogoFinalizado && gs.RoundNumber < 50) { tentativa.ExecutarAlgoritmo(); if ((tentativa.Nickname == "auto3" && gs.RoundNumber >= 3) || (tentativa.Nickname == "auto7" && gs.RoundNumber >= 7)) { tentativa.Acao = Playeraction.Quit; tentativa.FinalizarTentativa(); } path = "/api/Play"; PlayRequest playRequest = new PlayRequest(tentativa.Id, tentativa.Acao); json = JsonConvert.SerializeObject(playRequest); request = new HttpRequestMessage(HttpMethod.Post, path); request.Content = new StringContent(json, System.Text.Encoding.UTF8, "application/json"); response = await client.SendAsync(request); if (!response.IsSuccessStatusCode) { return(Redirect("/")); } json_r = await response.Content.ReadAsStringAsync(); gs = JsonConvert.DeserializeObject <GameState>(json_r); if (tentativa.Acao != Playeraction.Quit) { tentativa.AtualizarDados(gs); tentativa.ExecutarAcao(); } RoundSummary rs = new RoundSummary(); rs.AtualizarDados(tentativa.Acao, tentativa.Posicao, tentativa.InimigosDerrotados, tentativa.InimigosFintados, tentativa.ContadorItensEncontrados, tentativa.ChaveNoBolso, tentativa.PontosDeVida, tentativa.PontosDeForca, tentativa.PontosDeSorte, tentativa.PocoesDeVida, tentativa.Resultado, tentativa.Ronda); tentativa.FinalizarRonda(rs); } return(View("JogoFinalizadoAutonomo", tentativa)); }
public async Task <IActionResult> AreaDeJogo(int id, string button) { Tentativa tentativa = Repositorio.ObterTentativa(id); HttpClient client = MyHttpClient.Client; string path = "/api/Play"; Playeraction acao = Playeraction.GoForward; switch (button) { case "Atacar": acao = Playeraction.Attack; break; case "Recuar": acao = Playeraction.GoBack; break; case "Examinar": acao = Playeraction.SearchArea; break; case "Fugir": acao = Playeraction.Flee; break; case "Poção": acao = Playeraction.DrinkPotion; break; case "Desistir": { acao = Playeraction.Quit; tentativa.FinalizarTentativa(); break; } } PlayRequest playRequest = new PlayRequest(id, acao); string json = JsonConvert.SerializeObject(playRequest); HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, path); request.Content = new StringContent(json, System.Text.Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.SendAsync(request); if (!response.IsSuccessStatusCode) { return(Redirect("/")); } string json_r = await response.Content.ReadAsStringAsync(); GameState gs = JsonConvert.DeserializeObject <GameState>(json_r); if (button != "Desistir") { tentativa.AtualizarDados(gs); tentativa.ExecutarAcao(); } if (tentativa.JogoFinalizado) { ModeloDeHiscores modeloDeHiscores = new ModeloDeHiscores(tentativa.Nickname, tentativa.MoedasDeOuro, tentativa.Resultado, tentativa.ChaveNoBolso, tentativa.InimigosDerrotados, tentativa.InimigosFintados, tentativa.ContadorPesquisas, tentativa.ContadorItensEncontrados, tentativa.PocoesUsadas, tentativa.PocoesTotais); Repositorio.AddHiscores(modeloDeHiscores); return(View("JogoFinalizado", tentativa)); } else { return(View(tentativa)); } }
private void tryUSSDCommands(Historico historico, Tentativa tentativa) { //Passo 1 GSMConnection.protocol = GSMConnection.gsmComm.GetProtocol(); string request = "*111#"; output = "*111#\n "; textBox1.Text = output; textBox2.Text = "Chamando ... *111#"; 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 = "8" + char.ConvertFromUtf32(26); textBox2.Text = "Selecionando opção... 8"; output += "8\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 = "3" + char.ConvertFromUtf32(26); textBox2.Text = "Selecionando opção... 3"; output += "3\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 4 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 VODACOM 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 VODACOM ja esta disponivel. \nCmpts"; String subject = "ALERTA - Disponibilidade Serviço IZI USSD VODACOM (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.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 == 3) { tentativa.Nr = 0; String mensagem = "Atenção.\nA sonda IZI USSD VODACOM registou três (3) 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 VODACOM registou três (3) falhas consecutivas nos testes. \nCmpts"; String subject = "ALERTA - Indisponibilidade Serviço IZI USSD VODACOM (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 == 3) { tentativa.Nr = 0; String mensagem = "Atenção.\nA sonda IZI USSD VODACOM registou três (3) 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 VODACOM registou três (3) falhas consecutivas nos testes. \nCmpts"; String subject = "ALERTA - Indisponibilidade Serviço IZI USSD VODACOM (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 == 3) { tentativa.Nr = 0; String mensagem = "Anteção: Indisponibilidade.\nA sonda IZI USSD VODACOM registou três (3) 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 VODACOM registou três (3) falhas consecutivas nos testes. \nCmpts"; String subject = "ALERTA - Indisponibilidade Serviço IZI USSD VODACOM (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 == 3) { tentativa.Nr = 0; String mensagem = "Anteção: Indisponibilidade.\nA sonda IZI USSD VODACOM registou três (3) 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 VODACOM registou três (3) falhas consecutivas nos testes. \nCmpts"; String subject = "ALERTA - Indisponibilidade Serviço IZI USSD VODACOM (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; } } }
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("VODACOM"); 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 = "VODACOM"; 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 == 3) { tentativa.Nr = 0; String mensagem = "Atenção.\nA sonda IZI USSD VODACOM registou três (3) 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 VODACOM registou três (3) falhas consecutivas nos testes. \nCmpts"; String subject = "ALERTA - Indisponibilidade Serviço IZI USSD VODACOM (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."); } }