Ejemplo n.º 1
0
        /// <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);
                }
            }
        }
Ejemplo n.º 2
0
        /// <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);
                }
            }
        }
Ejemplo n.º 3
0
        /// <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);
            }
        }
Ejemplo n.º 4
0
        /// <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);
            }
        }
Ejemplo n.º 5
0
        /// <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);
                }
            }
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
        /// <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);
                }
            }
        }
Ejemplo n.º 8
0
        /// <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);
                }
            }
        }
Ejemplo n.º 9
0
        /// <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!");
                }
            }
        }
Ejemplo n.º 10
0
        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);
            }
        }
Ejemplo n.º 11
0
        /// <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);
            }
        }
Ejemplo n.º 12
0
        /// <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);
            }
        }