/// <inheritdoc />
        public Task <T> ReplaceAsync <T>(string id, T document, string etag)
            where T : class
        {
            DocumentCollection collection = EnsureCollection();

            document = collection.Replace(id, document, etag);

            return(Task.FromResult(document));
        }