private void CommandFavEditFunc(SolvableDeckViewModel favDeck) { var deckVM = new DeckViewModel() { Name = favDeck.Deck.Name }; foreach (var card in favDeck.Deck.Cards) { deckVM.Cards.Add(new CardViewModel() { CardModel = card.CardModel }); } var editVM = new FavDeckEditViewModel() { FavDeck = deckVM }; var result = ViewModelServices.DialogWindow.ShowDialog(editVM); if (result ?? false) { favDeck.Deck.Name = deckVM.Name; AssignFavDeckFrom(favDeck, deckVM); } }
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); } }