public void Show(ExceptionCheckCallback callback)
        {
            _DateTimeQuestionShown = DateTime.Now;
            ViewModelVisibility    = Visibility.Visible;
            //DispatchShown();
            var eventViewing = new History.Events.ViewingPhraseOnScreenEvent(Line.Phrase);

            History.HistoryPublisher.Ton.PublishEvent(eventViewing);
            var reviewingLineOrderEvent = new History.Events.ReviewingLineOrderEvent(Line, MultiLineText, GetReviewMethodId());

            HistoryPublisher.Ton.PublishEvent(reviewingLineOrderEvent);
            QuestionDurationInMilliseconds = int.Parse(StudyResources.DefaultTimeLineOrderQuestionInMilliseconds);
            AskQuestion(QuestionDurationInMilliseconds, (e) =>
            {
                if (e != null)
                {
                    callback(e);
                }
                else
                {
                    //WAIT FOR ALOTTED TIME FOR USER TO THINK ABOUT ANSWER.
                    System.Threading.Thread.Sleep(int.Parse(StudyResources.DefaultThinkAboutAnswerTime));
                    callback(null);
                }
            });
        }
        /// <summary>
        /// Executes callback when answer is shown, or when exception is thrown.
        /// </summary>
        /// <param name="question">Question LineEdit</param>
        /// <param name="answer">Answer LineEdit</param>
        /// <param name="questionDurationInMilliseconds"></param>
        /// <param name="callback"></param>
        protected void AskQuestion(int questionDurationInMilliseconds,
                                   ExceptionCheckCallback callback)
        {
            try
            {
                HideAnswer();
                BackgroundWorker timer = new BackgroundWorker();
                timer.DoWork += (s, e) =>
                {
                    try
                    {
                        System.Threading.Thread.Sleep(questionDurationInMilliseconds);
                        //if (AnswerVisibility == Visibility.Collapsed)

                        ShowAnswer();
                        callback(null);
                    }
                    catch (Exception ex)
                    {
                        callback(ex);
                    }
                };

                timer.RunWorkerAsync();
            }
            catch (Exception ex)
            {
                callback(ex);
            }
        }
        public void Show(ExceptionCheckCallback callback)
        {
            base.Show(callback);
            _DateTimeQuestionShown = DateTime.Now;
            var viewingEvent = new History.Events.ViewingPhraseOnScreenEvent(Question);

            HistoryPublisher.Ton.PublishEvent(viewingEvent);
        }
        public void Show(ExceptionCheckCallback callback)
        {
            base.Show(callback);
            _DateTimeQuestionShown = DateTime.Now;
            var viewingEvent = new History.Events.ViewingPhraseOnScreenEvent(Line.Phrase);

            HistoryPublisher.Ton.PublishEvent(viewingEvent);
            var reviewingLineOrderEvent = new History.Events.ReviewingLineOrderEvent(Line, MultiLineText, GetReviewMethodId());

            HistoryPublisher.Ton.PublishEvent(reviewingLineOrderEvent);
        }
        /// <summary>
        /// Executes callback when answer is shown, or when exception is thrown.
        /// </summary>
        /// <param name="question">Question PhraseEdit</param>
        /// <param name="answer">Answer PhraseEdit</param>
        /// <param name="questionDurationInMilliseconds"></param>
        /// <param name="callback"></param>
        public void AskQuestion(PhraseEdit question,
                                PhraseEdit answer,
                                int questionDurationInMilliseconds,
                                ExceptionCheckCallback callback)
        {
            try
            {
                //BingTranslatorService.LanguageServiceClient client = new BingTranslatorService.LanguageServiceClient();
                //client.SpeakCompleted += client_SpeakCompleted;
                //client.SpeakAsync(AppResources.BingAppId, question.Text, BingTranslateHelper.GetLanguageCode(question.Language.Text), string.Empty, string.Empty);

                HideAnswer();
                Question = question;
                Answer   = answer;
                //QuestionDurationInMilliseconds = questionDurationInMilliseconds;
                BackgroundWorker timer = new BackgroundWorker();
                timer.DoWork += (s, e) =>
                {
                    try
                    {
                        System.Threading.Thread.Sleep(questionDurationInMilliseconds);
                        if (AnswerVisibility == Visibility.Collapsed)
                        {
                            ShowAnswer();
                        }
                        callback(null);
                    }
                    catch (Exception ex)
                    {
                        callback(ex);
                    }
                };

                timer.RunWorkerAsync();
            }
            catch (Exception ex)
            {
                callback(ex);
            }
        }
 public void Show(ExceptionCheckCallback callback)
 {
   base.Show(callback);
   _DateTimeQuestionShown = DateTime.Now;
   var viewingEvent = new History.Events.ViewingPhraseOnScreenEvent(Line.Phrase);
   HistoryPublisher.Ton.PublishEvent(viewingEvent);
   var reviewingLineOrderEvent = new History.Events.ReviewingLineOrderEvent(Line, MultiLineText, GetReviewMethodId());
   HistoryPublisher.Ton.PublishEvent(reviewingLineOrderEvent);
 }
 public void Show(ExceptionCheckCallback callback)
 {
   base.Show(callback);
   _DateTimeQuestionShown = DateTime.Now;
   var viewingEvent = new History.Events.ViewingPhraseOnScreenEvent(Question);
   HistoryPublisher.Ton.PublishEvent(viewingEvent);
 }
 public void Show(ExceptionCheckCallback callback)
 {
   _DateTimeQuestionShown = DateTime.Now;
   ViewModelVisibility = Visibility.Visible;
   //DispatchShown();
   var eventViewing = new History.Events.ViewingPhraseOnScreenEvent(Line.Phrase);
   History.HistoryPublisher.Ton.PublishEvent(eventViewing);
   var reviewingLineOrderEvent = new History.Events.ReviewingLineOrderEvent(Line, MultiLineText, GetReviewMethodId());
   HistoryPublisher.Ton.PublishEvent(reviewingLineOrderEvent);
   QuestionDurationInMilliseconds = int.Parse(StudyResources.DefaultTimeLineOrderQuestionInMilliseconds);
   AskQuestion(QuestionDurationInMilliseconds, (e) =>
     {
       if (e != null)
       {
         callback(e);
       }
       else
       {
         //WAIT FOR ALOTTED TIME FOR USER TO THINK ABOUT ANSWER.
         System.Threading.Thread.Sleep(int.Parse(StudyResources.DefaultThinkAboutAnswerTime));
         callback(null);
       }
     });
 }
    /// <summary>
    /// Executes callback when answer is shown, or when exception is thrown.
    /// </summary>
    /// <param name="question">Question LineEdit</param>
    /// <param name="answer">Answer LineEdit</param>
    /// <param name="questionDurationInMilliseconds"></param>
    /// <param name="callback"></param>
    protected void AskQuestion(int questionDurationInMilliseconds,
                               ExceptionCheckCallback callback)
    {
      try
      {
        HideAnswer();
        BackgroundWorker timer = new BackgroundWorker();
        timer.DoWork += (s, e) =>
        {
          try
          {
            System.Threading.Thread.Sleep(questionDurationInMilliseconds);
            //if (AnswerVisibility == Visibility.Collapsed)
              
            ShowAnswer();
            callback(null);
          }
          catch (Exception ex)
          {
            callback(ex);
          }
        };

        timer.RunWorkerAsync();
      }
      catch (Exception ex)
      {
        callback(ex);
      }
    }
        /// <summary>
        /// Executes callback when answer is shown, or when exception is thrown.
        /// </summary>
        /// <param name="question">Question PhraseEdit</param>
        /// <param name="answer">Answer PhraseEdit</param>
        /// <param name="questionDurationInMilliseconds"></param>
        /// <param name="callback"></param>
        public void AskQuestion(PhraseEdit question,
                            PhraseEdit answer,
                            int questionDurationInMilliseconds,
                            ExceptionCheckCallback callback)
        {
            try
              {

            //BingTranslatorService.LanguageServiceClient client = new BingTranslatorService.LanguageServiceClient();
            //client.SpeakCompleted += client_SpeakCompleted;
            //client.SpeakAsync(AppResources.BingAppId, question.Text, BingTranslateHelper.GetLanguageCode(question.Language.Text), string.Empty, string.Empty);

            HideAnswer();
            Question = question;
            Answer = answer;
            //QuestionDurationInMilliseconds = questionDurationInMilliseconds;
            BackgroundWorker timer = new BackgroundWorker();
            timer.DoWork += (s, e) =>
            {
              try
              {

            System.Threading.Thread.Sleep(questionDurationInMilliseconds);
            if (AnswerVisibility == Visibility.Collapsed)
              ShowAnswer();
            callback(null);
              }
              catch (Exception ex)
              {
            callback(ex);
              }
            };

            timer.RunWorkerAsync();
              }
              catch (Exception ex)
              {
            callback(ex);
              }
        }