summaryrefslogtreecommitdiff
path: root/src/app/Cmpp298.Assignment3.Desktop.Presentation/InvoicesMainPresenter.cs
blob: 39286d0f010f667d39302156f66e2ea3c993bb10 (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
using System.Collections.Generic;
using Cmpp298.Assignment3.Dto;
using Cmpp298.Assignment3.Task;

namespace Cmpp298.Assignment3.Presentation {
	public class InvoicesMainPresenter {
		private readonly IInvoiceTask _invoiceTask;
		private readonly IInvoicesMainView _view;
		private readonly IVendorTask _vendorsTask;

		public InvoicesMainPresenter( IInvoicesMainView view ) : this( view, new VendorTask( ), new InvoiceTask( ) ) {}

		public InvoicesMainPresenter( IInvoicesMainView view, IVendorTask vendorsTask, IInvoiceTask invoiceTask ) {
			_view = view;
			_vendorsTask = vendorsTask;
			_invoiceTask = invoiceTask;
		}

		public void Initialize( ) {
			_view.VendorNames.BindTo( _vendorsTask.GetAllVendorNames( ) );
		}

		public void LoadInvoices( ) {
			IDropDownListItem selectedItem = _view.VendorNames.SelectedItem;
			if ( selectedItem != null ) {
				IEnumerable< DisplayInvoiceDto > enumerable = _invoiceTask.GetAllInvoices( selectedItem.Value );
				_view.BindTo( enumerable );
			}
		}
	}
}