public void KeyDown(string key) { AddKeyUsage(key); RaisePropertyChanged("KeyUsageList"); double sec = Stats.KeyboardActivity.Update(Statistics.InactivityThreshold); RaisePropertyChanged("KeyboardActivity"); if (sec < 4 && sec > 0.1) { double perMinute = 60 / sec; TypingSpeed.Add(perMinute); } RaisePropertyChanged("TypingSpeed"); RaisePropertyChanged("TypingSpeedList"); Stats.KeyStrokes++; RaisePropertyChanged("KeyStrokes"); Stats.KeyCountPerHour.Increase(); RaisePropertyChanged("KeyCountPerHour"); RaisePropertyChanged("KeyCountPerHourList"); RaisePropertyChanged("Report"); }
public LevelStatistics(Level level, int errorsNumber, TypingSpeed typingSpeed, bool complited) { if (level == null) throw new ArgumentNullException("level"); if (errorsNumber < 0) throw new ArgumentException(Resources.Level_Invalid_maxErrorsNumber_ExceptionMsg, "errorsNumber"); if (typingSpeed == null) throw new ArgumentNullException("typingSpeed"); _level = level; _errorsNumber = errorsNumber; _typingSpeed = typingSpeed; _complited = complited; }
private void button1_Click(object sender, EventArgs e) { var text = textTextBox.Text; int errorsNumber; if (!int.TryParse(errorsTextBox.Text, out errorsNumber) || errorsNumber < 0) { MessageBox.Show("Количество ошибок - целое неотрицательное число."); return; } int ts; if (!int.TryParse(typingSpeedTextBox.Text, out ts) || ts < 0) { MessageBox.Show("Скорость печати - целое неотрицательное число."); return; } var typingSpeed = new TypingSpeed(ts); var name = levelNameTextBox.Text; var level = new Level(text, errorsNumber, typingSpeed, name); OnLevelCreated(new EventArgs<Level>(level)); Dispose(); }
private void Finish() { _finished = true; _finishTime = DateTime.Now; var elapsedTime = _finishTime - _startTime; var typingSpeed = new TypingSpeed(_level.Text.Length, elapsedTime); var isSucceed = _errorsNumber <= _level.MaxErrorsNumber && typingSpeed >= _level.MinTypingSpeed; var levelStatistics = new LevelStatistics(_level, _errorsNumber, typingSpeed, isSucceed); OnFinished(new EventArgs<LevelStatistics>(levelStatistics)); }