private void SetState()
 {
     switch (CurrentShowingSideIndex)
     {
         case 0:
             if (Settings.ShowPinyin)
             {
                 state = FlashCardStateEnum.Pinyin;
                 VisibleSideText = SetCards[CurrentCardIndex].AccentedPinyin;
             }
             else
             {
                 CurrentShowingSideIndex++;
             }
             break;
         case 1:
             if (Settings.ShowDefinition)
             {
                 state = FlashCardStateEnum.English;
                 VisibleSideText = SetCards[CurrentCardIndex].Definition;
             }
             else
             {
                 CurrentShowingSideIndex++;
             }
             break;
         default:
             if (Settings.CanShowCharacters)
             {
                 state = FlashCardStateEnum.Chinese;
                 if (Settings.ShowSimplified)
                 {
                     VisibleSideText = SetCards[CurrentCardIndex].Simplified;
                 }
                 if (Settings.ShowTraditional) //todo:better formatting of this string
                 {
                     if (Settings.ShowSimplified)
                     {
                         VisibleSideText = VisibleSideText + " " + SetCards[CurrentCardIndex].Traditional;
                     }
                     else
                     {
                         VisibleSideText = SetCards[CurrentCardIndex].Traditional;
                     }
                 }
             }
             break;
     }
 }
        public void Init()
        {
            Settings = _settingsService.GetStudySettings();

            if (Settings.FirstSide == "English")
            {

                state = FlashCardStateEnum.English;
                DefaultSideIndex = 1;
            }
            else if( Settings.FirstSide == "Characters")
            {

                state = FlashCardStateEnum.Chinese;
                DefaultSideIndex = 2;
            }
            else
            {

                state = FlashCardStateEnum.Pinyin;
                DefaultSideIndex = 0;
            }

            Set = _flashCardManager.GetSet(_settingsService.GetSelectedSetId());
            var sets = _flashCardManager.GetSetList();
            Set = sets.FirstOrDefault();

            SetCards = _flashCardManager.GetCardsForSet(Set.ID);
            CurrentShowingSideIndex = DefaultSideIndex;
            CurrentCardIndex = 0;
            CurrentCard = SetCards[CurrentCardIndex];
            SetState();
        }