main
1using mars.rover.presentation.infrastructure;
2using mars.rover.service.application;
3
4namespace mars.rover.presentation
5{
6 public class CaptureUserInstructionsPresenter : Presenter
7 {
8 readonly CaptureUserInstructionsView view;
9 readonly EventProcessor pump;
10
11 public CaptureUserInstructionsPresenter(CaptureUserInstructionsView view, EventProcessor pump)
12 {
13 this.view = view;
14 this.pump = pump;
15 }
16
17 public virtual void run()
18 {
19 view.attach_to(this);
20 }
21
22 public virtual void provide_upper_right_coordinates(string line)
23 {
24 pump.process<CreateMarsCommand, string>(line);
25 }
26
27 public virtual void deploy_rover_to(string deployment_coordinates)
28 {
29 pump.process<DeployRoverCommand, string>(deployment_coordinates);
30 }
31
32 public virtual void navigate_rover_using(string navigation_commands)
33 {
34 pump.process<NavigateRoverCommand, string>(navigation_commands);
35 }
36
37 public void process_output()
38 {
39 pump.run();
40 }
41 }
42}