/// <summary> /// Dumps the given item from the given cache and container. /// </summary> /// <param name="cache">Cache to look in.</param> /// <param name="container">Container to look in.</param> /// <param name="item">Item to dump.</param> private static void DumpItem(IItemCache cache, ItemCacheContainer container, string item) { #if true byte[] content = cache.FetchItem(container, item); if (content != null) { BinaryWriter writer = new BinaryWriter(Console.OpenStandardOutput()); writer.Write(content); writer.Close(); } #endif #if false ResultSummaryRecord record = FetchRecord(cache, container, item); if (record != null) { Console.WriteLine(); Console.WriteLine("IsVerificationTimeout = {0}", record.IsVerificationTimeout); Console.WriteLine("IsFailure = {0}", record.IsFailure); } else { Console.WriteLine(); Console.WriteLine("FetchRecord failed for {0}", item); } #endif }
/// <summary> /// Retrieves the requested result from the given cache. /// </summary> /// <param name="cache">Cache to query.</param> /// <param name="container">Container to query.</param> /// <param name="itemHash">Result to get.</param> /// <returns>The requested ResultSummaryRecord, or null if not found.</returns> private static ResultSummaryRecord FetchRecord(IItemCache cache, ItemCacheContainer container, string itemHash) { byte[] result = cache.FetchItem(container, itemHash); if (result != null) { MemoryStream resultStream = new MemoryStream(result); try { using (StreamReader inReader = new StreamReader(resultStream)) { string xmlSummary = inReader.ReadToEnd(); ResultSummaryRecord record = ResultSummaryRecord.FromXml(xmlSummary); if (record == null) { Console.WriteLine("FromXml failed for {0}", itemHash); } return(record); } } catch (System.Xml.XmlException ex) { Console.WriteLine("Malformed xml in {0}: {1}", itemHash, ex.ToString()); return(null); } finally { resultStream.Dispose(); } } else { Console.WriteLine("FetchItem failed for {0}", itemHash); return(null); } }
/// <summary> /// Retrieves the requested result from the given cache. /// </summary> /// <param name="cache">Cache to query.</param> /// <param name="container">Container to query.</param> /// <param name="itemHash">Result to get.</param> /// <returns>The requested ResultSummaryRecord, or null if not found.</returns> private static ResultSummaryRecord FetchRecord(IItemCache cache, ItemCacheContainer container, string itemHash) { byte[] result = cache.FetchItem(container, itemHash); if (result != null) { MemoryStream resultStream = new MemoryStream(result); try { using (StreamReader inReader = new StreamReader(resultStream)) { string xmlSummary = inReader.ReadToEnd(); ResultSummaryRecord record = ResultSummaryRecord.FromXml(xmlSummary); if (record == null) { Console.WriteLine("FromXml failed for {0}", itemHash); } return record; } } catch (System.Xml.XmlException ex) { Console.WriteLine("Malformed xml in {0}: {1}", itemHash, ex.ToString()); return null; } finally { resultStream.Dispose(); } } else { Console.WriteLine("FetchItem failed for {0}", itemHash); return null; } }