summaryrefslogtreecommitdiff
path: root/slips/src/app/Marina/Presentation/Presenters/CustomerRegistrationPresenter.cs
blob: ea9ff8d219cd3b23397ec5dd94df1b604c8060c9 (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
using Marina.Infrastructure.Container;
using Marina.Presentation.Mappers;
using Marina.Presentation.Views;
using Marina.Task;

namespace Marina.Presentation.Presenters {
	public class CustomerRegistrationPresenter : ICustomerRegistrationPresenter {
		private readonly ICustomerRegistrationView _view;
		private readonly ICustomerRegistrationPresentationMapper _mapper;
		private readonly IRegistrationTasks _task;

		public CustomerRegistrationPresenter( ICustomerRegistrationView view ) : this(
			view,
			Resolve.DependencyFor< ICustomerRegistrationPresentationMapper >( ),
			Resolve.DependencyFor< IRegistrationTasks >( )
			) {}

		public CustomerRegistrationPresenter( ICustomerRegistrationView view,
		                                      ICustomerRegistrationPresentationMapper mapper,
		                                      IRegistrationTasks task ) {
			_view = view;
			_mapper = mapper;
			_task = task;
		}

		public void RegisterCustomer( ) {
			_view.Display( _task.RegisterNew( _mapper.MapFrom( _view ) ) );
		}
	}
}