summaryrefslogtreecommitdiff
path: root/slips/src/app/Marina/Presentation/Presenters/RegisterBoatPresenter.cs
blob: 693c1ff8b59a515013c2a2e3fd41b64919b4eb1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using Marina.Infrastructure.Container;
using Marina.Presentation.Mappers;
using Marina.Presentation.Views;
using Marina.Task;
using Marina.Web;

namespace Marina.Presentation.Presenters {
	public class RegisterBoatPresenter : IRegisterBoatPresenter {
		public RegisterBoatPresenter( IRegisterBoatView view )
			: this( view,
			        Resolve.DependencyFor< IHttpRequest >( ),
			        Resolve.DependencyFor< IRegistrationTasks >( ),
			        Resolve.DependencyFor< INewBoatRegistrationMapper >( )
				) {}

		public RegisterBoatPresenter( IRegisterBoatView view, IHttpRequest request, IRegistrationTasks task,
		                              INewBoatRegistrationMapper mapper ) {
			_view = view;
			_request = request;
			_task = task;
			_mapper = mapper;
		}

		public void SubmitRegistration() {
			_view.Display( _task.AddNewBoatUsing( _mapper.MapFrom( _request ) ) );
		}

		private readonly IRegisterBoatView _view;
		private readonly IHttpRequest _request;
		private readonly IRegistrationTasks _task;
		private readonly INewBoatRegistrationMapper _mapper;
	}
}