main
 1using MoMoney.Domain.Core;
 2using MoMoney.Domain.repositories;
 3using MoMoney.DTO;
 4using MoMoney.Service.Contracts.Application;
 5
 6namespace MoMoney.Service.Application
 7{
 8    public class SaveNewBillCommand : ISaveNewBillCommand
 9    {
10        readonly ICompanyRepository companys;
11        readonly IGetTheCurrentCustomerQuery tasks;
12
13        public SaveNewBillCommand(ICompanyRepository companys, IGetTheCurrentCustomerQuery tasks)
14        {
15            this.companys = companys;
16            this.tasks = tasks;
17        }
18
19        public void run(AddNewBillDTO item)
20        {
21            companys
22                .find_company_by(item.company_id)
23                .issue_bill_to(
24                tasks.fetch(),
25                item.due_date,
26                item.total.as_money()
27                );
28        }
29    }
30}