コード例 #1
0
        public void LoadSet(string SetCode)
        {
            var existingSet = setListView.Objects.Cast <OLVSetItem>().FirstOrDefault(x => x.CardSet.Code == SetCode);
            var selectedSet = setListView.SelectedObject as OLVSetItem;

            if (existingSet != null)
            {
                var existingCards = cardListView.Objects.Cast <OLVCardItem>().Where(x => x.MagicCard.SetCode == SetCode).ToArray();
                foreach (var card in existingCards)
                {
                    Globals.Collections.MagicCardCache.Remove(card.MagicCard.uuid);
                }
                setListView.RemoveObject(existingSet);
                cardListView.RemoveObjects(existingCards);
            }
            using (var context = new MyDbContext())
            {
                var dbSet = (from s in context.Sets
                             where s.Code == SetCode
                             select s).FirstOrDefault();
                if (dbSet != null)
                {
                    var set   = new OLVSetItem(dbSet);
                    var cards = from c in context.Catalog
                                where c.SetCode == SetCode
                                orderby new AlphaNumericString(c.number), c.name
                    select c;

                    foreach (var card in cards)
                    {
                        card.DisplayName = card.name;
                        set.AddCard(card);
                    }

                    set.CollapseParts();
                    set.BuildRarityItems();
                    setListView.AddObject(set);
                    cardListView.AddObjects(set.Cards);
                    foreach (var card in set.Cards)
                    {
                        Globals.Collections.MagicCardCache.Add(card.MagicCard.uuid, card.MagicCard);
                    }
                    if (setListView.Objects.Count() == 1) // first set added, must sort the tree
                    {
                        setListView.Sort(setListView.AllColumns[1], SortOrder.Descending);
                    }
                    SetItems.Add(set);
                }
            }
            if (selectedSet != null)
            {
                setListView.SelectedObject = setListView.Objects.Cast <OLVSetItem>().FirstOrDefault(x => x.CardSet.Code == selectedSet.CardSet.Code);
            }
        }
コード例 #2
0
        public void LoadSets()
        {
            setListView.CanExpandGetter = x => x is OLVSetItem;
            setListView.ChildrenGetter  = x => (x as OLVSetItem).Rarities;
            var renderer = setListView.TreeColumnRenderer;

            renderer.IsShowLines  = false;
            renderer.UseTriangles = true;
            sets = new Dictionary <string, OLVSetItem>();
            using (var context = new MyDbContext())
            {
                var dbSets = from s in context.Sets
                             orderby s.Name
                             select s;
                var cards = from c in context.Catalog
                            orderby c.Edition, new AlphaNumericString(c.number), c.name
                select c;

                foreach (var card in cards)
                {
                    card.DisplayName = card.name;
                    if (!sets.TryGetValue(card.Edition, out OLVSetItem set))
                    {
                        set = new OLVSetItem(dbSets.FirstOrDefault(x => x.Name == card.Edition));
                        sets.Add(card.Edition, set);
                    }
                    set.AddCard(card);
                    Globals.Collections.MagicCardCache.Add(card.uuid, card);
                }
            }
            CollapseParts(sets);
            foreach (var set in sets.Values)
            {
                set.BuildRarityItems();
            }
            SetItems.AddRange(sets.Values);
        }