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}