Skip to content

Commit b3f4247

Browse files
committed
Настройка таймера вынесена в метод
1 parent e019835 commit b3f4247

7 files changed

+18
-17
lines changed
-2.5 KB
Binary file not shown.

TrafficLights/TrafficLights/Models/TrafficLightsModel.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public class TrafficLightsModel
3131
/// <summary>
3232
/// Длительность жёлтого
3333
/// </summary>
34-
public const int YellowDuration = 2000;
34+
public const int YellowDuration = 1000;
3535

3636
/// <summary>
3737
/// Длительность красного
@@ -41,7 +41,7 @@ public class TrafficLightsModel
4141
/// <summary>
4242
/// Длительность красного с жёлтым
4343
/// </summary>
44-
public const int RedAndYellowDuration = 2000;
44+
public const int RedAndYellowDuration = 1000;
4545

4646
/// <summary>
4747
/// Красный огонь - горит или нет?

TrafficLights/TrafficLights/ViewModels/MainWindowViewModel.cs

+16-15
Original file line numberDiff line numberDiff line change
@@ -323,9 +323,7 @@ private void OnAutomatStep(Object source, ElapsedEventArgs e)
323323
_model.YellowLightState = LightStateEnum.Off;
324324
_model.RedLightState = LightStateEnum.Off;
325325

326-
_automatTimer.Stop();
327-
_automatTimer.Interval = TrafficLightsModel.BlinkingGreenDuration;
328-
_automatTimer.Start();
326+
SetTimerInterval(TrafficLightsModel.BlinkingGreenDuration);
329327
break;
330328

331329
// Мигает зелёным
@@ -337,9 +335,7 @@ private void OnAutomatStep(Object source, ElapsedEventArgs e)
337335
_model.YellowLightState = LightStateEnum.On;
338336
_model.RedLightState = LightStateEnum.Off;
339337

340-
_automatTimer.Stop();
341-
_automatTimer.Interval = TrafficLightsModel.YellowDuration;
342-
_automatTimer.Start();
338+
SetTimerInterval(TrafficLightsModel.YellowDuration);
343339
break;
344340

345341
// Горит жёлтый
@@ -351,9 +347,7 @@ private void OnAutomatStep(Object source, ElapsedEventArgs e)
351347
_model.YellowLightState = LightStateEnum.Off;
352348
_model.RedLightState = LightStateEnum.On;
353349

354-
_automatTimer.Stop();
355-
_automatTimer.Interval = TrafficLightsModel.RedDuration;
356-
_automatTimer.Start();
350+
SetTimerInterval(TrafficLightsModel.RedDuration);
357351
break;
358352

359353
// Горит красный
@@ -365,9 +359,7 @@ private void OnAutomatStep(Object source, ElapsedEventArgs e)
365359
_model.YellowLightState = LightStateEnum.On;
366360
_model.RedLightState = LightStateEnum.On;
367361

368-
_automatTimer.Stop();
369-
_automatTimer.Interval = TrafficLightsModel.RedAndYellowDuration;
370-
_automatTimer.Start();
362+
SetTimerInterval(TrafficLightsModel.RedAndYellowDuration);
371363
break;
372364

373365
// Горит красный и жёлтый
@@ -379,9 +371,7 @@ private void OnAutomatStep(Object source, ElapsedEventArgs e)
379371
_model.YellowLightState = LightStateEnum.Off;
380372
_model.RedLightState = LightStateEnum.Off;
381373

382-
_automatTimer.Stop();
383-
_automatTimer.Interval = TrafficLightsModel.GreenDuration;
384-
_automatTimer.Start();
374+
SetTimerInterval(TrafficLightsModel.GreenDuration);
385375
break;
386376

387377
default:
@@ -391,6 +381,17 @@ private void OnAutomatStep(Object source, ElapsedEventArgs e)
391381
ProcessState();
392382
}
393383

384+
/// <summary>
385+
/// Настраиваем интервал таймера
386+
/// </summary>
387+
private void SetTimerInterval(int interval)
388+
{
389+
_automatTimer.Stop();
390+
_automatTimer.Interval = interval;
391+
_automatTimer.Start();
392+
}
393+
394+
394395

395396
#endregion
396397
}

0 commit comments

Comments
 (0)