public override Present Realize(string refCredit) { HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(documentUri); httpWebRequest.CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Revalidate); D.Sayf(0, "Fetching {0}", new object[] { documentUri }); HttpWebResponse httpWebResponse; try { httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); } catch (WebException ex) { throw new Exception(string.Format("timeout waiting for url ({0})", ex.ToString())); } if (httpWebResponse.StatusCode != HttpStatusCode.OK) { throw new Exception(string.Format("HTTP {0} from web source", httpWebResponse.StatusCode.ToString())); } Stream responseStream = httpWebResponse.GetResponseStream(); HashAlgorithm hashAlgorithm = new SHA1CryptoServiceProvider(); string text = FileUtilities.MakeTempFilename(MakeDownloadCacheDir(), "Download"); Stream outputStream = new FileStream(text, FileMode.CreateNew); StreamTee streamTee = new StreamTee(responseStream, outputStream); byte[] buffer = hashAlgorithm.ComputeHash(streamTee); streamTee.Close(); string arg = BytesToHexString(buffer); string text2 = Path.Combine(MakeDownloadCacheDir(), string.Format("Hash-{0}.{1}", arg, ImageTypeMapper.ByMimeType(httpWebResponse.ContentType).extension)); if (File.Exists(text2)) { File.Delete(text); } else { File.Move(text, text2); } httpWebResponse.Close(); return(new SourceDocument(new LocalDocumentDescriptor(text2, pageNumber))); }
public override Present Realize(string refCredit) { HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(this.documentUri); httpWebRequest.CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.Revalidate); D.Sayf(0, "Fetching {0}", new object[] { this.documentUri }); HttpWebResponse httpWebResponse; try { httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); } catch (WebException ex) { throw new Exception(string.Format("timeout waiting for url ({0})", ex.ToString())); } if (httpWebResponse.StatusCode != HttpStatusCode.OK) { throw new Exception(string.Format("HTTP {0} from web source", httpWebResponse.StatusCode.ToString())); } Stream responseStream = httpWebResponse.GetResponseStream(); HashAlgorithm hashAlgorithm = new SHA1CryptoServiceProvider(); string text = FileUtilities.MakeTempFilename(FutureDocumentFromUri.MakeDownloadCacheDir(), "Download"); Stream outputStream = new FileStream(text, FileMode.CreateNew); StreamTee streamTee = new StreamTee(responseStream, outputStream); byte[] buffer = hashAlgorithm.ComputeHash(streamTee); streamTee.Close(); string arg = this.BytesToHexString(buffer); string text2 = Path.Combine(FutureDocumentFromUri.MakeDownloadCacheDir(), string.Format("Hash-{0}.{1}", arg, ImageTypeMapper.ByMimeType(httpWebResponse.ContentType).extension)); if (File.Exists(text2)) { File.Delete(text); } else { File.Move(text, text2); } httpWebResponse.Close(); return new SourceDocument(new LocalDocumentDescriptor(text2, this.pageNumber)); }