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(); }
/// <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(); }