public async Task SaveAsync(INonTerminalDescriptor descriptor, ICollectionRetrievalContext <TData> retrievalContext, Action doAfterDataAdded) { Compositions.Save(descriptor, Describe(retrievalContext.Data)); await SaveAsync(retrievalContext, () => { Compositions.Save(descriptor, Describe(retrievalContext.Data)); doAfterDataAdded?.Invoke(); }); }