public PassengerLiftsCost Execute(GetCostOfPassengerLiftsInPeriodQuery query) { var journeysInPeriod = _queryDispatcher.Dispatch(new GetJourneysInPeriodQuery(query.Period)); var clerk = new Clerk(new EquallyDistributedCostPolicy(new Money(25m / 100m), query.PassengerId)); var journeys = BuildJourneys(journeysInPeriod); var liftsExpenses = clerk.CalculateExpenses(journeys); return(new PassengerLiftsCost(liftsExpenses.TotalExpensesValue.Amount)); }