/// <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); }
/// <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); }
/// <summary> /// Generates a new <see cref="BanComparer"/> using the given <see cref="BanSortMethod"/> /// </summary> /// <param name="method"></param> public BanComparer(BanSortMethod method) { _method = method; }