public void Pay(PaymentInput input) { CheckInputMessage(input, MessageTypePayment); repositoryService.AddPaymentInput(input); decimal commission = CalculateCommission(input.Origin, input.Amount); decimal currentAmount = repositoryService.GetAmount(input.AccountId); decimal newAmount = currentAmount - input.Amount - commission; repositoryService.UpdateAccount(input.AccountId, newAmount); }