public async Task <Expense> CreateExpenseWhen(PosPaymentAdded notification) { var expenseRecipient = await _expenseRecipientRepository.FindByPosTerminal(notification.PosTerminalCode); var expense = _expenseFactory.CreateFrom(ExpenseType.PosPayment, notification.Value, notification.PaymentDate, expenseRecipient?.ExpenseRecipientId, expenseRecipient?.ExpenseCategoryId, notification.PosTerminalCode, notification.PosTerminalCode, null, notification.PosPaymentId); return(expense); }
public async Task <ExpenseRecipient> AddPosTerminalWhen(PosPaymentAdded notification) { var existingExpenseRecipientForPosTerminal = await _expenseRecipientRepository.FindByPosTerminal(notification.PosTerminalCode); if (existingExpenseRecipientForPosTerminal != null) { return(null); } var expenseRecipient = await _expenseRecipientRepository.FindBestMatchForPosTerminalCode(notification.PosTerminalCode); if (expenseRecipient != null) { expenseRecipient.AddPosTerminal(notification.PosTerminalCode); return(expenseRecipient); } return(null); }