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); }