示例#1
0
 /// <summary>
 /// Prepares the items for practice.
 /// </summary>
 public void Practice()
 {
     itemsForPractice      = Helper.MixItems <PracticeResult <SceneItem> >(SelectedScene.SceneItems.Select(i => new PracticeResult <SceneItem>(i)).ToList());
     lastPlayedItem        = itemsForPractice.ElementAt(0);
     lastPlayedItem.Status = PracticeItemStatus.Asking;
     PlayThisItemAsync(lastPlayedItem.Item);
     lastPlayedItem.Status = PracticeItemStatus.Asked;
 }
示例#2
0
        public void ContinuePractice()
        {
            if (SelectedSceneItem != lastPlayedItem.Item)
            {
                if (lastPlayedItem.WrongAnswersCount == 3)
                {
                    lastPlayedItem.WrongAnswersCount = 0;
                    PlayThisItemAsync(lastPlayedItem.Item);
                    HiglightThisItem(lastPlayedItem.Item, lastPlayedItem.Item.Phrase.SoundLength.TotalMilliseconds, PracticeItemResult.Fixed);
                    return;
                }
                lastPlayedItem.WrongAnswersCount++;
                PlayThisItemAsync(lastPlayedItem.Item);
                HiglightThisItem(SelectedSceneItem, lastPlayedItem.Item.Phrase.SoundLength.TotalMilliseconds, PracticeItemResult.Wrong);
            }
            else
            {
                PlayThisItemAsync(lastPlayedItem.Item);
                HiglightThisItem(lastPlayedItem.Item, lastPlayedItem.Item.Phrase.SoundLength.TotalMilliseconds, PracticeItemResult.Right);

                Action playNextAction = new Action(() =>
                {
                    lastPlayedItem = itemsForPractice.FirstOrDefault(i => i.Status == PracticeItemStatus.Notasked);

                    if (lastPlayedItem == null)
                    {
                        var practiceFinished = PracticeFinished;
                        if (practiceFinished != null)
                        {
                            practiceFinished(this, new PraceticeFinishedEventArgs("Do you want redo this scene?"));
                        }
                        return;
                    }
                    lastPlayedItem.Status = PracticeItemStatus.Asking;
                    PlayThisItemAsync(lastPlayedItem.Item);
                    lastPlayedItem.Status = PracticeItemStatus.Asked;
                });
                RunAction(playNextAction, lastPlayedItem.Item.Phrase.SoundLength.TotalMilliseconds);
            }
        }