protected void LoadWebData(string uri, string mockFile) { this.lastLoadErrors = false; // MOCK if (this.useMocks) { // MOCK this.DecodeData(new MemoryStream(File.ReadAllBytes(mockFile))); if (autoReportDoneAfterDecode) { this.DataLoaded(); } return; } // CACHE FileCache fileCache = this.GetCache(); if (fileCache != null) { if (fileCache.Exists()) { this.DecodeData(fileCache.Read()); if (autoReportDoneAfterDecode) { this.DataLoaded(); } return; } } // LOAD try { var webRequest = WebRequest.Create(uri) as HttpWebRequest; if (webRequest == null) { return; } webRequest.ContentType = this.requestContentType; using (var responseStream = webRequest.GetResponse().GetResponseStream()) { MemoryStream workStream = new MemoryStream(); responseStream.CopyTo(workStream); workStream.Seek(0, SeekOrigin.Begin); this.DecodeData(workStream); if (autoReportDoneAfterDecode) { this.DataLoaded(); } if (fileCache != null) { workStream.Seek(0, SeekOrigin.Begin); fileCache.Write(workStream); } } } catch (Exception exception) { Logger.Instance.Debug(exception.Message); this.lastLoadErrors = true; this.DataLoaded(); } }