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}