public override bool Equals(object obj) { DatabaseItem other = obj as DatabaseItem; if (other != null) { return(Record.Equals(other.Record)); } return(base.Equals(obj)); }
public virtual int CompareTo(object obj) { DatabaseItem other = obj as DatabaseItem; if (other != null) { return(Record.CompareTo(other.Record)); } return(0); }
public Dictionary <string, string> MapItemBitmaps(List <string> records) { Dictionary <string, int> bitmapScores = new Dictionary <string, int> { ["bitmap"] = 10, ["relicBitmap"] = 8, ["shardBitmap"] = 6, ["artifactBitmap"] = 4, ["noteBitmap"] = 2, ["artifactFormulaBitmapName"] = 0 }; Dictionary <string, string> recordBitmap = new Dictionary <string, string>(); foreach (string record in records) { recordBitmap[record] = record; } // Grab all the possible bitmaps for each record using (var session = SessionCreator.OpenSession()) { using (ITransaction transaction = session.BeginTransaction()) { DatabaseItemStat stat = null; DatabaseItem P = null; var stats = session.QueryOver <DatabaseItemStat>(() => stat) .JoinAlias(() => stat.Parent, () => P) .Where(m => P.Record.IsIn(records)) .Where(m => m.Stat.IsIn(new string[] { "bitmap", "relicBitmap", "shardBitmap", "artifactBitmap", "noteBitmap", "artifactFormulaBitmapName" })) .List <DatabaseItemStat>(); // Find the best bitmap for each record foreach (string record in records) { var best = stats.Where(m => m.Parent.Record.Equals(record)).OrderByDescending(m => bitmapScores[m.Stat]); if (best.Any()) { recordBitmap[record] = best.First().TextValue; } } } } return(recordBitmap); }