コード例 #1
0
        private void DispatchCompoundEvent()
        {
            if (!_ReviewingEventHandled ||
                !_ViewingAEventHandled ||
                !_ViewedAEventHandled ||
                !_ViewingBEventHandled ||
                !_ViewedBEventHandled ||
                !_FeedbackGivenEventHandled ||
                _PhraseAId == Guid.Empty ||
                _PhraseBId == Guid.Empty)
            {
                throw new HistoryException();
            }

            //A
            var durationA      = _ViewedATimestamp - _ViewingATimestamp;
            var reviewedAEvent = new Events.ReviewedPhraseEvent(_FeedbackAsDouble, _PhraseAId, _PhraseAText,
                                                                _LanguageAId, _LanguageAText, _ReviewMethodId, durationA);

            HistoryPublisher.Ton.PublishEvent(reviewedAEvent);

            //B
            var durationB      = _ViewedBTimestamp - _ViewingBTimestamp;
            var reviewedBEvent = new Events.ReviewedPhraseEvent(_FeedbackAsDouble, _PhraseBId, _PhraseBText,
                                                                _LanguageBId, _LanguageBText, _ReviewMethodId, durationB);

            HistoryPublisher.Ton.PublishEvent(reviewedBEvent);

            Reset();
        }
コード例 #2
0
        /// <summary>
        /// THIS OCCURS AFTER A PHRASE HAS BEEN REVIEWED.  THIS MEANS THE PHRASE WAS VIEWED AND
        /// FEEDBACK WAS GIVEN.  TO START WITH, THIS WILL ONLY OCCUR WHEN THE ENTIRE LINE'S PHRASE
        /// IS REVIEWED.  OTHERWISE, THIS SHOULD NOT BE TRIGGERING.
        /// </summary>
        public void Handle(Events.ReviewedPhraseEvent message)
        {
            if (!_ReviewingLineEventHandled)
            {
                return;
            }

            var msgPhraseId               = message.Ids[HistoryResources.Key_PhraseId];
            var msgPhraseText             = message.Strings[HistoryResources.Key_PhraseText];
            var msgLanguageId             = message.Ids[HistoryResources.Key_LanguageId];
            var msgLanguageText           = message.Strings[HistoryResources.Key_LanguageText];
            var msgReviewedPhraseDuration = message.Duration;

            //MAKE SURE PHRASE IDS, LINE TEXT AND PHRASE TEXT, LANGUAGE ID, AND LANGUAGE TEXT MATCH
            //BETWEEN REVIEWINGLINE EVENT AND REVIEWED PHRASE EVENT
            if (_PhraseId != msgPhraseId ||
                _LineText != msgPhraseText ||
                _LanguageId != msgLanguageId ||
                _LanguageText != msgLanguageText)
            {
                //if (!_IsReset)
                //  Reset();
                return;
            }

            //GET THE FEEDBACK FROM THE REVIEWED PHRASE EVENT
            _FeedbackAsDouble           = message.Doubles[HistoryResources.Key_FeedbackAsDouble];
            _ReviewedPhraseEventHandled = true;

            DispatchCompoundEvent();
        }