main
1using System;
2using gorilla.utility;
3using solidware.financials.infrastructure;
4using solidware.financials.messages;
5
6namespace solidware.financials.windows.ui.presenters
7{
8 public class AddFamilyMemberPresenter : DialogPresenter
9 {
10 UICommandBuilder ui_builder;
11
12 public AddFamilyMemberPresenter(UICommandBuilder ui_builder)
13 {
14 this.ui_builder = ui_builder;
15 }
16
17 public void present()
18 {
19 Save = ui_builder.build<SaveCommand>(this);
20 Cancel = ui_builder.build<CancelCommand>(this);
21 date_of_birth = Clock.today();
22 }
23
24 public virtual string first_name { get; set; }
25 public virtual string last_name { get; set; }
26 public virtual DateTime date_of_birth { get; set; }
27 public ObservableCommand Save { get; set; }
28 public ObservableCommand Cancel { get; set; }
29 public virtual Action close { get; set; }
30
31 public class SaveCommand : UICommand<AddFamilyMemberPresenter>
32 {
33 ServiceBus bus;
34
35 public SaveCommand(ServiceBus bus)
36 {
37 this.bus = bus;
38 }
39
40 public override void run(AddFamilyMemberPresenter presenter)
41 {
42 bus.publish(new FamilyMemberToAdd
43 {
44 first_name = presenter.first_name,
45 last_name = presenter.last_name,
46 date_of_birth = presenter.date_of_birth,
47 });
48 presenter.close();
49 }
50 }
51 }
52}