public Stream OpenWrite(string name) { var tempName = string.Join(".", new[] { name, Guid.NewGuid().ToString().Replace("-", "").Substring(0, 4), "tmp", }); Action rename = () => _streamStore.Rename(tempName, name); var stream = _streamStore.OpenWrite(tempName); var disposeNotifyingStream = new DisposeNotifyingStream(stream, rename); return(disposeNotifyingStream); }