main
1using Gorilla.Commons.Infrastructure.Container;
2using gorilla.commons.utility;
3using MoMoney.Presentation.Core;
4using MoMoney.Presentation.Model.reporting;
5using MoMoney.Presentation.Views;
6
7namespace MoMoney.Presentation.Presenters
8{
9 public interface IReportPresenter<Report, T, Query> : IContentPresenter
10 where Report : IBindReportTo<T, Query>
11 where Query : Query<T> {}
12
13 public class ReportPresenter<Report, T, Query> : ContentPresenter<IReportViewer>, IReportPresenter<Report, T, Query>
14 where Report : IBindReportTo<T, Query>
15 where Query : Query<T>
16 {
17 readonly DependencyRegistry registry;
18
19 public ReportPresenter(IReportViewer view, DependencyRegistry registry) : base(view)
20 {
21 this.registry = registry;
22 }
23
24 public override void run()
25 {
26 var report = registry.get_a<Report>();
27 report.run(registry.get_a<Query>().fetch());
28 view.display(report);
29 }
30 }
31}