public static async Task <csgoAccount> getAccountById(int id)
        {
            if (csgo.accountsManager.csgoAccounts.Count == 0)
            {
                csgo.accountsManager.csgoAccounts = await csgo.accountsManager.loadAccounts();
            }
            return(csgo.accountsManager.csgoAccounts.Find(a => a.id == id));

            csgoAccount account = new csgoAccount();
            await databaseManager.selectQuery($"SELECT * FROM csgoaccounts WHERE id = @id LIMIT 1", delegate(DbDataReader reader) {
                account.id            = (int)reader["id"];
                account.username      = (string)reader["username"];
                account.password      = (string)reader["password"];
                account.seller        = (string)reader["seller"];
                account.date          = (DateTime)reader["date"];
                account.status        = (status)(int)reader["status"];
                account.rank          = (int)reader["rank"];
                account.prime         = (bool)reader["prime"];
                account.email         = (string)reader["email"];
                account.emailPassword = (string)reader["emailPassword"];
                account.price         = (decimal)reader["price"];
                account.image         = (string)reader["image"];
                account.hours         = (int)reader["hours"];
                account.wins          = (int)reader["wins"];
                account.description   = (string)reader["description"];
                account.sellerid      = (int)reader["sellerid"];
                account.buyer         = (string)reader["buyer"];
                account.buyerid       = (int)reader["buyerid"];
                account.image         = (string)reader["image"];
                account.disputed      = (bool)reader["disputed"];
                account.ticketId      = (int)reader["ticketId"];
            }).addValue("@id", id).Execute();

            return(account);
        }
        public static async Task <List <csgoAccount> > loadUserAccounts(string username)
        {
            if ((DateTime.Now - lastUpdate).TotalSeconds < 15 && !firstTime)
            {
                return(csgoAccounts.FindAll(account => account.seller == username));
            }

            await databaseManager.selectQuery($"SELECT * FROM csgoaccounts WHERE seller = @seller", delegate(DbDataReader reader) {
                csgoAccount account   = new csgoAccount();
                account.id            = (int)reader["id"];
                account.username      = (string)reader["username"];
                account.password      = (string)reader["password"];
                account.seller        = (string)reader["seller"];
                account.date          = (DateTime)reader["date"];
                account.status        = (status)(int)reader["status"];
                account.rank          = (int)reader["rank"];
                account.prime         = (bool)reader["prime"];
                account.email         = (string)reader["email"];
                account.emailPassword = (string)reader["emailPassword"];
                account.price         = (decimal)reader["price"];
                account.hours         = (int)reader["hours"];
                account.disputed      = (bool)reader["disputed"];
                account.wins          = (int)reader["wins"];
                account.sellerid      = (int)reader["sellerid"];
                account.buyer         = (string)reader["buyer"];
                account.disputed      = (bool)reader["disputed"];
                account.ticketId      = (int)reader["ticketId"];
                account.buyerid       = (int)reader["buyerid"];

                var index = csgoAccounts.FindIndex(a => a.id == account.id);
                if (index != -1)
                {
                    csgoAccounts[index] = account;
                }
                else
                {
                    csgoAccounts.Add(account);
                }
            }).addValue("@seller", username).Execute();

            lastUpdate = DateTime.Now;
            firstTime  = false;

            return(csgoAccounts.FindAll(account => account.seller == username));
        }
        public static async Task addAccount(csgoAccount account)
        {
            await databaseManager.updateQuery($"INSERT INTO csgoaccounts (type, seller, sellerid, username, password, rank, price,prime,email, emailPassword, image, steamid64, description, hours,wins)" +
                                              $"VALUES (@type, @seller," +
                                              $" @sellerid," +
                                              $" @username," +
                                              $" @password," +
                                              $" @rank," +
                                              $" @price," +
                                              $" @prime," +
                                              $" @email ," +
                                              $" @emailPassword," +
                                              $" @image, " +
                                              $" @steamid64, " +
                                              $" @description, " +
                                              $" @hours," +
                                              $" @wins)").
            addValue("@seller", account.seller)
            .addValue("@sellerid", account.sellerid)
            .addValue("@username", account.username)
            .addValue("@password", account.password)
            .addValue("@rank", account.rank)
            .addValue("@price", account.price)
            .addValue("@prime", account.prime)
            .addValue("@email", account.email)
            .addValue("@emailPassword", account.emailPassword)
            .addValue("@image", account.image)
            .addValue("@steamid64", account.steamId64)
            .addValue("@description", account.description)
            .addValue("@hours", account.hours)
            .addValue("@wins", account.wins)
            .addValue("@negativeRates", account.negativeRates)
            .addValue("@positiveRates", account.positiveRates)
            .addValue("@type", (int)account.type)

            .Execute();

            accountsManager.csgoAccounts.Add(account);
        }
        public static async Task addRevokedAccount(csgoAccount account, string reason)
        {
            revokedAccount revokedAccount = new revokedAccount();

            revokedAccount.sellerId = account.sellerid;
            revokedAccount.seller   = account.seller;
            revokedAccount.email    = account.email;
            revokedAccount.username = account.username;
            revokedAccount.date     = DateTime.Now;
            revokedAccount.reason   = reason;

            await databaseManager.updateQuery($"INSERT INTO revokedaccounts (sellerId, seller, username, email, reason)" +
                                              $"VALUES (@sellerId, @seller, @username, @email, @reason )")
            .addValue("@sellerId", account.sellerid)
            .addValue("@seller", account.seller)
            .addValue("@username", account.username)
            .addValue("@email", account.email)
            .addValue("@reason", reason)
            .Execute();

            revokedAccounts.Add(revokedAccount);
            lastUpdateRevoked = DateTime.Now;
        }
        public static async Task <List <csgoAccount> > loadAccounts(bool shop = false, bool admin = false)
        {
            if (admin)
            {
                var temp = new List <csgoAccount> ();
                await databaseManager.selectQuery($"SELECT * FROM csgoaccounts", delegate(DbDataReader reader) {
                    csgoAccount account = new csgoAccount();
                    account.id          = (int)reader["id"];
                    account.username    = (string)reader["username"];
                    account.password    = (string)reader["password"];
                    account.seller      = (string)reader["seller"];
                    account.date        = (DateTime)reader["date"];
                    account.status      = (status)(int)reader["status"];
                    account.rank        = (int)reader["rank"];
                    account.image       = (string)reader["image"];
                    account.prime       = (bool)reader["prime"];
                    account.price       = (decimal)reader["price"];
                    account.sellerid    = (int)reader["sellerid"];
                    account.buyer       = (string)reader["buyer"];
                    account.disputed    = (bool)reader["disputed"];
                    account.ticketId    = (int)reader["ticketId"];
                    account.buyerid     = (int)reader["buyerid"];
                    account.image       = (string)reader["image"];
                    account.steamId64   = (string)reader["steamid64"];
                    account.description = (string)reader["description"];

                    temp.Add(account);
                }).Execute();

                return(temp);
            }
            if ((DateTime.Now - lastUpdate).TotalSeconds < 15 && !firstTime)
            {
                return(csgoAccounts);
            }

            csgoAccounts.Clear();
            await databaseManager.selectQuery($"SELECT * FROM csgoaccounts", delegate(DbDataReader reader) {
                csgoAccount account   = new csgoAccount();
                account.id            = (int)reader["id"];
                account.username      = (string)reader["username"];
                account.password      = (string)reader["password"];
                account.seller        = (string)reader["seller"];
                account.sellerid      = (int)reader["sellerid"];
                account.date          = (DateTime)reader["date"];
                account.status        = (status)(int)reader["status"];
                account.rank          = (int)reader["rank"];
                account.hours         = (int)reader["hours"];
                account.wins          = (int)reader["wins"];
                account.prime         = (bool)reader["prime"];
                account.price         = (decimal)reader["price"];
                account.description   = (string)reader["description"];
                account.image         = (string)reader["image"];
                account.email         = (string)reader["email"];
                account.emailPassword = (string)reader["emailPassword"];
                account.steamId64     = (string)reader["steamid64"];
                account.lastUpdate    = DateTime.Now;
                account.buyer         = (string)reader["buyer"];
                account.buyerid       = (int)reader["buyerid"];
                account.disputed      = (bool)reader["disputed"];
                account.image         = (string)reader["image"];
                account.positiveRates = (int)reader["positiveRates"];
                account.negativeRates = (int)reader["negativeRates"];
                account.gameList      = (string)reader["gameList"];
                account.title         = (string)reader["title"];
                account.type          = (csgo.type)(int) reader["type"];
                account.ticketId      = (int)reader["ticketId"];
                var index             = csgoAccounts.FindIndex(a => a.id == account.id);
                if (index != -1)
                {
                    csgoAccounts[index] = account;
                }
                else
                {
                    csgoAccounts.Add(account);
                }
            }).Execute();

            lastUpdate = DateTime.Now;
            firstTime  = false;

            return(csgoAccounts);
        }