/// <summary> /// Procurar por um determinado item dentro do banco de dados /// </summary> /// <param name="itemProcurado">array contendo os valores dos itens a ser procurados</param> /// <param name="tabela">Nome da tabela no banco na qual será feito a busca.</param> /// <param name="coluna">Indexs para a busca.</param> public async Task <bool> VerificarExisteAsync(string[] itemProcurado, string tabela, string[] coluna) { using (MySqlConnection con = new MySqlConnection(await PegarConexaoMySQL.ConexaoAsync())) { try { await con.OpenAsync(); using (MySqlCommand ver = new MySqlCommand($"select count(*) from {tabela} where {coluna[0]} = @a && {coluna[1]} = @b", con)) { _ = ver.Parameters.Add(new MySqlParameter("@a", itemProcurado[0])); _ = ver.Parameters.Add(new MySqlParameter("@b", itemProcurado[1])); byte valid = byte.Parse((await ver.ExecuteScalarAsync()).ToString()); return(valid > 0); } } catch (Exception e) { MetodosConstantes.MostrarExceptions(e); return(false); } } }
/// <summary> /// Adiciona um novo plugin ao banco /// </summary> /// <param name="ID">Codigo do plugin</param> /// <param name="dados">Lista contendo informaçoes a serem adicionadas (Nome, Autor, Versao, Tipo, Preço, Descriçao, Imagem(0, 1)) respectivamente.</param> /// <returns></returns> public async Task <bool> AdicionarDadosAsync(uint ID, List <string> dados) { using (MySqlConnection con = new MySqlConnection(await PegarConexaoMySQL.ConexaoAsync())) { try { await con.OpenAsync(); using (MySqlCommand add = new MySqlCommand("insert into PluginList values (@a, @b, @c, @d, @f, @g, @h, @i)", con)) { _ = add.Parameters.Add(new MySqlParameter("@a", ID)); _ = add.Parameters.Add(new MySqlParameter("@b", dados[0])); _ = add.Parameters.Add(new MySqlParameter("@c", dados[1])); _ = add.Parameters.Add(new MySqlParameter("@d", dados[2])); _ = add.Parameters.Add(new MySqlParameter("@f", dados[3])); _ = add.Parameters.Add(new MySqlParameter("@g", dados[4])); _ = add.Parameters.Add(new MySqlParameter("@h", dados[5])); _ = add.Parameters.Add(new MySqlParameter("@i", dados[6])); _ = await add.ExecuteNonQueryAsync(); return(true); } } catch (MySqlException e) { MetodosConstantes.MostrarExceptions(e); return(false); } } }
/// <summary> /// Atualiza informaçoes do plugin. /// </summary> /// <param name="pluginID">Identificador do plugin que deseja atualizar</param> /// <param name="dados"><see cref="string[]"/> contendo informaçoes do plugin (nome, autor, versao, tipo, preço, descriçao e configImagem) respectivamente.</param> /// <returns>Retorna a tarefa informando se foi concluido ou nao (true, false).</returns> public async Task <bool> AtualizarAsync(string pluginID, List <string> dados) { try { using (MySqlConnection con = new MySqlConnection(await PegarConexaoMySQL.ConexaoAsync())) { await con.OpenAsync(); using (MySqlCommand att = new MySqlCommand(Atualizar, con)) { _ = att.Parameters.Add(new MySqlParameter("@ID", pluginID)); _ = att.Parameters.Add(new MySqlParameter("@a", dados[0])); _ = att.Parameters.Add(new MySqlParameter("@b", dados[1])); _ = att.Parameters.Add(new MySqlParameter("@c", dados[2])); _ = att.Parameters.Add(new MySqlParameter("@d", dados[3])); _ = att.Parameters.Add(new MySqlParameter("@e", dados[4])); _ = att.Parameters.Add(new MySqlParameter("@f", dados[5])); _ = att.Parameters.Add(new MySqlParameter("@g", dados[6])); _ = await att.ExecuteNonQueryAsync(); return(true); } } } catch (Exception e) { MetodosConstantes.MostrarExceptions(e); return(false); } }
/// <summary> /// Remover plugin do banco de dados. /// </summary> /// <param name="pluginID">Codigo do plugin que dejesa apagar.</param> /// <returns>Retorna a tarefa contendo um tupla com os retornos da consulta.</returns> public async Task <(bool @bool, string nomePlugin, bool img)> ApagarAsync(uint pluginID) { try { using (MySqlConnection con = new MySqlConnection(await PegarConexaoMySQL.ConexaoAsync())) { await con.OpenAsync(); using (MySqlCommand rem = new MySqlCommand("select NomePlugin, ImagemPadraoPersonalizada from PluginList where ID = @a; delete from PluginList where ID = @a;", con)) { _ = rem.Parameters.Add(new MySqlParameter("@a", pluginID)); using (MySqlDataReader dataReader = (MySqlDataReader)await rem.ExecuteReaderAsync()) { string nome = null; bool img = false; if (await dataReader.ReadAsync()) { nome = dataReader.GetString(0); img = dataReader.GetBoolean(1); } return(true, nome, img); } } } } catch (Exception e) { MetodosConstantes.MostrarExceptions(e); return(false, null, false); } }
/// <summary> /// Adiciona uma nova licença ao Banco de Dados. /// </summary> /// <param name="user">Codigo do usuario que terá acesso a esse key.</param> /// <param name="pluginCod">codigo do plugin que a licença fará referencia.</param> /// <param name="serverIP">ip do servidor que essa licença será usada..</param> /// <param name="key">string contendo a key desejada!</param> /// <param name="global">true se a licença pode ser usada para todos os plugins.</param> /// <returns>Retorna true se a operaçao foi um sucesso.</returns> public async Task <bool> AdicionarAsync(uint user, uint pluginCod, string serverIP, string key, bool global) { using (MySqlConnection con = new MySqlConnection(await PegarConexaoMySQL.ConexaoAsync())) { try { await con.OpenAsync(); using (MySqlCommand add = new MySqlCommand("insert into LicencaList values (@a, @b, @c, @d, @e, @f, @g, @h)", con)) { _ = add.Parameters.Add(new MySqlParameter("@a", user)); _ = add.Parameters.Add(new MySqlParameter("@b", global ? 0 : pluginCod)); _ = add.Parameters.Add(new MySqlParameter("@c", key)); _ = add.Parameters.Add(new MySqlParameter("@d", global)); _ = add.Parameters.Add(new MySqlParameter("@e", DateTime.Now.ToString("yyyy-MM-dd"))); _ = add.Parameters.Add(new MySqlParameter("@f", DateTime.Now.ToString("HH:mm:ss"))); _ = add.Parameters.Add(new MySqlParameter("@g", false)); _ = add.Parameters.Add(new MySqlParameter("@h", serverIP)); _ = await add.ExecuteNonQueryAsync(); return(true); } } catch (MySqlException erro) { MetodosConstantes.MostrarExceptions(erro); return(false); } } }
private async Task <List <string> > PegarVazio() { try { using (var con = new MySqlConnection(await PegarConexaoMySQL.ConexaoAsync())) { await con.OpenAsync(); using (var get = new MySqlCommand("select LicencaKey from LicencaList", con)) { using (var reader = (MySqlDataReader)await get.ExecuteReaderAsync()) { var dados = new List <string>(); using (var data = new DataTable()) { data.Load(reader); foreach (DataRow row in data.Rows) { dados.Add(row["LicencaKey"].ToString()); } } return(dados); } } } } catch (Exception e) { MetodosConstantes.MostrarExceptions(e); return(null); } }
/// <summary> /// Pega as informaçoes de todos plugins e guarda na propriedade <see cref="DataTable"/> /// </summary> /// <param name="dataGrid">se true, adiciona tabela na propriedade <see cref="DataTable"/>. senao, adiciona informaçoes de um determinado plugin na propriedade <see cref="TooltipInfo"/>.</param> /// <param name="itemProcurarID">se dataGrid for false, deve informar o codigo do plugin para ser informado. senao, <see cref="Nullable"/></param> /// <returns>Retorna o resultado da tarefa em bool.</returns> public async Task <bool> InformacoesAsync(bool dataGrid, string itemProcurarID) { using (MySqlConnection con = new MySqlConnection(await PegarConexaoMySQL.ConexaoAsync())) { try { await con.OpenAsync(); using (MySqlCommand get = new MySqlCommand(CmdText2, con)) { if (dataGrid) { using (MySqlDataAdapter mySqlData = new MySqlDataAdapter()) { mySqlData.SelectCommand = get; DataTable dataTable = new DataTable(); _ = await mySqlData.FillAsync(dataTable); DataTable = dataTable; NomeColunas(); using (MySqlCommand num = new MySqlCommand(CmdText3, con)) { MetodosConstantes.EnviarMenssagem(@var.Parse((await num.ExecuteScalarAsync()).ToString()) + " Plugins encontrados!"); } return(true); } } else { TooltipInfo = new List <string>(); get.CommandText = $"{CmdText2} where ID = @ID"; _ = get.Parameters.Add(new MySqlParameter("@ID", itemProcurarID)); using (MySqlDataReader a = (MySqlDataReader)await get.ExecuteReaderAsync()) { if (await a.ReadAsync()) { for (byte i = 1; i <= 4; i++) { TooltipInfo.Add(a.GetString(i)); } } return(true); } } } } catch (Exception e) { MetodosConstantes.MostrarExceptions(e); return(false); } } }
/// <summary> /// Pega informaçoes de um determinado plugin e guarda na propriedade <see cref="DataTable"/>. /// </summary> /// <param name="itemProcurar">Index (ID ou Nome do plugin) do plugin que deseja as informaçoes.</param> /// <param name="messageReturn">true, se deseja informar informar a mensagem no canto da tela mostrando a quantidade de resultados encontrados.</param> /// <returns>Retorna o resultado da tarefa em bool.</returns> public async Task <bool> InformacoesAsync(string itemProcurar, bool messageReturn) { using (MySqlConnection con = new MySqlConnection(await PegarConexaoMySQL.ConexaoAsync())) { try { await con.OpenAsync(); using (MySqlCommand get = new MySqlCommand(CmdText, con)) { _ = get.Parameters.Add(new MySqlParameter("@a", "%" + itemProcurar + "%")); using (MySqlDataAdapter mySqlData = new MySqlDataAdapter()) { mySqlData.SelectCommand = get; DataTable dataTable = new DataTable(); _ = await mySqlData.FillAsync(dataTable); DataTable = dataTable; NomeColunas(); using (MySqlCommand num = new MySqlCommand(CmdText1, con)) { _ = num.Parameters.Add(new MySqlParameter("@a", "%" + itemProcurar + "%")); string qtd = (await num.ExecuteScalarAsync()).ToString(); if (qtd == "0") { return(false); } if (messageReturn) { MetodosConstantes.EnviarMenssagem(@var.Parse(qtd) + " Plugins encontrados!"); } } return(true); } } } catch (Exception e) { MetodosConstantes.MostrarExceptions(e); return(false); } } }
/// <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 <List <string> > PegarParam(string @ref, string dataPesquisar) { try { using (var con = new MySqlConnection(await PegarConexaoMySQL.ConexaoAsync())) { await con.OpenAsync(); using (var get = new MySqlCommand($"select * from LicencaList where (LicencaKey = @a || ClienteID = @a || IPPermitido = @a) {(dataPesquisar != null ? "&& DataCriacao = @b" : string.Empty)}", con)) { _ = get.Parameters.Add(new MySqlParameter("@a", @ref)); if (dataPesquisar != null) { _ = get.Parameters.Add(new MySqlParameter("@b", dataPesquisar)); } using (var dataReader = (MySqlDataReader)await get.ExecuteReaderAsync()) { var dados = new List <string>(); if (await dataReader.ReadAsync()) { for (byte i = 0; i < dataReader.FieldCount; i++) { dados.Add(dataReader.GetString(i)); } } return(dados); } } } } catch (Exception e) { MetodosConstantes.MostrarExceptions(e); return(null); } }
/// <summary> /// Da suporte a suspensao da licença no banco. /// </summary> /// <param name="suspender">true para suspender a licença, false para apenas fazer a checagem no banco.</param> /// <param name="lic">A key da licença que deseja suspender.</param> /// <param name="valor">true para suspender a licença, false para realoca-la</param> /// <returns>Retorna a tarefa com bool informando se ouve ou nao sucesso na operaçao.</returns> public async Task <bool> SuspensoAsync(bool suspender, string lic, bool valor) { try { using (MySqlConnection con = new MySqlConnection(await PegarConexaoMySQL.ConexaoAsync())) { await con.OpenAsync(); string query = !suspender ? QueryChecar : QuerySuspender; using (MySqlCommand ver = new MySqlCommand(query, con)) { _ = ver.Parameters.Add(new MySqlParameter("@a", lic)); if (suspender) { _ = ver.Parameters.Add(new MySqlParameter("@b", valor)); } using (var reader = (MySqlDataReader)await ver.ExecuteReaderAsync()) { bool retorno = false; if (await reader.ReadAsync()) { retorno = reader.GetBoolean(0); } return(retorno); } } } } catch (Exception e) { MetodosConstantes.MostrarExceptions(e); return(false); } }
/// <summary> /// Remover uma licença do banco de dados. /// </summary> /// <param name="lic">A key da licença que deseja remover.</param> /// <returns>Retorna a tarefa com bool informando se ouve ou nao sucesso na operaçao.</returns> public async Task <bool> ApagarAsync(string lic) { try { using (MySqlConnection con = new MySqlConnection(await PegarConexaoMySQL.ConexaoAsync())) { await con.OpenAsync(); using (MySqlCommand rem = new MySqlCommand("delete from LicencaList where binary LicencaKey = @a;", con)) { _ = rem.Parameters.Add(new MySqlParameter("@a", lic)); _ = await rem.ExecuteNonQueryAsync(); return(true); } } } catch (Exception e) { MetodosConstantes.MostrarExceptions(e); return(false); } }