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