main
1using solidware.financials.infrastructure;
2using solidware.financials.messages;
3using solidware.financials.service.orm;
4
5namespace solidware.financials.service.handlers
6{
7 public class AddIncomeCommandMessageHandler : Handles<AddIncomeCommandMessage>
8 {
9 PersonRepository family;
10 ServiceBus bus;
11
12 public AddIncomeCommandMessageHandler(PersonRepository family, ServiceBus bus)
13 {
14 this.family = family;
15 this.bus = bus;
16 }
17
18 public void handle(AddIncomeCommandMessage item)
19 {
20 var person = family.find_by(item.PersonId);
21 person.IncomeAccount().deposit(item.Amount);
22 family.save(person);
23 bus.publish<IncomeMessage>(x =>
24 {
25 x.Amount = item.Amount;
26 x.PersonId = item.PersonId;
27 x.Date = item.Date;
28 });
29 }
30 }
31}