private ITeacherState CheckResult(AfterFrameHandleEventArgs afterFrameHandleEventArgs) { if (State.Score > 10) { return(new Passed(State)); } var outputClass = afterFrameHandleEventArgs.OutputClass.ToString(); var stateDetails = new Model.AppModel.TeacherState() { CurrentLetter = State.CurrentLetter, LettersToKnow = State.LettersToKnow, Message = State.Message, Score = State.Score }; if (stateDetails.CurrentLetter.Equals(outputClass)) { stateDetails.Score++; stateDetails.Message = "Cool! It's correct sign"; } else { stateDetails.Score = 0; stateDetails.Message = "Wrong. Try again!"; } return(new Active(stateDetails)); }
private void OnAfterFrameHandleEvent(AfterFrameHandleEventArgs afterFrameHandleEventArgs) { TeacherState = TeacherState.HandleDecision(afterFrameHandleEventArgs); _eventAggregator .GetEvent <TeacherStateChangedEvent>() .Publish( new TeacherStateChangedArgs() { Message = TeacherState.State.Message, CurrentLetter = TeacherState.State.CurrentLetter, Score = TeacherState.State.Score }); }
public ITeacherState HandleDecision(AfterFrameHandleEventArgs afterFrameHandleEventArgs) { if (afterFrameHandleEventArgs.ErrorMessage != null) { return(new Active(new Model.AppModel.TeacherState() { CurrentLetter = State.CurrentLetter, LettersToKnow = State.LettersToKnow, Message = afterFrameHandleEventArgs.ErrorMessage, Score = State.Score })); } return(CheckResult(afterFrameHandleEventArgs)); }
public ITeacherState HandleDecision(AfterFrameHandleEventArgs afterFrameHandleEventArgs) { var outputClasses = Enum.GetValues(typeof(OutputClass)); var currentLetter = GetCurrentLetter(outputClasses); var lettersToKnow = GetLettersToKnow(outputClasses); var stateDetails = new Model.AppModel.TeacherState() { CurrentLetter = currentLetter, LettersToKnow = lettersToKnow, Score = 0 }; return(new Active(stateDetails)); }
public ITeacherState HandleDecision(AfterFrameHandleEventArgs afterFrameHandleEventArgs) { State.LettersToKnow.Remove(State.CurrentLetter); if (!State.LettersToKnow.Any()) { return(new Uninitialized(State)); } var currentLetter = State.LettersToKnow[Random.Next(State.LettersToKnow.Count)]; return(new Active(new Model.AppModel.TeacherState() { CurrentLetter = currentLetter, LettersToKnow = State.LettersToKnow, Message = "You passed!", Score = 0 })); }