public async Task<RegisterOutput> Execute(string pin, string name, double initialAmount) { Customer customer = new Customer(pin, name); Account account = new Account(customer.Id); account.Deposit(initialAmount); Credit credit = (Credit)account.GetLastTransaction(); customer.Register(account.Id); await _customerWriteOnlyRepository.Add(customer); await _accountWriteOnlyRepository.Add(account, credit); RegisterOutput output = new RegisterOutput(customer, account); return output; }
public async Task <RegisterOutput> Execute(SSN personnummer, Name name, Amount initialAmount) { Customer customer = new Customer(personnummer, name); Account account = new Account(customer.Id); account.Deposit(initialAmount); Credit credit = (Credit)account.GetLastTransaction(); customer.Register(account.Id); await _customerWriteOnlyRepository.Add(customer); await _accountWriteOnlyRepository.Add(account, credit); RegisterOutput output = new RegisterOutput(customer, account); return(output); }
public async Task Process(RegisterInput input) { Customer customer = new Customer(input.PIN, input.Name); Account account = new Account(customer.Id); Credit credit = new Credit(account.Id, input.InitialAmount); account.Deposit(credit); customer.Register(account.Id); await customerWriteOnlyRepository.Add(customer); await accountWriteOnlyRepository.Add(account, credit); CustomerOutput customerOutput = outputConverter.Map <CustomerOutput>(customer); AccountOutput accountOutput = outputConverter.Map <AccountOutput>(account); RegisterOutput output = new RegisterOutput(customerOutput, accountOutput); outputBoundary.Populate(output); }