Пример #1
0
        /// <summary>
        /// Retrieves an enumerable of <see cref="Ban"/>s from the database, sorted using the provided sort method
        /// </summary>
        /// <param name="sortMethod"></param>
        /// <returns></returns>
        public IEnumerable <Ban> RetrieveAllBansSorted(BanSortMethod sortMethod)
        {
            List <Ban> banlist = new List <Ban>();

            try
            {
                var orderBy = SortToOrderByMap[sortMethod];
                using (var reader = database.QueryReader($"SELECT * FROM PlayerBans ORDER BY {orderBy}"))
                {
                    while (reader.Read())
                    {
                        var ticketNumber = reader.Get <int>("TicketNumber");
                        var identifier   = reader.Get <string>("Identifier");
                        var reason       = reader.Get <string>("Reason");
                        var banningUser  = reader.Get <string>("BanningUser");
                        var date         = reader.Get <long>("Date");
                        var expiration   = reader.Get <long>("Expiration");

                        var ban = new Ban(ticketNumber, identifier, reason, banningUser, date, expiration);
                        banlist.Add(ban);
                    }
                }
            }
            catch (Exception ex)
            {
                TShock.Log.Error(ex.ToString());
                Console.WriteLine(ex.StackTrace);
            }

            return(banlist);
        }
Пример #2
0
        /// <summary>
        /// Retrieves an enumerable of <see cref="Ban"/> objects, sorted using the provided sort method
        /// </summary>
        /// <param name="sortMethod"></param>
        /// <returns></returns>
        public IEnumerable <Ban> GetSortedBans(BanSortMethod sortMethod)
        {
            List <Ban> banlist = new List <Ban>();

            try
            {
                using (var reader = database.QueryReader("SELECT * FROM Bans"))
                {
                    while (reader.Read())
                    {
                        banlist.Add(new Ban(reader.Get <string>("IP"), reader.Get <string>("Name"), reader.Get <string>("UUID"), reader.Get <string>("Reason"), reader.Get <string>("BanningUser"), reader.Get <string>("Date"), reader.Get <string>("Expiration")));
                    }

                    banlist.Sort(new BanComparer(sortMethod));
                    return(banlist);
                }
            }
            catch (Exception ex)
            {
                TShock.Log.Error(ex.ToString());
                Console.WriteLine(ex.StackTrace);
            }
            return(null);
        }
Пример #3
0
 /// <summary>
 /// Generates a new <see cref="BanComparer"/> using the given <see cref="BanSortMethod"/>
 /// </summary>
 /// <param name="method"></param>
 public BanComparer(BanSortMethod method)
 {
     _method = method;
 }