private async void Button_Click(object sender, RoutedEventArgs e) { if (!string.IsNullOrEmpty(PluginID_txt.Text)) { if (!plugins.Contains(PluginID_txt.Text)) { if (await new Utils().VerificarExisteAsync(PluginID_txt.Text, "PluginList", "ID")) { //criando Chip dinamicamente PluginInfo p = new PluginInfo(); _ = await p.InformacoesAsync(false, PluginID_txt.Text); StackPanel st = new StackPanel { Orientation = Orientation.Vertical }; foreach (string item in p.TooltipInfo) { _ = st.Children.Add(new TextBlock() { Text = item }); } Chip newChip = new Chip { Cursor = Cursors.Arrow, Content = PluginID_txt.Text, ToolTip = st, IsDeletable = true, DeleteToolTip = "Remover", Margin = new Thickness(2) }; //setando tempo que o tooltip ficará visivel! ToolTipService.SetShowDuration(newChip, 100000); //gerando metodo do botao de remover o chip newChip.DeleteClick += NewChip_DeleteClick; //adicionando o chip no WrapPanel _ = ListChips_wp.Children.Add(newChip); //adicionando ID do plugin em uma List<> para poder saber quais plugins ja foram adicionados! plugins.Add(PluginID_txt.Text); //variavel contadora de plugins adicionados byte i = 1; if (ContarPluginAdd_bg.Badge != null) { i = Convert.ToByte(ContarPluginAdd_bg.Badge); i++; } ContarPluginAdd_bg.Badge = i; PluginID_txt.Clear(); } else { TelaInicial.EnviarMensagemDialogHostAsync("Plugin informado nao existe!"); } } else { TelaInicial.EnviarMensagemDialogHostAsync("Este plugin ja foi adicionado na lista!"); } } }
/// <summary> /// Mostra as informaçoes da exception disparada. /// </summary> /// <param name="e">A exception</param> public static void MostrarExceptions(Exception e) { //Tipo: qual exception que foi disparada, lembrando que 'FullName' pega a namespace tbm //Erro: mostra a mensagem do erro //Informaçoes: mostra as informaçoes gerais do erro //Metodo: deveria mostrar o metodo onde a exceçao foi disparada, mas eu to com preguiça de estudar esse troço ai //Linha: troço dificil do cao, passei horas tentando achar um jeito, e nao deu muito certo '-' string MensagemErro = $"Tipo: {e.GetType().FullName}\n\nErro: {e.Message}\n\nInformaçoes: {e.StackTrace}"; /*\n\nMetodo: {e.StackTrace}\n\nLinha: {new StackTrace().GetFrame(0).GetFileLineNumber()}*/ //enviando mensagem com o erro TelaInicial.EnviarMensagemDialogHostAsync(MensagemErro); }
/// <summary> /// Cria as tabelas no banco de dados caso elas nao existam. (PluginList e LicenceList). /// </summary> /// <returns>Retorna a conclusao da tarefa</returns> public async Task CriarAsync() { using (MySqlConnection con = new MySqlConnection(await PegarConexaoMySQL.ConexaoAsync())) { try { await con.OpenAsync(); using (MySqlCommand createTable = new MySqlCommand(query, con)) { _ = await createTable.ExecuteNonQueryAsync(); } } catch (Exception) { TelaInicial.EnviarMensagemDialogHostAsync("Nao foi possível gerar a tabela no mysql\nSe for sua primeira inicializaçao, por favor, insira as credenciais na configuraçao\ne selecione o tipo de banco 'Local/Externo'\n\nDepois reinicie o software!"); } } }
private async Task VerificarEAdicionarAsync() { if (string.IsNullOrEmpty(LicencaGerada_txt.Text)) { TelaInicial.EnviarMensagemDialogHostAsync("Voce precisa gerar uma licença primeiro!"); return; } if (string.IsNullOrEmpty(ServidorIP_txt.Text)) { TelaInicial.EnviarMensagemDialogHostAsync("Voce precisa informar o ip do servidor!"); return; } bool keyGlobal = LicencaGlobal_tb.IsChecked == true; if (VerificarCodigoValido(CodigoPlugin_txt.Text) || keyGlobal) { if (!await LicencaExisteAsync()) { if (await CodigoExisteOuLicencaIsGlobal(keyGlobal)) { await GerarIDAndAdicionarLicencaAsync(keyGlobal, keyGlobal? 0 : PluginIDValue()); } else { TelaInicial.EnviarMensagemDialogHostAsync("ERRO: Plugin informado nao existe!"); } } else { TelaInicial.EnviarMensagemDialogHostAsync("ERRO: Está licença ja existe\nClique no botao para gerar outra licença!"); } } else { TelaInicial.EnviarMensagemDialogHostAsync("Codigo do plugin informado é inválido!"); } }