using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; using System.Data; using Ion.Storage; using System.Threading; namespace Holo.Source.Managers.User { public static class FuserightManager { private static Hashtable Storage; public static void Init(bool Update) { Storage = new Hashtable(); DataTable dTable; using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient()) { dTable = dbClient.getTable("SELECT * FROM system_fuserights"); } foreach (DataRow dbRow in dTable.Rows) { int FuseID = Convert.ToInt32(dbRow["id"]); int UserID = 0; try { UserID = Convert.ToInt32(dbRow["userid"]); } catch { } Fuse FuseObject = new Fuse(Convert.ToString(dbRow["fuseright"]), FuseID, Convert.ToInt32(dbRow["minrank"]), UserID); Storage.Add(FuseID, FuseObject); } if (Update) Thread.CurrentThread.Abort(); } public static void GenerateFuseList(int UserID, ref List FuseList) { FuseList = new List(); try { foreach (Fuse FuseObject in Storage.Values) { if (FuseObject.IsBindedToUser(UserID)) { FuseList.Add(FuseObject.GetFuseData); } } } catch { } } } class Fuse { private int FuseID; private string FuseData; private int Rank; private int UserID; public Fuse(string _FuseData, int _FuseID, int _Rank, int _UserID) { this.FuseID = _FuseID; this.FuseData = _FuseData; this.Rank = _Rank; this.UserID = _UserID; } public string GetFuseData { get { return FuseData; } } public bool IsBindedToUser(int _UserID) { return (_UserID == this.UserID); } } }