PdfRpt.Core.Helper.StreamHelper.ReopenForReading C# (CSharp) Method

ReopenForReading() public static method

Tries to Reopen the stream for reading.
public static ReopenForReading ( this stream ) : Stream
stream this input stream
return Stream
        public static Stream ReopenForReading(this Stream stream)
        {
            if (stream.CanRead && stream.CanSeek && stream.CanWrite)
            {
                stream.Position = 0;
                return stream;
            }

            var fileStream = stream as FileStream;
            if (fileStream != null)
            {
                return new FileStream(fileStream.Name, FileMode.Open, FileAccess.Read, FileShare.Read);
            }

            var memoryStream = stream as MemoryStream;
            if (memoryStream != null)
            {
                return new MemoryStream(memoryStream.ToArray());
            }

            throw new InvalidOperationException("Can not ReopenForReading.");
        }