main
 1using gorilla.commons.utility;
 2using Gorilla.Commons.Utility;
 3using MoMoney.Domain.Core;
 4
 5namespace MoMoney.Domain.Accounting
 6{
 7    public class AnnualIncomeVisitor : ValueReturningVisitor<Money, IIncome>
 8    {
 9        readonly Year year;
10
11        public AnnualIncomeVisitor(Year year)
12        {
13            this.year = year;
14            reset();
15        }
16
17        public void visit(IIncome x)
18        {
19            if (x.date_of_issue.is_in(year)) value = value.add(x.amount_tendered);
20        }
21
22        public Money value { get; set; }
23
24        public void reset()
25        {
26            value = new Money(0);
27        }
28    }
29}