private async void ClockClicked(object sender, AnsweredEventArgs <LocalTime> e) { _tries++; var isCorrect = e.Answer == _theTime; var answerButton = sender as IAnswerButton; answerButton.SetAnswerIs(isCorrect); if (isCorrect) { await ShowPopup((c) => new CorrectPopup(e.Answer, c)).ConfigureAwait(true); _level.RightAfter(_tries, 4); if (_level.IsComplete) { // Show level score await ShowPopup((c) => new LevelDonePopup(_level, c)).ConfigureAwait(true); // Increase level _level = _levelFactory.NextLevel(_level); } // Start next level SetTimes(_level); _tries = 0; } else { await ShowPopup((c) => new WrongPopup(e.Answer, c)).ConfigureAwait(true); } }
private void ClockClicked(object sender, EventArgs e) { if (!(sender is ClockAnswerButton clock)) { throw new Exception($"{sender.GetType()} is not a Clock"); } var timeEventArgs = new AnsweredEventArgs <LocalTime>(clock.Time); _onTimeSelected?.Invoke(sender, timeEventArgs); }
private void ClockClicked(object sender, EventArgs e) { if (!(sender is Button clock)) { throw new Exception($"{sender.GetType()} is not a Button"); } var time = clock.CommandParameter as LocalTime?; if (time == null) { throw new ArgumentException("Clicked thing did not have a time"); } var timeEventArgs = new AnsweredEventArgs <LocalTime>((LocalTime)time); _onTimeSelected?.Invoke(sender, timeEventArgs); }