示例#1
0
        public override bool Equals(object obj)
        {
            DatabaseItem other = obj as DatabaseItem;

            if (other != null)
            {
                return(Record.Equals(other.Record));
            }

            return(base.Equals(obj));
        }
示例#2
0
        public virtual int CompareTo(object obj)
        {
            DatabaseItem other = obj as DatabaseItem;

            if (other != null)
            {
                return(Record.CompareTo(other.Record));
            }

            return(0);
        }
示例#3
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);
        }