main
1using System.Collections.Generic;
2using System.Collections.ObjectModel;
3using gorilla.utility;
4using solidware.financials.infrastructure;
5using solidware.financials.infrastructure.eventing;
6using solidware.financials.messages;
7using solidware.financials.windows.ui.events;
8using solidware.financials.windows.ui.model;
9
10namespace solidware.financials.windows.ui.presenters
11{
12 public class ButtonBarPresenter : ObservablePresenter<ButtonBarPresenter>, Presenter, EventSubscriber<AddedNewFamilyMember>
13 {
14 PersonDetails selected_member;
15 EventAggregator event_aggregator;
16 Mapper mapper;
17 ServiceBus bus;
18
19 public ButtonBarPresenter(EventAggregator event_aggregator, Mapper mapper, ServiceBus bus)
20 {
21 this.bus = bus;
22 this.mapper = mapper;
23 this.event_aggregator = event_aggregator;
24 family_members = new ObservableCollection<PersonDetails>();
25 }
26
27 public ICollection<PersonDetails> family_members { get; set; }
28
29 public PersonDetails SelectedMember
30 {
31 get { return selected_member; }
32 set
33 {
34 selected_member = value;
35 update(x => x.SelectedMember);
36 event_aggregator.publish(new SelectedFamilyMember {id = value.id});
37 }
38 }
39
40 public void present()
41 {
42 bus.publish<FindAllFamily>();
43 }
44
45 public void notify(AddedNewFamilyMember message)
46 {
47 var person = mapper.map_from<AddedNewFamilyMember, PersonDetails>(message);
48 if (null == selected_member) SelectedMember = person;
49 family_members.Add(person);
50 update(x => x.family_members);
51 }
52 }
53
54}