public Task GenerateDocumentIdsForSaveChanges() { if (_entitiesStoredWithoutIDs.Count != 0) { var entity = _entitiesStoredWithoutIDs.First.Value; _entitiesStoredWithoutIDs.RemoveFirst(); if (_tryGetValue(entity, out var documentInfo)) { return(_session.GenerateDocumentIdForStorageAsync(entity) .ContinueWith(task => documentInfo.Id = _modifyObjectId(task.Result, entity, documentInfo.Metadata)) .ContinueWithTask(GenerateDocumentIdsForSaveChanges)); } } return(Task.CompletedTask); }