public async Task <ITravelExpense> InsertAsync(ITravelExpense entity)
        {
            entity.CheckArgument(nameof(entity));
            entity.Travel.CheckArgument(nameof(entity.Travel));
            entity.Expenses.CheckArgument(nameof(entity.Expenses));

            var result = new TravelExpense();

            result.TravelEntity.CopyProperties(entity.Travel);
            foreach (var item in entity.Expenses)
            {
                var expense = new Expense();

                expense.Travel = result.TravelEntity;
                expense.CopyProperties(item);
                await expenseController.InsertAsync(expense);

                result.ExpenseEntities.Add(expense);
            }
            return(result);
        }