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 AssignFavDeckFrom(SolvableDeckViewModel favDeck, DeckViewModel sourceDeck) { if (sourceDeck.Cards.Count == favDeck.Deck.Cards.Count) { favDeck.Deck.Cards.SuspendNotifies(); var cards = new List <TriadCard>(); for (int idx = 0; idx < sourceDeck.Cards.Count; idx++) { var cardProxy = sourceDeck.Cards[idx].CardModel; favDeck.Deck.Cards[idx].CardModel = cardProxy; cards.Add(cardProxy.cardOb); } favDeck.Deck.Cards.ResumeNotifies(); int slotIdx = favDecks.IndexOf(favDeck); var namedDeck = new TriadDeckNamed(new TriadDeck(cards)) { Name = favDeck.Deck.Name }; PlayerSettingsDB.Get().UpdateFavDeck(slotIdx, namedDeck); favDeck.RefreshSolver(gameModel, namedDeck); } }