main
 1using System.Collections.Generic;
 2using MoMoney.DTO;
 3using MoMoney.Presentation.Core;
 4using MoMoney.Presentation.Views;
 5using MoMoney.Service.Contracts.Application;
 6
 7namespace MoMoney.Presentation.Presenters
 8{
 9    public interface IAddNewIncomePresenter : IContentPresenter
10    {
11        void submit_new(IncomeSubmissionDTO income);
12    }
13
14    public class AddNewIncomePresenter : ContentPresenter<IAddNewIncomeView>, IAddNewIncomePresenter
15    {
16        readonly ICommandPump pump;
17
18        public AddNewIncomePresenter(IAddNewIncomeView view, ICommandPump pump) : base(view)
19        {
20            this.pump = pump;
21        }
22
23        public override void run()
24        {
25            view.attach_to(this);
26            pump.run<IEnumerable<CompanyDTO>, IGetAllCompanysQuery>(view);
27            pump.run<IEnumerable<IncomeInformationDTO>, IGetAllIncomeQuery>(view);
28        }
29
30        public void submit_new(IncomeSubmissionDTO income)
31        {
32            pump.run<IAddNewIncomeCommand, IncomeSubmissionDTO>(income);
33            pump.run<IEnumerable<IncomeInformationDTO>, IGetAllIncomeQuery>(view);
34        }
35    }
36}