public void Initialize()
        {
            var settingsDB   = PlayerSettingsDB.Get();
            var modelProxyDB = ModelProxyDB.Get();

            favDecks.SuspendNotifies();

            foreach (var favDeckOb in settingsDB.favDecks)
            {
                var deck = new CardCollectionViewModel()
                {
                    Name = favDeckOb.Name
                };
                foreach (var cardOb in favDeckOb.knownCards)
                {
                    var cardVM = new CardViewModel()
                    {
                        CardModel = modelProxyDB.GetCardProxy(cardOb)
                    };
                    deck.Cards.Add(cardVM);
                }

                var favDeck = new SolvableDeckViewModel()
                {
                    Deck = deck
                };
                favDecks.Add(favDeck);

                favDeck.RefreshSolver(gameModel, favDeckOb);
            }

            favDecks.ResumeNotifies();
        }
        private void CommandFavCreateFunc(object dummyParam)
        {
            var deck = new CardCollectionViewModel();

            for (int idx = 1; idx < 10000; idx++)
            {
                deck.Name = string.Format(loc.strings.FavDeckForm_Dynamic_AutoName, idx);

                bool foundMatch = false;
                foreach (var testFav in favDecks)
                {
                    foundMatch = testFav.Deck.Name == deck.Name;
                    if (foundMatch)
                    {
                        break;
                    }
                }

                if (!foundMatch)
                {
                    break;
                }
            }

            for (int idx = 0; idx < activeDeck.Cards.Count; idx++)
            {
                deck.Cards.Add(new CardViewModel());
            }

            var favDeck = new SolvableDeckViewModel()
            {
                Deck = deck
            };

            favDecks.Add(favDeck);

            AssignFavDeckFrom(favDeck, activeDeck);
        }