private DataModels.Card getFirstDefaultCard()
        {
            string lastUsedCardIDC = DataModels.Card.getLastUsedIDC();

            DataModels.Card cardToReturn = null;

            foreach (DataModels.Card card in Cards)
            {
                if (card.CardP2PParameters.IsDefaultForTransfers)
                {
                    cardToReturn = card;
                    break;
                }

                if (card.CardP2PParameters.IsDefaultForPurchases)
                {
                    cardToReturn = card;
                    continue;
                }

                if (cardToReturn == null && card.Idc == lastUsedCardIDC)
                {
                    cardToReturn = card;
                }
            }

            return(cardToReturn);
        }
        // Fills the array of cards with the retrieved data
        public void fillObservableCardArray(System.Collections.Generic.List <Business.Network.Cards.Models.Card> cardsList)
        {
            CardMapper cardMapper = new CardMapper();

            Cards = new ObservableCollection <DataModels.Card>();

            foreach (Business.Network.Cards.Models.Card item in cardsList)
            {
                DataModels.Card card = cardMapper.MapFrom(item);
                // For UI Update
                if (!AppServiceParameters.IsWithdrawalMBWayFunctionalityActive && card.CardInhibitionParameters != null)
                {
                    card.CardInhibitionParameters.IsAllowedToWithdrawalMBWAY = false;
                }
                Cards.Add(card);
            }

            if (SelectedIndexCard >= Cards.Count)
            {
                SelectedIndexCard = 0;
            }

            SelectedCard = Cards[SelectedIndexCard];

            checkAndSetAvailableSelectedCard();
        }
        private void checkAndSetAvailableSelectedCard()
        {
            if (StorageUtils.IsStoredFlagActive(StorageUtils.kNotificationApproveTransfer))
            {
                // Has to do 'EnumPushNotificationType.APPROVED_TRANSFER'
                StorageUtils.storeFlagState(StorageUtils.kNotificationApproveTransfer, false);
            }

            if (!SelectedCard.CardP2PParameters.IsDefaultForTransfers)
            {
                DataModels.Card mDefaultCard = getFirstDefaultCard();

                if (mDefaultCard == null)
                {
                    // Default Logic remains the same
                    setSelectedCardToFirstAvailable();
                }
                else
                {
                    SelectedCard      = mDefaultCard;
                    SelectedIndexCard = Cards.IndexOf(SelectedCard);
                }
            }
        }