/// <summary>
 /// Removes the potentialCard from the PotentialOCTGNCards Collection
 /// </summary>
 /// <param name="potentialCard">The ConverterCard to remove from the PotentialOCTGNCards Collection</param>
 /// <returns>True if removed, false if not</returns>
 public bool RemovePotentialOCTGNCard(ConverterCard potentialCard)
 {
     return this._PotentialOCTGNCards.Remove(potentialCard);
 }
        /// <summary>
        /// Sets the SelectedOCTGNCard to the ConverterCard with the highest Multiverse ID
        /// </summary>
        public void AutoSelectPotentialOCTGNCard()
        {
            if (this.PotentialOCTGNCards.Count == 0)
            {
                this.SelectedOCTGNCard = null;
            }
            else
            {
                ConverterCard maxMultiverseIDCard = this.PotentialOCTGNCards.First();
                foreach (ConverterCard cc in this.PotentialOCTGNCards)
                {
                    if (cc.MultiverseID > maxMultiverseIDCard.MultiverseID)
                    {
                        maxMultiverseIDCard = cc;
                    }
                }

                this.SelectedOCTGNCard = maxMultiverseIDCard;
            }
        }
 /// <summary>
 /// Sets the MouseOver ConverterCard on the ViewModel based on mouse events
 /// </summary>
 /// <param name="converterCard">The ConverterCard the mouse is hovering over.  If null, then mouse is not hovering over any.</param>
 private void MouseOverConverterCard(ConverterCard converterCard)
 {
     ViewModel.WizardPage_CompareCards wizardPageCompareCards = this.DataContext as ViewModel.WizardPage_CompareCards;
     if (wizardPageCompareCards != null)
     {
         wizardPageCompareCards.MouseOverConverterCard = converterCard;
     }
 }
        /// <summary>
        /// Adds the potentialCard to the PotentialOCTGNCards Collection in MultiverseID order.
        /// </summary>
        /// <param name="potentialCard">The ConverterCard to add to the PotentialOCTGNCards Collection</param>
        /// <returns>True if added, false if not</returns>
        public bool AddPotentialOCTGNCard(ConverterCard potentialCard)
        {
            if (potentialCard == null)
            {
                throw new ArgumentNullException();
            }

            if (this._PotentialOCTGNCards.Contains(potentialCard))
            { 
                return false; 
            }

            if (this._PotentialOCTGNCards.Count == 0)
            {
                // Add it since it is the only item
                this._PotentialOCTGNCards.Add(potentialCard);
            }
            else if (this._PotentialOCTGNCards.Last().MultiverseID > potentialCard.MultiverseID)
            {
                // Add it at the end
                this._PotentialOCTGNCards.Add(potentialCard);
            }
            else
            {
                int index = 0;
                for (int i = 0; i < this._PotentialOCTGNCards.Count; i++)
                {
                    if (this._PotentialOCTGNCards[i].MultiverseID > potentialCard.MultiverseID)
                    { 
                        break; 
                    }
                    else
                    { 
                        index = i; 
                    }
                }

                this._PotentialOCTGNCards.Insert(index, potentialCard);
            }

            return true;
        }
        /// <summary>
        /// Creates a new ConverterCard with the given parameters and adds it to it's ConverterCards List
        /// </summary>
        /// <param name="cardID">Octgn Guid of the Card</param>
        /// <param name="name">Octgn Name of the Card</param>
        /// <param name="multiverseID">WoTC Multiverse ID</param>
        internal void AddNewConverterCard(Guid cardID, string name, int multiverseID)
        {
            ConverterCard newConverterCard = new ConverterCard(cardID, name, this.OctgnSet.Name, multiverseID);
            this._ConverterCards.Add(newConverterCard);

            if 
            (
                this._MaxMultiverseIDCard == null ||
                newConverterCard.MultiverseID > this._MaxMultiverseIDCard.MultiverseID
            )
            {
                this._MaxMultiverseIDCard = newConverterCard;
            }
        }