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