void ProcessArchiveStreams(ArchiveItem archiveItem, IOriginItem originItem) { using (Stream archiveStream = archiveItem.OpenDataStream()) { if (archiveStream != null) { if (Progress != null) { Progress( this, new OriginProgressEventArgs(State.BeginStream, originItem) ); } using (Stream originStream = originItem.CreateStream()) { byte[] hash; streamPump.Progress = delegate(long done, long total) { if (Progress != null) { Progress( this, new OriginProgressEventArgs(State.Block, originItem, done, total) ); } }; streamPump.Copy(archiveStream, originStream, out hash); //archiveStream.Hash = hash; } } if (Progress != null) { Progress( this, new OriginProgressEventArgs(State.EndStream, originItem) ); } } }
void ProcessArchiveStreams(ArchiveItem archiveItem, IOriginItem originItem) { using (Stream archiveStream = archiveItem.OpenDataStream()) { if (archiveStream != null) { if (Progress != null) Progress ( this, new OriginProgressEventArgs (State.BeginStream, originItem) ); using (Stream originStream = originItem.CreateStream ()) { byte[] hash; streamPump.Progress = delegate(long done, long total) { if (Progress != null) Progress ( this, new OriginProgressEventArgs (State.Block, originItem, done, total) ); }; streamPump.Copy (archiveStream, originStream, out hash); //archiveStream.Hash = hash; } } if (Progress != null) Progress ( this, new OriginProgressEventArgs (State.EndStream, originItem) ); } }