<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Footprints in the snow of a warped mind - dasBlog</title>
    <link>http://blogs.thesitedoctor.co.uk/test/</link>
    <description>newtelligence powered</description>
    <language>en-us</language>
    <copyright>Tim</copyright>
    <lastBuildDate>Wed, 11 Mar 2009 07:00:00 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>timgaunt@gmail.com</managingEditor>
    <webMaster>timgaunt@gmail.com</webMaster>
    <item>
      <trackback:ping>http://blogs.thesitedoctor.co.uk/test/Trackback.aspx?guid=b705c37b-b47f-4e8d-8f8b-091efc4cb684</trackback:ping>
      <pingback:server>http://blogs.thesitedoctor.co.uk/test/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.thesitedoctor.co.uk/test/PermaLink,guid,b705c37b-b47f-4e8d-8f8b-091efc4cb684.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://blogs.thesitedoctor.co.uk/test/CommentView,guid,b705c37b-b47f-4e8d-8f8b-091efc4cb684.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.thesitedoctor.co.uk/test/SyndicationService.asmx/GetEntryCommentsRss?guid=b705c37b-b47f-4e8d-8f8b-091efc4cb684</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
After <a href="Login.aspx">logging in</a>, be sure to visit all the options under <a href="EditConfig.aspx">Configuration</a> in
the Admin Menu Bar above. There are <a href="http://dasblog.info/ThemeScreenShots.aspx">26
themes to choose from</a>, and you can also <a href="http://dasblog.info/ThemesAndMacros.aspx">create
your own</a>.
</p>
        <p>
        </p>
        <img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/test/aggbug.ashx?id=b705c37b-b47f-4e8d-8f8b-091efc4cb684" />
      </body>
      <title>Congratulations, you've installed dasBlog with Web Deploy!</title>
      <guid isPermaLink="false">http://blogs.thesitedoctor.co.uk/test/PermaLink,guid,b705c37b-b47f-4e8d-8f8b-091efc4cb684.aspx</guid>
      <link>http://blogs.thesitedoctor.co.uk/test/2009/03/11/CongratulationsYouveInstalledDasBlogWithWebDeploy.aspx</link>
      <pubDate>Wed, 11 Mar 2009 07:00:00 GMT</pubDate>
      <description>
		&lt;p&gt;
After &lt;a href="Login.aspx"&gt;logging in&lt;/a&gt;, be sure to visit all the options under &lt;a href="EditConfig.aspx"&gt;Configuration&lt;/a&gt; in
the Admin Menu Bar above. There are &lt;a href="http://dasblog.info/ThemeScreenShots.aspx"&gt;26
themes to choose from&lt;/a&gt;, and you can also &lt;a href="http://dasblog.info/ThemesAndMacros.aspx"&gt;create
your own&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/test/aggbug.ashx?id=b705c37b-b47f-4e8d-8f8b-091efc4cb684" /&gt;</description>
      <comments>http://blogs.thesitedoctor.co.uk/test/CommentView,guid,b705c37b-b47f-4e8d-8f8b-091efc4cb684.aspx</comments>
      <category>dasBlog</category>
    </item>
    <item>
      <trackback:ping>http://blogs.thesitedoctor.co.uk/test/Trackback.aspx?guid=c66c1f56-d28a-45a5-98c6-1d8400dc272e</trackback:ping>
      <pingback:server>http://blogs.thesitedoctor.co.uk/test/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.thesitedoctor.co.uk/test/PermaLink,guid,c66c1f56-d28a-45a5-98c6-1d8400dc272e.aspx</pingback:target>
      <dc:creator>Tim</dc:creator>
      <wfw:comment>http://blogs.thesitedoctor.co.uk/test/CommentView,guid,c66c1f56-d28a-45a5-98c6-1d8400dc272e.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.thesitedoctor.co.uk/test/SyndicationService.asmx/GetEntryCommentsRss?guid=c66c1f56-d28a-45a5-98c6-1d8400dc272e</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
If you've been following my blog you'll know that I've been raving about error reporting
within ASP.Net (you can see my <a title="http://blogs.thesitedoctor.co.uk/tim/CategoryView,category,ASPNetErrorReporting.aspx" href="http://blogs.thesitedoctor.co.uk/tim/CategoryView,category,ASPNetErrorReporting">ASP.Net
Error Reporting category</a> for a couple of them if you like) but until now it's
been limited to those sites that you have access to the global.asax file.
</p>
        <p>
One of the irritations I've found with Umbraco and dasBlog is that I don't get notified
of errors as they're just logged to a text file/database somewhere. This is fine if
you run 2 or 3 sites but we manage too many to check them all everyday. Instead we
rely on email error notifications which until today have been a PITA to integrate
into Umbraco.
</p>
        <p>
Today I'd like to introduce to you <a title="http://blogs.thesitedoctor.co.uk/tim/files/ErrorHandling_v2.0.zip" href="http://blogs.thesitedoctor.co.uk/tim/files/ErrorHandling_v2.0.zip">Error
Handling v2.0</a> which instead of relying on the global.asax file for the error hooks,
uses a HttpModule which means you can install it into <strong>any existing/pre-built
application</strong> such as Umbraco and dasBlog.
</p>
        <p>
Adding it into the site is simple, you'll need to install the module into the web.config
file and add the configuration section a sample (cut down) web.config is below:
</p>
        <div class="code">
          <img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" />
          <span style="color: #0000ff">&lt;</span>
          <span style="color: #8b0000">?xml</span>
          <span style="color: #ff0000"> version</span>
          <span style="color: #8b0000">=</span>
          <span style="color: #0000ff">"1.0"</span>
          <span style="color: #8b0000">?</span>
          <span style="color: #0000ff">&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #8b0000">configuration</span><span style="color: #0000ff">&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" />    <span style="color: #0000ff">&lt;</span><span style="color: #8b0000">configSections</span><span style="color: #0000ff">&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" />        <span style="color: #0000ff">&lt;</span><span style="color: #8b0000">section</span><span style="color: #ff0000"> name</span><span style="color: #8b0000">=</span><span style="color: #0000ff">"tsdErrorsConfigSection"</span><span style="color: #ff0000"> allowExeDefinition</span><span style="color: #8b0000">=</span><span style="color: #0000ff">"MachineToApplication"</span><span style="color: #ff0000"> restartOnExternalChanges</span><span style="color: #8b0000">=</span><span style="color: #0000ff">"true"</span><span style="color: #ff0000"> type</span><span style="color: #8b0000">=</span><span style="color: #0000ff">"System.Configuration.NameValueFileSectionHandler,
System,</span> <span style="color: #0000ff">Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089"</span> <span style="color: #8b0000">/</span><span style="color: #0000ff">&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" />    <span style="color: #0000ff">&lt;</span><span style="color: #8b0000">/configSections</span><span style="color: #0000ff">&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" />  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" />    <span style="color: #0000ff">&lt;</span><span style="color: #8b0000">tsdErrorsConfigSection</span><span style="color: #ff0000"> file</span><span style="color: #8b0000">=</span><span style="color: #0000ff">"ErrorHandling.config"</span><span style="color: #8b0000">/</span><span style="color: #0000ff">&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" />  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" />    <span style="color: #0000ff">&lt;</span><span style="color: #8b0000">system.net</span><span style="color: #0000ff">&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" />        <span style="color: #0000ff">&lt;</span><span style="color: #8b0000">mailSettings</span><span style="color: #0000ff">&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" />            <span style="color: #0000ff">&lt;</span><span style="color: #8b0000">smtp</span><span style="color: #ff0000"> from</span><span style="color: #8b0000">=</span><span style="color: #0000ff">"you@yourdomain.com"&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" />                <span style="color: #0000ff">&lt;</span><span style="color: #8b0000">network</span><span style="color: #ff0000"> host</span><span style="color: #8b0000">=</span><span style="color: #0000ff">"127.0.0.1"</span><span style="color: #ff0000"> port</span><span style="color: #8b0000">=</span><span style="color: #0000ff">"25"</span> <span style="color: #8b0000">/</span><span style="color: #0000ff">&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" />            <span style="color: #0000ff">&lt;</span><span style="color: #8b0000">/smtp</span><span style="color: #0000ff">&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" />        <span style="color: #0000ff">&lt;</span><span style="color: #8b0000">/mailSettings</span><span style="color: #0000ff">&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" />    <span style="color: #0000ff">&lt;</span><span style="color: #8b0000">/system.net</span><span style="color: #0000ff">&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" />  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" />    <span style="color: #0000ff">&lt;</span><span style="color: #8b0000">system.web</span><span style="color: #0000ff">&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" />        <span style="color: #0000ff">&lt;</span><span style="color: #8b0000">httpModules</span><span style="color: #0000ff">&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" />            <span style="color: #0000ff">&lt;</span><span style="color: #8b0000">add</span><span style="color: #ff0000"> name</span><span style="color: #8b0000">=</span><span style="color: #0000ff">"ErrorModule"</span><span style="color: #ff0000"> type</span><span style="color: #8b0000">=</span><span style="color: #0000ff">"TheSiteDoctor.ErrorHandling.ErrorModule,
TheSiteDoctor.ErrorHandling</span><span style="color: #0000ff">"</span> <span style="color: #8b0000">/</span><span style="color: #0000ff">&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" />        <span style="color: #0000ff">&lt;</span><span style="color: #8b0000">/httpModules</span><span style="color: #0000ff">&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" />    <span style="color: #0000ff">&lt;</span><span style="color: #8b0000">/system.web</span><span style="color: #0000ff">&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /><br /><div id="closed633713471312892682_23" style="display: none"><img onclick="showHideCodeDiv('633713471312892682_23', false)" alt="" src="http://blogs.sitedoc.co.uk/img/sc/PlusNoLines.gif" align="top" /><b><span style="color: #00008b">&lt;!--...--&gt;</span></b></div><div id="open633713471312892682_23" style="display: block"><img onclick="showHideCodeDiv('633713471312892682_23', true)" alt="" src="http://blogs.sitedoc.co.uk/img/sc/minusNoTopLine.gif" align="top" /><span style="color: #008000">&lt;!--</span>   
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><span style="color: #008000">IIS
7 Settings</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />    <span style="color: #008000">&lt;system.webServer&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />        <span style="color: #008000">&lt;validation
validateIntegratedModeConfiguration="false" /&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />        <span style="color: #008000">&lt;modules&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />            <span style="color: #008000">&lt;add
name="ErrorModule" type="TheSiteDoctor.ErrorHandling.ErrorModule, TheSiteDoctor.ErrorHandling"
/&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />        <span style="color: #008000">&lt;/modules&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />    <span style="color: #008000">&lt;/system.webServer&gt;</span>  
<br /><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" /><span style="color: #008000">--&gt;</span></div><img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /><span style="color: #0000ff">&lt;</span><span style="color: #8b0000">/configuration</span><span style="color: #0000ff">&gt;</span></div>
        <p>
Then you'll need to check all the settings -I recommend storing these in another .config
file for clarities sake. Make sure you've configured your SMTP settings and you should
be good to go.
</p>
        <p>
If you want to test your settings, I've included a test page for you that will check
your settings and show you the defaults if you've not set them. I've got this running
now on a couple of Umbraco and dasBlog installs without an issue.
</p>
        <p>
There's also a useful logging system in it which I'll look to overview in a later
post but if you want to see it, check out the included aspx file.
</p>
        <p>
          <a title="http://blogs.thesitedoctor.co.uk/tim/files/ErrorHandling_v2.0.zip" href="http://blogs.thesitedoctor.co.uk/tim/files/ErrorHandling_v2.0.zip">Download
ErrorHandling_v2.0.zip (25Kb)</a>
        </p>
        <p>
If you do use this code I'd be interested to hear how you get on, I think it requires
a little more refinement un some areas but it's pretty robust.
</p>
        <p>
Enjoy.
</p>
        <img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/test/aggbug.ashx?id=c66c1f56-d28a-45a5-98c6-1d8400dc272e" />
      </body>
      <title>Advanced Error Reporting in Umbraco, dasBlog and other ASP.Net sites</title>
      <guid isPermaLink="false">http://blogs.thesitedoctor.co.uk/test/PermaLink,guid,c66c1f56-d28a-45a5-98c6-1d8400dc272e.aspx</guid>
      <link>http://blogs.thesitedoctor.co.uk/test/2009/02/27/AdvancedErrorReportingInUmbracoDasBlogAndOtherASPNetSites.aspx</link>
      <pubDate>Fri, 27 Feb 2009 15:51:13 GMT</pubDate>
      <description>&lt;p&gt;
If you've been following my blog you'll know that I've been raving about error reporting
within ASP.Net (you can see my &lt;a title="http://blogs.thesitedoctor.co.uk/tim/CategoryView,category,ASPNetErrorReporting.aspx" href="http://blogs.thesitedoctor.co.uk/tim/CategoryView,category,ASPNetErrorReporting"&gt;ASP.Net
Error Reporting category&lt;/a&gt; for a couple of them if you like) but until now it's
been limited to those sites that you have access to the global.asax file.
&lt;/p&gt;
&lt;p&gt;
One of the irritations I've found with Umbraco and dasBlog is that I don't get notified
of errors as they're just logged to a text file/database somewhere. This is fine if
you run 2 or 3 sites but we manage too many to check them all everyday. Instead we
rely on email error notifications which until today have been a PITA to integrate
into Umbraco.
&lt;/p&gt;
&lt;p&gt;
Today I'd like to introduce to you &lt;a title="http://blogs.thesitedoctor.co.uk/tim/files/ErrorHandling_v2.0.zip" href="http://blogs.thesitedoctor.co.uk/tim/files/ErrorHandling_v2.0.zip"&gt;Error
Handling v2.0&lt;/a&gt; which instead of relying on the global.asax file for the error hooks,
uses a HttpModule which means you can install it into &lt;strong&gt;any existing/pre-built
application&lt;/strong&gt; such as Umbraco and dasBlog.
&lt;/p&gt;
&lt;p&gt;
Adding it into the site is simple, you'll need to install the module into the web.config
file and add the configuration section a sample (cut down) web.config is below:
&lt;/p&gt;
&lt;div class="code"&gt;&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;?xml&lt;/span&gt;&lt;span style="color: #ff0000"&gt; version&lt;/span&gt;&lt;span style="color: #8b0000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;?&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;configuration&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;configSections&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;section&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #8b0000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;quot;tsdErrorsConfigSection&amp;quot;&lt;/span&gt;&lt;span style="color: #ff0000"&gt; allowExeDefinition&lt;/span&gt;&lt;span style="color: #8b0000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;quot;MachineToApplication&amp;quot;&lt;/span&gt;&lt;span style="color: #ff0000"&gt; restartOnExternalChanges&lt;/span&gt;&lt;span style="color: #8b0000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style="color: #ff0000"&gt; type&lt;/span&gt;&lt;span style="color: #8b0000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;quot;System.Configuration.NameValueFileSectionHandler,
System,&lt;/span&gt;&amp;#160;&lt;span style="color: #0000ff"&gt;Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089&amp;quot;&lt;/span&gt;&amp;#160;&lt;span style="color: #8b0000"&gt;/&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;/configSections&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;tsdErrorsConfigSection&lt;/span&gt;&lt;span style="color: #ff0000"&gt; file&lt;/span&gt;&lt;span style="color: #8b0000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;quot;ErrorHandling.config&amp;quot;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;/&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;system.net&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;mailSettings&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;smtp&lt;/span&gt;&lt;span style="color: #ff0000"&gt; from&lt;/span&gt;&lt;span style="color: #8b0000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;quot;you@yourdomain.com&amp;quot;&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;network&lt;/span&gt;&lt;span style="color: #ff0000"&gt; host&lt;/span&gt;&lt;span style="color: #8b0000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;quot;127.0.0.1&amp;quot;&lt;/span&gt;&lt;span style="color: #ff0000"&gt; port&lt;/span&gt;&lt;span style="color: #8b0000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;quot;25&amp;quot;&lt;/span&gt;&amp;#160;&lt;span style="color: #8b0000"&gt;/&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;/smtp&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;/mailSettings&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;/system.net&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;system.web&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;httpModules&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;add&lt;/span&gt;&lt;span style="color: #ff0000"&gt; name&lt;/span&gt;&lt;span style="color: #8b0000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;quot;ErrorModule&amp;quot;&lt;/span&gt;&lt;span style="color: #ff0000"&gt; type&lt;/span&gt;&lt;span style="color: #8b0000"&gt;=&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;quot;TheSiteDoctor.ErrorHandling.ErrorModule,
TheSiteDoctor.ErrorHandling&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;quot;&lt;/span&gt;&amp;#160;&lt;span style="color: #8b0000"&gt;/&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;/httpModules&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;/system.web&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;div id="closed633713471312892682_23" style="display: none"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633713471312892682_23&amp;#39;, false)" alt="" src="http://blogs.sitedoc.co.uk/img/sc/PlusNoLines.gif" align="top" /&gt;&lt;b&gt;&lt;span style="color: #00008b"&gt;&amp;lt;!--...--&amp;gt;&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id="open633713471312892682_23" style="display: block"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633713471312892682_23&amp;#39;, true)" alt="" src="http://blogs.sitedoc.co.uk/img/sc/minusNoTopLine.gif" align="top" /&gt;&lt;span style="color: #008000"&gt;&amp;lt;!--&lt;/span&gt;&amp;#160;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&lt;span style="color: #008000"&gt;IIS
7 Settings&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #008000"&gt;&amp;lt;system.webServer&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #008000"&gt;&amp;lt;validation
validateIntegratedModeConfiguration=&amp;quot;false&amp;quot; /&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #008000"&gt;&amp;lt;modules&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #008000"&gt;&amp;lt;add
name=&amp;quot;ErrorModule&amp;quot; type=&amp;quot;TheSiteDoctor.ErrorHandling.ErrorModule, TheSiteDoctor.ErrorHandling&amp;quot;
/&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #008000"&gt;&amp;lt;/modules&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #008000"&gt;&amp;lt;/system.webServer&amp;gt;&lt;/span&gt;&amp;#160; 
&lt;br /&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" /&gt;&lt;span style="color: #008000"&gt;--&amp;gt;&lt;/span&gt;
&lt;/div&gt;
&lt;img alt="" src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #8b0000"&gt;/configuration&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; 
&lt;/div&gt;
&lt;p&gt;
Then you'll need to check all the settings -I recommend storing these in another .config
file for clarities sake. Make sure you've configured your SMTP settings and you should
be good to go.
&lt;/p&gt;
&lt;p&gt;
If you want to test your settings, I've included a test page for you that will check
your settings and show you the defaults if you've not set them. I've got this running
now on a couple of Umbraco and dasBlog installs without an issue.
&lt;/p&gt;
&lt;p&gt;
There's also a useful logging system in it which I'll look to overview in a later
post but if you want to see it, check out the included aspx file.
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://blogs.thesitedoctor.co.uk/tim/files/ErrorHandling_v2.0.zip" href="http://blogs.thesitedoctor.co.uk/tim/files/ErrorHandling_v2.0.zip"&gt;Download
ErrorHandling_v2.0.zip (25Kb)&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
If you do use this code I'd be interested to hear how you get on, I think it requires
a little more refinement un some areas but it's pretty robust.
&lt;/p&gt;
&lt;p&gt;
Enjoy.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/test/aggbug.ashx?id=c66c1f56-d28a-45a5-98c6-1d8400dc272e" /&gt;</description>
      <comments>http://blogs.thesitedoctor.co.uk/test/CommentView,guid,c66c1f56-d28a-45a5-98c6-1d8400dc272e.aspx</comments>
      <category>ASP.Net</category>
      <category>ASP.Net/Error Reporting</category>
      <category>dasBlog</category>
      <category>Umbraco</category>
      <category>Web Development</category>
    </item>
    <item>
      <trackback:ping>http://blogs.thesitedoctor.co.uk/test/Trackback.aspx?guid=82ed85a4-7066-4e46-9256-361685165d44</trackback:ping>
      <pingback:server>http://blogs.thesitedoctor.co.uk/test/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.thesitedoctor.co.uk/test/PermaLink,guid,82ed85a4-7066-4e46-9256-361685165d44.aspx</pingback:target>
      <dc:creator>Tim</dc:creator>
      <wfw:comment>http://blogs.thesitedoctor.co.uk/test/CommentView,guid,82ed85a4-7066-4e46-9256-361685165d44.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.thesitedoctor.co.uk/test/SyndicationService.asmx/GetEntryCommentsRss?guid=82ed85a4-7066-4e46-9256-361685165d44</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
One of the issues I had with <a href="http://www.jforsythe.com/jforsythe/proj_dasblog.aspx">John
Forsythe's Recent Comments macro for DasBlog</a> was that the dasBlog recent comments
weren't ordered by date (descending). I found that as people commented on older posts
they were getting buried which irritated me as many were very still valid comments.
</p>
        <p>
The fix was actually fairly simple, it was just a matter of adding  a sort and
thanks to Lamba expressions, this is something we can do fairly simply. If you want
to add recent comments to your dasBlog installation, use the following macro:
</p>
        <div class="code">
          <h2>Recent Comments Macro
</h2>
          <img src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" />
          <span style="color: #0000ff">public
virtual</span> Control RecentComments(<span style="color: #0000ff">int</span> count, <span style="color: #0000ff">int</span> adminComments, <span style="color: #0000ff">int</span> trimTitle, <span style="color: #0000ff">int</span> trimContent, <span style="color: #0000ff">int</span> trimAuthor, <span style="color: #0000ff">bool</span> showTitle, <span style="color: #0000ff">bool</span> showCommentText, <span style="color: #0000ff">bool</span> showCommentCount) 
<br /><div id="closed633704585927282959_2" style="display: none"><img onclick="showHideCodeDiv('633704585927282959_2', false)" src="http://blogs.sitedoc.co.uk/img/sc/PlusNoLines.gif" align="top" /><b><span style="color: #00008b">{...}</span></b></div><div id="open633704585927282959_2" style="display: block"><img onclick="showHideCodeDiv('633704585927282959_2', true)" src="http://blogs.sitedoc.co.uk/img/sc/minusNoTopLine.gif" align="top" />{ 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />    <span style="color: #0000ff">int</span> commentsToShow; 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />    <span style="color: #0000ff">int</span> totalComments; 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />   
CommentCollection allComments = <span style="color: #0000ff">this</span>.requestPage.DataService.GetAllComments(); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />   
totalComments = allComments.Count; 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />    <span style="color: #008000">//Sort
the comments in date order (descending)</span><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />   
allComments.Sort((c1, c2) =&gt; c1.CreatedUtc.CompareTo(c2.CreatedUtc)); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />    <span style="color: #0000ff">if</span> (!<span style="color: #0000ff">this</span>.requestPage.HideAdminTools
&amp;&amp; SiteSecurity.IsInRole(<span style="color: #800000">"admin"</span>)) 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />       
commentsToShow = totalComments - adminComments; 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />    <span style="color: #0000ff">else</span><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />       
commentsToShow = totalComments - count; 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />    <span style="color: #0000ff">if</span> (commentsToShow
&lt; <span style="color: #008080">0</span>) 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />       
commentsToShow = <span style="color: #008080">0</span>; 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />   
StringBuilder sb = <span style="color: #0000ff">new</span> StringBuilder(); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />   
sb.AppendLine(<span style="color: #800000">"&lt;div class=\"recentComments\"&gt;"</span>); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />    <span style="color: #0000ff">if</span> (showCommentCount) 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />       
sb.AppendFormat(<span style="color: #800000">"&lt;div class=\"totalComments\"&gt;Total
Comments:</span> <span style="color: #800000">{0}&lt;/div&gt;"</span>, totalComments); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />   
sb.AppendLine(<span style="color: #800000">"&lt;ul class=\"comments\"&gt;"</span>); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><div id="closed633704585927282959_29" style="display: none"><img onclick="showHideCodeDiv('633704585927282959_29', false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" />    <b><span style="color: #00008b">Loop
through the comments</span></b></div><div id="open633704585927282959_29" style="display: block"><img onclick="showHideCodeDiv('633704585927282959_29', true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" />    <b><span style="color: #0000ff">#region</span></b> Loop
through the comments 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />    <span style="color: #0000ff">for</span> (<span style="color: #0000ff">int</span> i
= totalComments - <span style="color: #008080">1</span>; i &gt;= commentsToShow; i--) 
<br /><div id="closed633704585927282959_32" style="display: none"><img onclick="showHideCodeDiv('633704585927282959_32', false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" />    <b><span style="color: #00008b">{...}</span></b></div><div id="open633704585927282959_32" style="display: block"><img onclick="showHideCodeDiv('633704585927282959_32', true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" />   
{ 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />       
Comment current = allComments[i]; 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />        <span style="color: #0000ff">bool</span> showComment; 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />        <span style="color: #0000ff">if</span> (!current.IsPublic
|| (current.SpamState == SpamState.Spam)) 
<br /><div id="closed633704585927282959_37" style="display: none"><img onclick="showHideCodeDiv('633704585927282959_37', false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" />        <b><span style="color: #00008b">{...}</span></b></div><div id="open633704585927282959_37" style="display: block"><img onclick="showHideCodeDiv('633704585927282959_37', true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" />       
{ 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />            <span style="color: #0000ff">if</span> (!<span style="color: #0000ff">this</span>.requestPage.HideAdminTools
&amp;&amp; SiteSecurity.IsInRole(<span style="color: #800000">"admin"</span>)) 
<br /><div id="closed633704585927282959_39" style="display: none"><img onclick="showHideCodeDiv('633704585927282959_39', false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" />            <b><span style="color: #00008b">{...}</span></b></div><div id="open633704585927282959_39" style="display: block"><img onclick="showHideCodeDiv('633704585927282959_39', true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" />           
{ 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />               
showComment = <span style="color: #0000ff">true</span>; 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" />           
}
</div><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />            <span style="color: #0000ff">else</span><br /><div id="closed633704585927282959_43" style="display: none"><img onclick="showHideCodeDiv('633704585927282959_43', false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" />            <b><span style="color: #00008b">{...}</span></b></div><div id="open633704585927282959_43" style="display: block"><img onclick="showHideCodeDiv('633704585927282959_43', true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" />           
{ 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />               
showComment = <span style="color: #0000ff">false</span>; 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />                <span style="color: #0000ff">if</span> (commentsToShow
&gt; <span style="color: #008080">0</span>) 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />                   
commentsToShow--; 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" />           
}
</div><img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" />       
}
</div><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />        <span style="color: #0000ff">else</span><br /><div id="closed633704585927282959_50" style="display: none"><img onclick="showHideCodeDiv('633704585927282959_50', false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" />        <b><span style="color: #00008b">{...}</span></b></div><div id="open633704585927282959_50" style="display: block"><img onclick="showHideCodeDiv('633704585927282959_50', true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" />       
{ 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />           
showComment = <span style="color: #0000ff">true</span>; 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" />       
}
</div><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />        <span style="color: #0000ff">if</span> (showComment) 
<br /><div id="closed633704585927282959_55" style="display: none"><img onclick="showHideCodeDiv('633704585927282959_55', false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" />        <b><span style="color: #00008b">{...}</span></b></div><div id="open633704585927282959_55" style="display: block"><img onclick="showHideCodeDiv('633704585927282959_55', true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" />       
{ 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />            <span style="color: #0000ff">if</span> ((current.SpamState
== SpamState.Spam)) 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />               
sb.Append(<span style="color: #800000">"&lt;li class=\"spam\"&gt;"</span>); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />            <span style="color: #0000ff">else
if</span> (!current.IsPublic) 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />               
sb.Append(<span style="color: #800000">"&lt;li class=\"hidden\"&gt;"</span>); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />            <span style="color: #0000ff">else</span><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />               
sb.Append(<span style="color: #800000">"&lt;li&gt;"</span>); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />            <span style="color: #0000ff">string</span> link
= <span style="color: #008b8b">String</span>.Format(<span style="color: #800000">"{0}{1}{2}"</span>,
SiteUtilities.GetCommentViewUrl(current.TargetEntryId), <span style="color: #800000">"#"</span>,
current.EntryId); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />            <span style="color: #0000ff">string</span> title
= current.TargetTitle; 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />            <span style="color: #0000ff">string</span> desc
= current.Content; 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />            <span style="color: #0000ff">string</span> author
= current.Author; 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />            <span style="color: #0000ff">if</span> (showTitle) 
<br /><div id="closed633704585927282959_69" style="display: none"><img onclick="showHideCodeDiv('633704585927282959_69', false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" />            <b><span style="color: #00008b">{...}</span></b></div><div id="open633704585927282959_69" style="display: block"><img onclick="showHideCodeDiv('633704585927282959_69', true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" />           
{ 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />               
sb.AppendFormat(<span style="color: #800000">"&lt;div class=\"recent{0}CommentsTitle\"&gt;&lt;a
href=\"{1}\"&gt;</span><span style="color: #800000">"</span>, 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />                   
current.SpamState, 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />                   
link 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />                   
); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />                <span style="color: #0000ff">if</span> ((title.Length
&gt; trimTitle) &amp;&amp; (trimTitle &gt; <span style="color: #008080">0</span>)) 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />                   
sb.AppendFormat(<span style="color: #800000">"RE: {0}..."</span>, title.Substring(<span style="color: #008080">0</span>,
trimTitle)); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />                <span style="color: #0000ff">else</span><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />                   
sb.AppendFormat(<span style="color: #800000">"RE: {0}"</span>, title); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />               
sb.Append(<span style="color: #800000">"&lt;/a&gt;&lt;/div&gt;"</span>); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" />           
}
</div><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />            <span style="color: #0000ff">if</span> (showCommentText) 
<br /><div id="closed633704585927282959_84" style="display: none"><img onclick="showHideCodeDiv('633704585927282959_84', false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" />            <b><span style="color: #00008b">{...}</span></b></div><div id="open633704585927282959_84" style="display: block"><img onclick="showHideCodeDiv('633704585927282959_84', true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" />           
{ 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />               
sb.AppendFormat(<span style="color: #800000">"&lt;div class=\"recentCommentsContent\"&gt;&lt;a
href=\"{0}\"&gt;</span><span style="color: #800000">"</span>, 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />                   
link 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />                   
); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />                <span style="color: #0000ff">if</span> ((desc.Length
&gt; trimContent) &amp;&amp; (trimContent &gt; <span style="color: #008080">0</span>)) 
<br /><div id="closed633704585927282959_90" style="display: none"><img onclick="showHideCodeDiv('633704585927282959_90', false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" />                <b><span style="color: #00008b">{...}</span></b></div><div id="open633704585927282959_90" style="display: block"><img onclick="showHideCodeDiv('633704585927282959_90', true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" />               
{ 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />                   
sb.Append(desc.Substring(<span style="color: #008080">0</span>, trimContent)); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />                   
sb.Append(<span style="color: #800000">"..."</span>); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" />               
}
</div><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />                <span style="color: #0000ff">else</span><br /><div id="closed633704585927282959_95" style="display: none"><img onclick="showHideCodeDiv('633704585927282959_95', false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" />                <b><span style="color: #00008b">{...}</span></b></div><div id="open633704585927282959_95" style="display: block"><img onclick="showHideCodeDiv('633704585927282959_95', true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" />               
{ 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />                   
sb.Append(desc); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" />               
}
</div><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />               
sb.Append(<span style="color: #800000">"&lt;/a&gt;&lt;/div&gt;"</span>); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" />           
}
</div><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />           
sb.Append(<span style="color: #800000">"&lt;div class=\"recentCommentsAuthor\"&gt;"</span>); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />            <span style="color: #0000ff">if</span> ((author.Length
&gt; trimAuthor) &amp;&amp; (trimAuthor &gt; <span style="color: #008080">0</span>)) 
<br /><div id="closed633704585927282959_105" style="display: none"><img onclick="showHideCodeDiv('633704585927282959_105', false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" />            <b><span style="color: #00008b">{...}</span></b></div><div id="open633704585927282959_105" style="display: block"><img onclick="showHideCodeDiv('633704585927282959_105', true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" />           
{ 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />                <span style="color: #0000ff">int</span> num3
= (trimAuthor &gt; author.Length) ? author.Length : trimAuthor; 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />               
sb.Append(<span style="color: #800000">"by "</span> + author.Substring(<span style="color: #008080">0</span>,
num3)); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />               
sb.Append(<span style="color: #800000">"..."</span>); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" />           
}
</div><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />            <span style="color: #0000ff">else</span><br /><div id="closed633704585927282959_111" style="display: none"><img onclick="showHideCodeDiv('633704585927282959_111', false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" />            <b><span style="color: #00008b">{...}</span></b></div><div id="open633704585927282959_111" style="display: block"><img onclick="showHideCodeDiv('633704585927282959_111', true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" />           
{ 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />               
sb.Append(<span style="color: #800000">"by "</span> + author); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" />           
}
</div><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />           
sb.Append(<span style="color: #800000">"&lt;/div&gt;&lt;/li&gt;"</span>); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" />       
}
</div><img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" />   
}
</div><img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" />    <b><span style="color: #0000ff">#endregion</span></b></div><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />   
sb.AppendLine(<span style="color: #800000">"&lt;/ul&gt;"</span>); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />   
sb.AppendLine(<span style="color: #800000">"&lt;/div&gt;"</span>); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /><br /><img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" />    <span style="color: #0000ff">return
new</span> LiteralControl(sb.ToString()); 
<br /><img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" />}
</div></div>
        <p>
I've since been working on extending it further so you can add a "All Comments" link
which I'll post up later as it needs a little more work :)
</p>
        <p>
If you want this wrapped up as a DLL let me know and I'll upload it.
</p>
        <p>
          <strong>Update 26th Feb 2009:</strong> You can <a href="http://blogs.thesitedoctor.co.uk/tim/files/TSDMacros_v1.1_20090226.zip">download
the dll here</a> (it's also got a few other things in there if you want to look around).
</p>
        <p>
          <strong>Update 27th Feb 2009:</strong> I noticed that the above code was messing up
everynow and again so I've updated it to use Linq instead which seems to work well.
I've updated the DLL but not the source yet.
</p>
        <img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/test/aggbug.ashx?id=82ed85a4-7066-4e46-9256-361685165d44" />
      </body>
      <title>Recent comments macro for DasBlog</title>
      <guid isPermaLink="false">http://blogs.thesitedoctor.co.uk/test/PermaLink,guid,82ed85a4-7066-4e46-9256-361685165d44.aspx</guid>
      <link>http://blogs.thesitedoctor.co.uk/test/2009/02/17/RecentCommentsMacroForDasBlog.aspx</link>
      <pubDate>Tue, 17 Feb 2009 09:25:05 GMT</pubDate>
      <description>&lt;p&gt;
One of the issues I had with &lt;a href="http://www.jforsythe.com/jforsythe/proj_dasblog.aspx"&gt;John
Forsythe's Recent Comments macro for DasBlog&lt;/a&gt; was that the dasBlog recent comments
weren't ordered by date (descending). I found that as people commented on older posts
they were getting buried which irritated me as many were very still valid comments.
&lt;/p&gt;
&lt;p&gt;
The fix was actually fairly simple, it was just a matter of adding&amp;#160; a sort and
thanks to Lamba expressions, this is something we can do fairly simply. If you want
to add recent comments to your dasBlog installation, use the following macro:
&lt;/p&gt;
&lt;div class="code"&gt;
&lt;h2&gt;Recent Comments Macro
&lt;/h2&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/clear.gif" align="top" /&gt;&lt;span style="color: #0000ff"&gt;public
virtual&lt;/span&gt; Control RecentComments(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; count, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; adminComments, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; trimTitle, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; trimContent, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; trimAuthor, &lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; showTitle, &lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; showCommentText, &lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; showCommentCount) 
&lt;br /&gt;
&lt;div id="closed633704585927282959_2" style="display: none"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_2&amp;#39;, false)" src="http://blogs.sitedoc.co.uk/img/sc/PlusNoLines.gif" align="top" /&gt;&lt;b&gt;&lt;span style="color: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id="open633704585927282959_2" style="display: block"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_2&amp;#39;, true)" src="http://blogs.sitedoc.co.uk/img/sc/minusNoTopLine.gif" align="top" /&gt;{ 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; commentsToShow; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; totalComments; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;
CommentCollection allComments = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.requestPage.DataService.GetAllComments(); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;
totalComments = allComments.Count; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #008000"&gt;//Sort
the comments in date order (descending)&lt;/span&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;
allComments.Sort((c1, c2) =&amp;gt; c1.CreatedUtc.CompareTo(c2.CreatedUtc)); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (!&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.requestPage.HideAdminTools
&amp;amp;&amp;amp; SiteSecurity.IsInRole(&lt;span style="color: #800000"&gt;&amp;quot;admin&amp;quot;&lt;/span&gt;)) 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
commentsToShow = totalComments - adminComments; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
commentsToShow = totalComments - count; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (commentsToShow
&amp;lt; &lt;span style="color: #008080"&gt;0&lt;/span&gt;) 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
commentsToShow = &lt;span style="color: #008080"&gt;0&lt;/span&gt;; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;
StringBuilder sb = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; StringBuilder(); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;
sb.AppendLine(&lt;span style="color: #800000"&gt;&amp;quot;&amp;lt;div class=\&amp;quot;recentComments\&amp;quot;&amp;gt;&amp;quot;&lt;/span&gt;); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (showCommentCount) 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
sb.AppendFormat(&lt;span style="color: #800000"&gt;&amp;quot;&amp;lt;div class=\&amp;quot;totalComments\&amp;quot;&amp;gt;Total
Comments:&lt;/span&gt;&amp;#160;&lt;span style="color: #800000"&gt;{0}&amp;lt;/div&amp;gt;&amp;quot;&lt;/span&gt;, totalComments); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;
sb.AppendLine(&lt;span style="color: #800000"&gt;&amp;quot;&amp;lt;ul class=\&amp;quot;comments\&amp;quot;&amp;gt;&amp;quot;&lt;/span&gt;); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;div id="closed633704585927282959_29" style="display: none"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_29&amp;#39;, false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;b&gt;&lt;span style="color: #00008b"&gt;Loop
through the comments&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id="open633704585927282959_29" style="display: block"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_29&amp;#39;, true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;b&gt;&lt;span style="color: #0000ff"&gt;#region&lt;/span&gt;&lt;/b&gt; Loop
through the comments 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; i
= totalComments - &lt;span style="color: #008080"&gt;1&lt;/span&gt;; i &amp;gt;= commentsToShow; i--) 
&lt;br /&gt;
&lt;div id="closed633704585927282959_32" style="display: none"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_32&amp;#39;, false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;b&gt;&lt;span style="color: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id="open633704585927282959_32" style="display: block"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_32&amp;#39;, true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;
{ 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
Comment current = allComments[i]; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; showComment; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (!current.IsPublic
|| (current.SpamState == SpamState.Spam)) 
&lt;br /&gt;
&lt;div id="closed633704585927282959_37" style="display: none"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_37&amp;#39;, false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;b&gt;&lt;span style="color: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id="open633704585927282959_37" style="display: block"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_37&amp;#39;, true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
{ 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (!&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.requestPage.HideAdminTools
&amp;amp;&amp;amp; SiteSecurity.IsInRole(&lt;span style="color: #800000"&gt;&amp;quot;admin&amp;quot;&lt;/span&gt;)) 
&lt;br /&gt;
&lt;div id="closed633704585927282959_39" style="display: none"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_39&amp;#39;, false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;b&gt;&lt;span style="color: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id="open633704585927282959_39" style="display: block"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_39&amp;#39;, true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
{ 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
showComment = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
}
&lt;/div&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; 
&lt;br /&gt;
&lt;div id="closed633704585927282959_43" style="display: none"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_43&amp;#39;, false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;b&gt;&lt;span style="color: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id="open633704585927282959_43" style="display: block"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_43&amp;#39;, true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
{ 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
showComment = &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (commentsToShow
&amp;gt; &lt;span style="color: #008080"&gt;0&lt;/span&gt;) 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
commentsToShow--; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
}
&lt;/div&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
}
&lt;/div&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; 
&lt;br /&gt;
&lt;div id="closed633704585927282959_50" style="display: none"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_50&amp;#39;, false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;b&gt;&lt;span style="color: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id="open633704585927282959_50" style="display: block"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_50&amp;#39;, true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
{ 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
showComment = &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
}
&lt;/div&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (showComment) 
&lt;br /&gt;
&lt;div id="closed633704585927282959_55" style="display: none"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_55&amp;#39;, false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;b&gt;&lt;span style="color: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id="open633704585927282959_55" style="display: block"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_55&amp;#39;, true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
{ 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; ((current.SpamState
== SpamState.Spam)) 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
sb.Append(&lt;span style="color: #800000"&gt;&amp;quot;&amp;lt;li class=\&amp;quot;spam\&amp;quot;&amp;gt;&amp;quot;&lt;/span&gt;); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;else
if&lt;/span&gt; (!current.IsPublic) 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
sb.Append(&lt;span style="color: #800000"&gt;&amp;quot;&amp;lt;li class=\&amp;quot;hidden\&amp;quot;&amp;gt;&amp;quot;&lt;/span&gt;); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
sb.Append(&lt;span style="color: #800000"&gt;&amp;quot;&amp;lt;li&amp;gt;&amp;quot;&lt;/span&gt;); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; link
= &lt;span style="color: #008b8b"&gt;String&lt;/span&gt;.Format(&lt;span style="color: #800000"&gt;&amp;quot;{0}{1}{2}&amp;quot;&lt;/span&gt;,
SiteUtilities.GetCommentViewUrl(current.TargetEntryId), &lt;span style="color: #800000"&gt;&amp;quot;#&amp;quot;&lt;/span&gt;,
current.EntryId); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; title
= current.TargetTitle; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; desc
= current.Content; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; author
= current.Author; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (showTitle) 
&lt;br /&gt;
&lt;div id="closed633704585927282959_69" style="display: none"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_69&amp;#39;, false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;b&gt;&lt;span style="color: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id="open633704585927282959_69" style="display: block"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_69&amp;#39;, true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
{ 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
sb.AppendFormat(&lt;span style="color: #800000"&gt;&amp;quot;&amp;lt;div class=\&amp;quot;recent{0}CommentsTitle\&amp;quot;&amp;gt;&amp;lt;a
href=\&amp;quot;{1}\&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;, 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
current.SpamState, 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
link 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; ((title.Length
&amp;gt; trimTitle) &amp;amp;&amp;amp; (trimTitle &amp;gt; &lt;span style="color: #008080"&gt;0&lt;/span&gt;)) 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
sb.AppendFormat(&lt;span style="color: #800000"&gt;&amp;quot;RE: {0}...&amp;quot;&lt;/span&gt;, title.Substring(&lt;span style="color: #008080"&gt;0&lt;/span&gt;,
trimTitle)); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
sb.AppendFormat(&lt;span style="color: #800000"&gt;&amp;quot;RE: {0}&amp;quot;&lt;/span&gt;, title); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
sb.Append(&lt;span style="color: #800000"&gt;&amp;quot;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;&lt;/span&gt;); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
}
&lt;/div&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (showCommentText) 
&lt;br /&gt;
&lt;div id="closed633704585927282959_84" style="display: none"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_84&amp;#39;, false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;b&gt;&lt;span style="color: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id="open633704585927282959_84" style="display: block"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_84&amp;#39;, true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
{ 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
sb.AppendFormat(&lt;span style="color: #800000"&gt;&amp;quot;&amp;lt;div class=\&amp;quot;recentCommentsContent\&amp;quot;&amp;gt;&amp;lt;a
href=\&amp;quot;{0}\&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;, 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
link 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; ((desc.Length
&amp;gt; trimContent) &amp;amp;&amp;amp; (trimContent &amp;gt; &lt;span style="color: #008080"&gt;0&lt;/span&gt;)) 
&lt;br /&gt;
&lt;div id="closed633704585927282959_90" style="display: none"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_90&amp;#39;, false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;b&gt;&lt;span style="color: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id="open633704585927282959_90" style="display: block"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_90&amp;#39;, true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
{ 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
sb.Append(desc.Substring(&lt;span style="color: #008080"&gt;0&lt;/span&gt;, trimContent)); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
sb.Append(&lt;span style="color: #800000"&gt;&amp;quot;...&amp;quot;&lt;/span&gt;); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
}
&lt;/div&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; 
&lt;br /&gt;
&lt;div id="closed633704585927282959_95" style="display: none"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_95&amp;#39;, false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;b&gt;&lt;span style="color: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id="open633704585927282959_95" style="display: block"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_95&amp;#39;, true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
{ 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
sb.Append(desc); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
}
&lt;/div&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
sb.Append(&lt;span style="color: #800000"&gt;&amp;quot;&amp;lt;/a&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;&lt;/span&gt;); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
}
&lt;/div&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
sb.Append(&lt;span style="color: #800000"&gt;&amp;quot;&amp;lt;div class=\&amp;quot;recentCommentsAuthor\&amp;quot;&amp;gt;&amp;quot;&lt;/span&gt;); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; ((author.Length
&amp;gt; trimAuthor) &amp;amp;&amp;amp; (trimAuthor &amp;gt; &lt;span style="color: #008080"&gt;0&lt;/span&gt;)) 
&lt;br /&gt;
&lt;div id="closed633704585927282959_105" style="display: none"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_105&amp;#39;, false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;b&gt;&lt;span style="color: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id="open633704585927282959_105" style="display: block"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_105&amp;#39;, true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
{ 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; num3
= (trimAuthor &amp;gt; author.Length) ? author.Length : trimAuthor; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
sb.Append(&lt;span style="color: #800000"&gt;&amp;quot;by &amp;quot;&lt;/span&gt; + author.Substring(&lt;span style="color: #008080"&gt;0&lt;/span&gt;,
num3)); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
sb.Append(&lt;span style="color: #800000"&gt;&amp;quot;...&amp;quot;&lt;/span&gt;); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
}
&lt;/div&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; 
&lt;br /&gt;
&lt;div id="closed633704585927282959_111" style="display: none"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_111&amp;#39;, false)" src="http://blogs.sitedoc.co.uk/img/sc/plus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;b&gt;&lt;span style="color: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id="open633704585927282959_111" style="display: block"&gt;&lt;img onclick="showHideCodeDiv(&amp;#39;633704585927282959_111&amp;#39;, true)" src="http://blogs.sitedoc.co.uk/img/sc/minus.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
{ 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
sb.Append(&lt;span style="color: #800000"&gt;&amp;quot;by &amp;quot;&lt;/span&gt; + author); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
}
&lt;/div&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
sb.Append(&lt;span style="color: #800000"&gt;&amp;quot;&amp;lt;/div&amp;gt;&amp;lt;/li&amp;gt;&amp;quot;&lt;/span&gt;); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;
}
&lt;/div&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;
}
&lt;/div&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;b&gt;&lt;span style="color: #0000ff"&gt;#endregion&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;
sb.AppendLine(&lt;span style="color: #800000"&gt;&amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;&lt;/span&gt;); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160;
sb.AppendLine(&lt;span style="color: #800000"&gt;&amp;quot;&amp;lt;/div&amp;gt;&amp;quot;&lt;/span&gt;); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt; 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/I.gif" align="top" /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;return
new&lt;/span&gt; LiteralControl(sb.ToString()); 
&lt;br /&gt;
&lt;img src="http://blogs.sitedoc.co.uk/img/sc/L.gif" align="top" /&gt;}
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
I've since been working on extending it further so you can add a "All Comments" link
which I'll post up later as it needs a little more work :)
&lt;/p&gt;
&lt;p&gt;
If you want this wrapped up as a DLL let me know and I'll upload it.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update 26th Feb 2009:&lt;/strong&gt; You can &lt;a href="http://blogs.thesitedoctor.co.uk/tim/files/TSDMacros_v1.1_20090226.zip"&gt;download
the dll here&lt;/a&gt; (it's also got a few other things in there if you want to look around).
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Update 27th Feb 2009:&lt;/strong&gt; I noticed that the above code was messing up
everynow and again so I've updated it to use Linq instead which seems to work well.
I've updated the DLL but not the source yet.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/test/aggbug.ashx?id=82ed85a4-7066-4e46-9256-361685165d44" /&gt;</description>
      <comments>http://blogs.thesitedoctor.co.uk/test/CommentView,guid,82ed85a4-7066-4e46-9256-361685165d44.aspx</comments>
      <category>C#</category>
      <category>dasBlog</category>
      <category>Web Development</category>
    </item>
    <item>
      <trackback:ping>http://blogs.thesitedoctor.co.uk/test/Trackback.aspx?guid=70a44ba6-7c18-46cc-a729-c297bf0a01cc</trackback:ping>
      <pingback:server>http://blogs.thesitedoctor.co.uk/test/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.thesitedoctor.co.uk/test/PermaLink,guid,70a44ba6-7c18-46cc-a729-c297bf0a01cc.aspx</pingback:target>
      <dc:creator>Tim</dc:creator>
      <wfw:comment>http://blogs.thesitedoctor.co.uk/test/CommentView,guid,70a44ba6-7c18-46cc-a729-c297bf0a01cc.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.thesitedoctor.co.uk/test/SyndicationService.asmx/GetEntryCommentsRss?guid=70a44ba6-7c18-46cc-a729-c297bf0a01cc</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
As part of my blog’s re-design I wanted to integrate my statistics from <a title="Learn more about Last FM" href="http://blogs.thesitedoctor.co.uk/tim/About-Last-FM.aspx">Last.FM</a> which
monitors what music you’re listening to and generates a stack of statistics about
your listening habit (see <a title="Learn more about Last FM" href="http://blogs.thesitedoctor.co.uk/tim/About-Last-FM.aspx">About
Last FM</a> for more information).
</p>
        <p>
Anyways, I started writing my own 
<ABBR title="Really Simple Syndication">
RSS
</ABBR>
macro when I came across one already developed by <span class="vcard"><a class="url fn" href="http://www.jforsythe.com/">John
Forsythe</a> (<a class="url" href="http://www.jforsythe.com/">http://www.jforsythe.com/</a>)</span> which
did pretty much exactly what I was planning on developing, the only difference though
was that his was hard-coded to preset node names whereas I was planning on using an 
<ABBR title="Extensible Stylesheet Language">
XSL
</ABBR>
file to format mine to offer maximum flexibility in the long run so I <em>updated</em> his
with the use of reflector (thanks to <span class="vcard"><a class="url fn" href="http://www.jforsythe.com/">John
Forsythe</a></span> though!!).
</p>
        <p>
There are a couple of difference to note with this code and <span class="vcard"><a class="url fn" href="http://www.jforsythe.com/">John
Forsythe</a></span>'s:
</p>
        <ul>
          <li>
The 
<ABBR title="Really Simple Syndication">
RSS
</ABBR>
retrieval is no longer handled by an external library -in this instance I wanted to
keep this as simple and stand-alone as possible. 
</li>
          <li>
There is no max item count at present -this is mainly because I didn't need it for
the <a title="Learn more about Last FM" href="http://blogs.thesitedoctor.co.uk/tim/About-Last-FM.aspx">Last.FM</a> Feed,
I may alter that later.</li>
        </ul>
        <div class="code">
          <h2>Source code for a dasBlog XSL based RSS reader
</h2>
          <img src="/img/sc/clear.gif" align="top" />
          <span style="COLOR: #0000ff">using</span> System;<br /><img src="/img/sc/clear.gif" align="top" /><span style="COLOR: #0000ff">using</span> System.IO;<br /><img src="/img/sc/clear.gif" align="top" /><span style="COLOR: #0000ff">using</span> System.Security.Cryptography;<br /><img src="/img/sc/clear.gif" align="top" /><span style="COLOR: #0000ff">using</span> System.Diagnostics;<br /><img src="/img/sc/clear.gif" align="top" /><span style="COLOR: #0000ff">using</span> System.Text;<br /><img src="/img/sc/clear.gif" align="top" /><span style="COLOR: #0000ff">using</span> System.Web;<br /><img src="/img/sc/clear.gif" align="top" /><span style="COLOR: #0000ff">using</span> System.Web.UI;<br /><img src="/img/sc/clear.gif" align="top" /><br /><img src="/img/sc/clear.gif" align="top" /><span style="COLOR: #0000ff">using</span> newtelligence.DasBlog.Runtime;<br /><img src="/img/sc/clear.gif" align="top" /><span style="COLOR: #0000ff">using</span> newtelligence.DasBlog.Web.Core;<br /><img src="/img/sc/clear.gif" align="top" /><br /><img src="/img/sc/clear.gif" align="top" /><span style="COLOR: #0000ff">namespace</span> TSDMacros<br /><div id="closed633078372453437500_13" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_13', false)" src="/img/sc/PlusNoLines.gif" align="top" /><b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_13" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_13', true)" src="/img/sc/minusNoTopLine.gif" align="top" />{<br /><img src="/img/sc/I.gif" align="top" />    <span style="COLOR: #0000ff">public</span> <span style="COLOR: #0000ff">class</span> TheSiteDoctor<br /><div id="closed633078372453437500_15" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_15', false)" src="/img/sc/plus.gif" align="top" />    <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_15" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_15', true)" src="/img/sc/minus.gif" align="top" />    {<br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #0000ff">protected</span> SharedBasePage requestPage;<br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #0000ff">protected</span> Entry currentEntry;<br /><img src="/img/sc/I.gif" align="top" /><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #0000ff">public</span> TheSiteDoctor(SharedBasePage page, Entry entry)<br /><div id="closed633078372453437500_20" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_20', false)" src="/img/sc/plus.gif" align="top" />        <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_20" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_20', true)" src="/img/sc/minus.gif" align="top" />        {<br /><img src="/img/sc/I.gif" align="top" />            requestPage = page;<br /><img src="/img/sc/I.gif" align="top" />            currentEntry = entry;<br /><img src="/img/sc/L.gif" align="top" />        }
</div><img src="/img/sc/I.gif" align="top" /><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">summary</span><span style="COLOR: #808080">&gt;</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #008000">A</span> <span style="COLOR: #008000">dasBlog</span> <span style="COLOR: #008000">macro</span> <span style="COLOR: #008000">to</span> <span style="COLOR: #008000">retrieve</span> <span style="COLOR: #008000">an</span> <span style="COLOR: #008000">RSS</span> <span style="COLOR: #008000">feed</span> <span style="COLOR: #008000">and</span> <span style="COLOR: #008000">apply</span> <span style="COLOR: #008000">XSL</span> <span style="COLOR: #008000">to</span> <br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #008000">it</span> <span style="COLOR: #008000">before</span> <span style="COLOR: #008000">caching</span> <span style="COLOR: #008000">it</span> <span style="COLOR: #008000">for</span> <span style="COLOR: #008000">x</span> <span style="COLOR: #008000">minutes</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">/summary</span><span style="COLOR: #808080">&gt;</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">param</span><span style="COLOR: #808080"> name</span><span style="COLOR: #808080">=</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">xslVPath</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">&gt;</span><span style="COLOR: #008000">The</span> <span style="COLOR: #008000">virtual</span> <span style="COLOR: #008000">path</span> <span style="COLOR: #008000">of</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">XSL</span> <span style="COLOR: #008000">file</span><span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">/param</span><span style="COLOR: #808080">&gt;</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">param</span><span style="COLOR: #808080"> name</span><span style="COLOR: #808080">=</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">rssPath</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">&gt;</span><span style="COLOR: #008000">The</span> <span style="COLOR: #008000">RSS</span> <span style="COLOR: #008000">feed</span> <span style="COLOR: #008000">URL</span><span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">/param</span><span style="COLOR: #808080">&gt;</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">param</span><span style="COLOR: #808080"> name</span><span style="COLOR: #808080">=</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">minutesToCache</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">&gt;</span><span style="COLOR: #008000">Number</span> <span style="COLOR: #008000">of</span> <span style="COLOR: #008000">minutes</span> <span style="COLOR: #008000">to</span> <span style="COLOR: #008000">cache</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">file</span> <span style="COLOR: #008000">for</span><span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">/param</span><span style="COLOR: #808080">&gt;</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">param</span><span style="COLOR: #808080"> name</span><span style="COLOR: #808080">=</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">debugMode</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">&gt;</span><span style="COLOR: #008000">Output</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">debug</span> <span style="COLOR: #008000">information</span><span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">/param</span><span style="COLOR: #808080">&gt;</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">returns</span><span style="COLOR: #808080">&gt;</span><span style="COLOR: #008000">A</span> <span style="COLOR: #008000">control</span> <span style="COLOR: #008000">that</span> <span style="COLOR: #008000">can</span> <span style="COLOR: #008000">be</span> <span style="COLOR: #008000">inserted</span> <span style="COLOR: #008000">into</span> <span style="COLOR: #008000">a</span> <span style="COLOR: #008000">dasBlog</span> <span style="COLOR: #008000">template</span><span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">/returns</span><span style="COLOR: #808080">&gt;</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #0000ff">public</span> <span style="COLOR: #0000ff">virtual</span> Control GetRSS(<span style="COLOR: #0000ff">string</span> xslVPath, <span style="COLOR: #0000ff">string</span> rssPath, <span style="COLOR: #0000ff">int</span> minutesToCache, <span style="COLOR: #0000ff">bool</span> debugMode)<br /><div id="closed633078372453437500_35" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_35', false)" src="/img/sc/plus.gif" align="top" />        <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_35" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_35', true)" src="/img/sc/minus.gif" align="top" />        {<br /><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">string</span> cacheVDir = <span style="COLOR: #800000">"</span><span style="COLOR: #800000">./content/getrsscache/</span><span style="COLOR: #800000">"</span>;<br /><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">string</span> cachedFileLoc = <span style="COLOR: #008b8b">String</span>.Empty;<br /><img src="/img/sc/I.gif" align="top" />            StringBuilder output = <span style="COLOR: #0000ff">new</span> StringBuilder();<br /><img src="/img/sc/I.gif" align="top" /><br /><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">bool</span> writeToCache = <span style="COLOR: #0000ff">false</span>;<br /><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">bool</span> cacheExpired = <span style="COLOR: #0000ff">false</span>;<br /><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">bool</span> cacheExists = <span style="COLOR: #0000ff">false</span>;<br /><img src="/img/sc/I.gif" align="top" /><br /><div id="closed633078372453437500_44" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_44', false)" src="/img/sc/plus.gif" align="top" />            <b><span style="COLOR: #00008b">Debug output</span></b></div><div id="open633078372453437500_44" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_44', true)" src="/img/sc/minus.gif" align="top" />            <b><span style="COLOR: #0000ff">#region</span></b> Debug output<br /><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">if</span> (debugMode)<br /><div id="closed633078372453437500_46" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_46', false)" src="/img/sc/plus.gif" align="top" />            <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_46" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_46', true)" src="/img/sc/minus.gif" align="top" />            {<br /><img src="/img/sc/I.gif" align="top" />                output.Append(<span style="COLOR: #800000">"</span><span style="COLOR: #800000">&lt;strong&gt;&amp;lt;start</span> <span style="COLOR: #800000">debug&amp;gt;&lt;/strong&gt;&lt;hr</span> <span style="COLOR: #800000">/&gt;\r\n</span><span style="COLOR: #800000">"</span>);<br /><img src="/img/sc/I.gif" align="top" />                output.AppendFormat(<span style="COLOR: #800000">"</span><span style="COLOR: #800000">&lt;i&gt;RssPath&lt;/i&gt;:</span> <span style="COLOR: #800000">{0}&lt;br</span> <span style="COLOR: #800000">/&gt;\r\n</span><span style="COLOR: #800000">"</span>, rssPath);<br /><img src="/img/sc/I.gif" align="top" />                output.AppendFormat(<span style="COLOR: #800000">"</span><span style="COLOR: #800000">&lt;i&gt;minutesToCache&lt;/i&gt;:</span> <span style="COLOR: #800000">{0}&lt;br</span> <span style="COLOR: #800000">/&gt;\r\n</span><span style="COLOR: #800000">"</span>, minutesToCache);<br /><img src="/img/sc/I.gif" align="top" />                output.AppendFormat(<span style="COLOR: #800000">"</span><span style="COLOR: #800000">&lt;i&gt;CacheStorageFolder&lt;/i&gt;:</span> <span style="COLOR: #800000">{0}&lt;br</span> <span style="COLOR: #800000">/&gt;\r\n</span><span style="COLOR: #800000">"</span>, cacheVDir);<br /><img src="/img/sc/I.gif" align="top" />                output.Append(<span style="COLOR: #800000">"</span><span style="COLOR: #800000">&lt;hr</span> <span style="COLOR: #800000">/&gt;\r\n</span><span style="COLOR: #800000">"</span>);<br /><img src="/img/sc/L.gif" align="top" />            }
</div><img src="/img/sc/L.gif" align="top" />            <b><span style="COLOR: #0000ff">#endregion</span></b></div><img src="/img/sc/I.gif" align="top" /><br /><div id="closed633078372453437500_55" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_55', false)" src="/img/sc/plus.gif" align="top" />            <b><span style="COLOR: #00008b">Check whether we need to cache or not</span></b></div><div id="open633078372453437500_55" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_55', true)" src="/img/sc/minus.gif" align="top" />            <b><span style="COLOR: #0000ff">#region</span></b> Check whether we need to cache or not<br /><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">if</span> (minutesToCache &gt; <span style="COLOR: #008080">0</span>)<br /><div id="closed633078372453437500_57" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_57', false)" src="/img/sc/plus.gif" align="top" />            <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_57" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_57', true)" src="/img/sc/minus.gif" align="top" />            {<br /><img src="/img/sc/I.gif" align="top" />                writeToCache = <span style="COLOR: #0000ff">true</span>;<br /><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #008000">//</span><span style="COLOR: #008000">Find</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">cache</span> <span style="COLOR: #008000">directory</span><br /><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #0000ff">string</span> cacheDir = <span style="COLOR: #008b8b">HttpContext</span>.Current.Server.MapPath(cacheVDir);<br /><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #008000">//</span><span style="COLOR: #008000">Work</span> <span style="COLOR: #008000">out</span> <span style="COLOR: #008000">what</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">file</span> <span style="COLOR: #008000">would</span> <span style="COLOR: #008000">be</span> <span style="COLOR: #008000">called</span> <span style="COLOR: #008000">based</span> <span style="COLOR: #008000">on</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">RSS</span> <span style="COLOR: #008000">URL</span><br /><img src="/img/sc/I.gif" align="top" />                cachedFileLoc = Path.Combine(cacheDir, HttpUtility.UrlEncode(TheSiteDoctor.GetMd5Sum(rssPath)) + <span style="COLOR: #800000">"</span><span style="COLOR: #800000">.cache</span><span style="COLOR: #800000">"</span>);<br /><div id="closed633078372453437500_63" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_63', false)" src="/img/sc/plus.gif" align="top" />                <b><span style="COLOR: #00008b">Debug output</span></b></div><div id="open633078372453437500_63" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_63', true)" src="/img/sc/minus.gif" align="top" />                <b><span style="COLOR: #0000ff">#region</span></b> Debug output<br /><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #0000ff">if</span> (debugMode)<br /><div id="closed633078372453437500_65" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_65', false)" src="/img/sc/plus.gif" align="top" />                <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_65" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_65', true)" src="/img/sc/minus.gif" align="top" />                {<br /><img src="/img/sc/I.gif" align="top" />                    output.AppendFormat(<span style="COLOR: #800000">"</span><span style="COLOR: #800000">&lt;i&gt;cache</span> <span style="COLOR: #800000">file&lt;/i&gt;:</span> <span style="COLOR: #800000">{0}\r\n</span><span style="COLOR: #800000">"</span>, cachedFileLoc);<br /><img src="/img/sc/L.gif" align="top" />                }
</div><img src="/img/sc/L.gif" align="top" />                <b><span style="COLOR: #0000ff">#endregion</span></b></div><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #0000ff">if</span> (!File.Exists(cachedFileLoc))<br /><div id="closed633078372453437500_70" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_70', false)" src="/img/sc/plus.gif" align="top" />                <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_70" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_70', true)" src="/img/sc/minus.gif" align="top" />                {<br /><img src="/img/sc/I.gif" align="top" />                    cacheExpired = <span style="COLOR: #0000ff">true</span>;<br /><div id="closed633078372453437500_72" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_72', false)" src="/img/sc/plus.gif" align="top" />                    <b><span style="COLOR: #00008b">Debug output</span></b></div><div id="open633078372453437500_72" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_72', true)" src="/img/sc/minus.gif" align="top" />                    <b><span style="COLOR: #0000ff">#region</span></b> Debug output<br /><img src="/img/sc/I.gif" align="top" />                    <span style="COLOR: #0000ff">if</span> (debugMode)<br /><div id="closed633078372453437500_74" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_74', false)" src="/img/sc/plus.gif" align="top" />                    <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_74" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_74', true)" src="/img/sc/minus.gif" align="top" />                    {<br /><img src="/img/sc/I.gif" align="top" />                        output.Append(<span style="COLOR: #800000">"</span><span style="COLOR: #800000">&lt;i&gt;cache</span> <span style="COLOR: #800000">age&lt;/i&gt;:</span> <span style="COLOR: #800000">no</span> <span style="COLOR: #800000">file</span> <span style="COLOR: #800000">exists&lt;br</span> <span style="COLOR: #800000">/&gt;</span><span style="COLOR: #800000">"</span>);<br /><img src="/img/sc/L.gif" align="top" />                    }
</div><img src="/img/sc/L.gif" align="top" />                    <b><span style="COLOR: #0000ff">#endregion</span></b></div><img src="/img/sc/L.gif" align="top" />                }
</div><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #0000ff">else</span><br /><div id="closed633078372453437500_80" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_80', false)" src="/img/sc/plus.gif" align="top" />                <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_80" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_80', true)" src="/img/sc/minus.gif" align="top" />                {<br /><img src="/img/sc/I.gif" align="top" />                    FileInfo info1 = <span style="COLOR: #0000ff">new</span> FileInfo(cachedFileLoc);<br /><img src="/img/sc/I.gif" align="top" />                    TimeSpan span1 = (TimeSpan)(DateTime.Now - info1.LastWriteTime);<br /><img src="/img/sc/I.gif" align="top" />                    <span style="COLOR: #0000ff">if</span> (span1.TotalMinutes &gt; minutesToCache)<br /><div id="closed633078372453437500_84" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_84', false)" src="/img/sc/plus.gif" align="top" />                    <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_84" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_84', true)" src="/img/sc/minus.gif" align="top" />                    {<br /><img src="/img/sc/I.gif" align="top" />                        cacheExists = <span style="COLOR: #0000ff">true</span>;<br /><img src="/img/sc/I.gif" align="top" />                        cacheExpired = <span style="COLOR: #0000ff">true</span>;<br /><img src="/img/sc/L.gif" align="top" />                    }
</div><div id="closed633078372453437500_88" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_88', false)" src="/img/sc/plus.gif" align="top" />                    <b><span style="COLOR: #00008b">Debug output</span></b></div><div id="open633078372453437500_88" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_88', true)" src="/img/sc/minus.gif" align="top" />                    <b><span style="COLOR: #0000ff">#region</span></b> Debug output<br /><img src="/img/sc/I.gif" align="top" />                    <span style="COLOR: #0000ff">if</span> (debugMode)<br /><div id="closed633078372453437500_90" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_90', false)" src="/img/sc/plus.gif" align="top" />                    <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_90" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_90', true)" src="/img/sc/minus.gif" align="top" />                    {<br /><img src="/img/sc/I.gif" align="top" />                        output.AppendFormat(<span style="COLOR: #800000">"</span><span style="COLOR: #800000">&lt;i&gt;cache</span> <span style="COLOR: #800000">age&lt;/i&gt;:</span> <span style="COLOR: #800000">:</span> <span style="COLOR: #800000">{0}</span> <span style="COLOR: #800000">min</span> <span style="COLOR: #800000">old</span> <span style="COLOR: #800000">&lt;br</span> <span style="COLOR: #800000">/&gt;\r\n</span><span style="COLOR: #800000">"</span>, span1.TotalMinutes);<br /><img src="/img/sc/L.gif" align="top" />                    }
</div><img src="/img/sc/L.gif" align="top" />                    <b><span style="COLOR: #0000ff">#endregion</span></b></div><img src="/img/sc/L.gif" align="top" />                }
</div><img src="/img/sc/L.gif" align="top" />            }
</div><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">else</span><br /><div id="closed633078372453437500_97" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_97', false)" src="/img/sc/plus.gif" align="top" />            <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_97" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_97', true)" src="/img/sc/minus.gif" align="top" />            {<br /><div id="closed633078372453437500_98" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_98', false)" src="/img/sc/plus.gif" align="top" />                <b><span style="COLOR: #00008b">Debug output</span></b></div><div id="open633078372453437500_98" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_98', true)" src="/img/sc/minus.gif" align="top" />                <b><span style="COLOR: #0000ff">#region</span></b> Debug output<br /><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #0000ff">if</span> (debugMode)<br /><div id="closed633078372453437500_100" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_100', false)" src="/img/sc/plus.gif" align="top" />                <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_100" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_100', true)" src="/img/sc/minus.gif" align="top" />                {<br /><img src="/img/sc/I.gif" align="top" />                    output.Append(<span style="COLOR: #800000">"</span><span style="COLOR: #800000">&lt;strong&gt;caching</span> <span style="COLOR: #800000">disabled</span> <span style="COLOR: #800000">-</span> <span style="COLOR: #800000">CacheStorageAgeLimit=0&lt;/strong&gt;&lt;br</span> <span style="COLOR: #800000">/&gt;&lt;span</span> <span style="COLOR: #800000">style=\"color:red;</span> <span style="COLOR: #800000">font-weight:</span> <span style="COLOR: #800000">bold;\"&gt;FYI:</span> <span style="COLOR: #800000">All</span> <span style="COLOR: #800000">requests</span> <span style="COLOR: #800000">to</span> <span style="COLOR: #800000">this</span> <span style="COLOR: #800000">page</span> <span style="COLOR: #800000">will</span> <span style="COLOR: #800000">cause</span> <span style="COLOR: #800000">a</span> <span style="COLOR: #800000">new</span> <span style="COLOR: #800000">server</span> <span style="COLOR: #800000">request</span> <span style="COLOR: #800000">to</span> <span style="COLOR: #800000">the</span> <span style="COLOR: #800000">RssPath&lt;/span&gt;&lt;br</span> <span style="COLOR: #800000">/&gt;</span><span style="COLOR: #800000">"</span>);<br /><img src="/img/sc/L.gif" align="top" />                }
</div><img src="/img/sc/L.gif" align="top" />                <b><span style="COLOR: #0000ff">#endregion</span></b></div><img src="/img/sc/I.gif" align="top" />                cacheExpired = <span style="COLOR: #0000ff">true</span>;<br /><img src="/img/sc/L.gif" align="top" />            }
</div><img src="/img/sc/I.gif" align="top" /><br /><img src="/img/sc/L.gif" align="top" />            <b><span style="COLOR: #0000ff">#endregion</span></b></div><img src="/img/sc/I.gif" align="top" /><br /><div id="closed633078372453437500_109" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_109', false)" src="/img/sc/plus.gif" align="top" />            <b><span style="COLOR: #00008b">Debug output</span></b></div><div id="open633078372453437500_109" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_109', true)" src="/img/sc/minus.gif" align="top" />            <b><span style="COLOR: #0000ff">#region</span></b> Debug output<br /><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">if</span> (debugMode)<br /><div id="closed633078372453437500_111" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_111', false)" src="/img/sc/plus.gif" align="top" />            <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_111" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_111', true)" src="/img/sc/minus.gif" align="top" />            {<br /><img src="/img/sc/I.gif" align="top" />                output.Append(<span style="COLOR: #800000">"</span><span style="COLOR: #800000">&lt;hr</span> <span style="COLOR: #800000">/&gt;</span><span style="COLOR: #800000">"</span>);<br /><img src="/img/sc/L.gif" align="top" />            }
</div><img src="/img/sc/L.gif" align="top" />            <b><span style="COLOR: #0000ff">#endregion</span></b></div><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #008000">//</span><span style="COLOR: #008000">Check</span> <span style="COLOR: #008000">whether</span> <span style="COLOR: #008000">or</span> <span style="COLOR: #008000">not</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">cache</span> <span style="COLOR: #008000">has</span> <span style="COLOR: #008000">expired</span><br /><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">if</span> (cacheExpired)<br /><div id="closed633078372453437500_117" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_117', false)" src="/img/sc/plus.gif" align="top" />            <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_117" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_117', true)" src="/img/sc/minus.gif" align="top" />            {<br /><div id="closed633078372453437500_118" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_118', false)" src="/img/sc/plus.gif" align="top" />                <b><span style="COLOR: #00008b">Debug output</span></b></div><div id="open633078372453437500_118" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_118', true)" src="/img/sc/minus.gif" align="top" />                <b><span style="COLOR: #0000ff">#region</span></b> Debug output<br /><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #0000ff">if</span> (cacheExists &amp; debugMode)<br /><div id="closed633078372453437500_120" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_120', false)" src="/img/sc/plus.gif" align="top" />                <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_120" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_120', true)" src="/img/sc/minus.gif" align="top" />                {<br /><img src="/img/sc/I.gif" align="top" />                    output.Append(<span style="COLOR: #800000">"</span><span style="COLOR: #800000">&lt;strong&gt;file</span> <span style="COLOR: #800000">cache</span> <span style="COLOR: #800000">is</span> <span style="COLOR: #800000">expired,</span> <span style="COLOR: #800000">getting</span> <span style="COLOR: #800000">a</span> <span style="COLOR: #800000">new</span> <span style="COLOR: #800000">copy</span> <span style="COLOR: #800000">right</span> <span style="COLOR: #800000">now&lt;/strong&gt;&lt;br</span> <span style="COLOR: #800000">/&gt;</span><span style="COLOR: #800000">"</span>);<br /><img src="/img/sc/L.gif" align="top" />                }
</div><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #0000ff">else</span> <span style="COLOR: #0000ff">if</span> (debugMode)<br /><div id="closed633078372453437500_124" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_124', false)" src="/img/sc/plus.gif" align="top" />                <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_124" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_124', true)" src="/img/sc/minus.gif" align="top" />                {<br /><img src="/img/sc/I.gif" align="top" />                    output.Append(<span style="COLOR: #800000">"</span><span style="COLOR: #800000">&lt;strong&gt;no</span> <span style="COLOR: #800000">cache,</span> <span style="COLOR: #800000">getting</span> <span style="COLOR: #800000">file&lt;/strong&gt;&lt;br</span> <span style="COLOR: #800000">/&gt;</span><span style="COLOR: #800000">"</span>);<br /><img src="/img/sc/L.gif" align="top" />                }
</div><img src="/img/sc/L.gif" align="top" />                <b><span style="COLOR: #0000ff">#endregion</span></b></div><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #008000">//</span><span style="COLOR: #008000">The</span> <span style="COLOR: #008000">cache</span> <span style="COLOR: #008000">has</span> <span style="COLOR: #008000">expired</span> <span style="COLOR: #008000">so</span> <span style="COLOR: #008000">retrieve</span> <span style="COLOR: #008000">a</span> <span style="COLOR: #008000">new</span> <span style="COLOR: #008000">copy</span><br /><img src="/img/sc/I.gif" align="top" />                output.Append(TheSiteDoctor.delegateRss(xslVPath, rssPath, <span style="COLOR: #008080">0</span>, writeToCache, cachedFileLoc, debugMode));<br /><img src="/img/sc/L.gif" align="top" />            }
</div><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">else</span><br /><div id="closed633078372453437500_132" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_132', false)" src="/img/sc/plus.gif" align="top" />            <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_132" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_132', true)" src="/img/sc/minus.gif" align="top" />            {<br /><div id="closed633078372453437500_133" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_133', false)" src="/img/sc/plus.gif" align="top" />                <b><span style="COLOR: #00008b">Debug output</span></b></div><div id="open633078372453437500_133" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_133', true)" src="/img/sc/minus.gif" align="top" />                <b><span style="COLOR: #0000ff">#region</span></b> Debug output<br /><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #0000ff">if</span> (debugMode)<br /><div id="closed633078372453437500_135" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_135', false)" src="/img/sc/plus.gif" align="top" />                <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_135" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_135', true)" src="/img/sc/minus.gif" align="top" />                {<br /><img src="/img/sc/I.gif" align="top" />                    output.Append(<span style="COLOR: #800000">"</span><span style="COLOR: #800000">&lt;strong&gt;cool,</span> <span style="COLOR: #800000">we</span> <span style="COLOR: #800000">got</span> <span style="COLOR: #800000">the</span> <span style="COLOR: #800000">file</span> <span style="COLOR: #800000">from</span> <span style="COLOR: #800000">cache&lt;/strong&gt;&lt;br</span> <span style="COLOR: #800000">/&gt;</span><span style="COLOR: #800000">"</span>);<br /><img src="/img/sc/L.gif" align="top" />                }
</div><img src="/img/sc/L.gif" align="top" />                <b><span style="COLOR: #0000ff">#endregion</span></b></div><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #008000">//</span><span style="COLOR: #008000">The</span> <span style="COLOR: #008000">cache</span> <span style="COLOR: #008000">still</span> <span style="COLOR: #008000">exists</span> <span style="COLOR: #008000">and</span> <span style="COLOR: #008000">is</span> <span style="COLOR: #008000">valid</span><br /><img src="/img/sc/I.gif" align="top" />                StreamReader reader1 = File.OpenText(cachedFileLoc);<br /><img src="/img/sc/I.gif" align="top" />                output.Append(reader1.ReadToEnd());<br /><img src="/img/sc/I.gif" align="top" />                reader1.Close();<br /><img src="/img/sc/L.gif" align="top" />            }
</div><div id="closed633078372453437500_144" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_144', false)" src="/img/sc/plus.gif" align="top" />            <b><span style="COLOR: #00008b">Debug output</span></b></div><div id="open633078372453437500_144" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_144', true)" src="/img/sc/minus.gif" align="top" />            <b><span style="COLOR: #0000ff">#region</span></b> Debug output<br /><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">if</span> (debugMode)<br /><div id="closed633078372453437500_146" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_146', false)" src="/img/sc/plus.gif" align="top" />            <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_146" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_146', true)" src="/img/sc/minus.gif" align="top" />            {<br /><img src="/img/sc/I.gif" align="top" />                output.Append(<span style="COLOR: #800000">"</span><span style="COLOR: #800000">&lt;hr</span> <span style="COLOR: #800000">/&gt;&lt;strong&gt;&amp;lt;end</span> <span style="COLOR: #800000">debug&amp;gt;&lt;/strong&gt;</span><span style="COLOR: #800000">"</span>);<br /><img src="/img/sc/L.gif" align="top" />            }
</div><img src="/img/sc/L.gif" align="top" />            <b><span style="COLOR: #0000ff">#endregion</span></b></div><img src="/img/sc/I.gif" align="top" /><br /><img src="/img/sc/I.gif" align="top" />            output.Append(<span style="COLOR: #800000">"</span><span style="COLOR: #800000">\r\n&lt;!--</span> <span style="COLOR: #800000">\r\ndasBlog</span> <span style="COLOR: #800000">RSS</span> <span style="COLOR: #800000">feed</span> <span style="COLOR: #800000">produced</span> <span style="COLOR: #800000">using</span> <span style="COLOR: #800000">the</span> <span style="COLOR: #800000">macro</span> <span style="COLOR: #800000">from</span> <span style="COLOR: #800000">Tim</span> <span style="COLOR: #800000">Gaunt\r\n</span><span style="COLOR: #0000ff">http://blogs.thesitedoctor.co.uk/tim/</span><span style="COLOR: #800000">\r\n--&gt;</span><span style="COLOR: #800000">"</span>);<br /><img src="/img/sc/I.gif" align="top" /><br /><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">return</span> <span style="COLOR: #0000ff">new</span> LiteralControl(output.ToString());<br /><img src="/img/sc/L.gif" align="top" />        }
</div><img src="/img/sc/I.gif" align="top" /><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">summary</span><span style="COLOR: #808080">&gt;</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #008000">RSS</span> <span style="COLOR: #008000">feed</span> <span style="COLOR: #008000">retrieval</span> <span style="COLOR: #008000">worker</span> <span style="COLOR: #008000">method.</span> <span style="COLOR: #008000">Retrieves</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">RSS</span> <span style="COLOR: #008000">feed</span> <br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #008000">and</span> <span style="COLOR: #008000">applies</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">specified</span> <span style="COLOR: #008000">XSL</span> <span style="COLOR: #008000">document</span> <span style="COLOR: #008000">to</span> <span style="COLOR: #008000">it</span> <span style="COLOR: #008000">before</span> <span style="COLOR: #008000">caching</span> <br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #008000">a</span> <span style="COLOR: #008000">copy</span> <span style="COLOR: #008000">to</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">disk</span> <span style="COLOR: #008000">-this</span> <span style="COLOR: #008000">should</span> <span style="COLOR: #008000">be</span> <span style="COLOR: #008000">called</span> <span style="COLOR: #008000">after</span> <span style="COLOR: #008000">it</span> <span style="COLOR: #008000">has</span> <span style="COLOR: #008000">been</span> <br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #008000">established</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">cache</span> <span style="COLOR: #008000">is</span> <span style="COLOR: #008000">out</span> <span style="COLOR: #008000">of</span> <span style="COLOR: #008000">date.</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">/summary</span><span style="COLOR: #808080">&gt;</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">param</span><span style="COLOR: #808080"> name</span><span style="COLOR: #808080">=</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">xslVPath</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">&gt;</span><span style="COLOR: #008000">The</span> <span style="COLOR: #008000">virtual</span> <span style="COLOR: #008000">path</span> <span style="COLOR: #008000">of</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">XSL</span> <span style="COLOR: #008000">file</span><span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">/param</span><span style="COLOR: #808080">&gt;</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">param</span><span style="COLOR: #808080"> name</span><span style="COLOR: #808080">=</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">rssPath</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">&gt;</span><span style="COLOR: #008000">The</span> <span style="COLOR: #008000">RSS</span> <span style="COLOR: #008000">feed</span> <span style="COLOR: #008000">URL</span><span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">/param</span><span style="COLOR: #808080">&gt;</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">param</span><span style="COLOR: #808080"> name</span><span style="COLOR: #808080">=</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">timeoutSeconds</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">&gt;</span><span style="COLOR: #008000">Number</span> <span style="COLOR: #008000">of</span> <span style="COLOR: #008000">seconds</span> <span style="COLOR: #008000">before</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">request</span> <span style="COLOR: #008000">should</span> <span style="COLOR: #008000">timeout</span><span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">/param</span><span style="COLOR: #808080">&gt;</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">param</span><span style="COLOR: #808080"> name</span><span style="COLOR: #808080">=</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">writeCache</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">&gt;</span><span style="COLOR: #008000">Whether</span> <span style="COLOR: #008000">to</span> <span style="COLOR: #008000">cache</span> <span style="COLOR: #008000">a</span> <span style="COLOR: #008000">copy</span> <span style="COLOR: #008000">on</span> <span style="COLOR: #008000">disk</span><span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">/param</span><span style="COLOR: #808080">&gt;</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">param</span><span style="COLOR: #808080"> name</span><span style="COLOR: #808080">=</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">xmlPath</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">&gt;</span><span style="COLOR: #008000">Physical</span> <span style="COLOR: #008000">path</span> <span style="COLOR: #008000">of</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">XML</span> <span style="COLOR: #008000">file</span> <span style="COLOR: #008000">on</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">disk</span><span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">/param</span><span style="COLOR: #808080">&gt;</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">param</span><span style="COLOR: #808080"> name</span><span style="COLOR: #808080">=</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">debugMode</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">&gt;</span><span style="COLOR: #008000">Output</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">debug</span> <span style="COLOR: #008000">information</span><span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">/param</span><span style="COLOR: #808080">&gt;</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">returns</span><span style="COLOR: #808080">&gt;</span><span style="COLOR: #008000">An</span> <span style="COLOR: #008000">XML</span> <span style="COLOR: #008000">document</span> <span style="COLOR: #008000">as</span> <span style="COLOR: #008000">a</span> <span style="COLOR: #008000">string</span><span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">/returns</span><span style="COLOR: #808080">&gt;</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #0000ff">private</span> <span style="COLOR: #0000ff">static</span> <span style="COLOR: #0000ff">string</span> delegateRss(<span style="COLOR: #0000ff">string</span> xslVPath, <span style="COLOR: #0000ff">string</span> rssPath, <span style="COLOR: #0000ff">int</span> timeoutSeconds, <span style="COLOR: #0000ff">bool</span> writeCache, <span style="COLOR: #0000ff">string</span> xmlPath, <span style="COLOR: #0000ff">bool</span> debugMode)<br /><div id="closed633078372453437500_170" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_170', false)" src="/img/sc/plus.gif" align="top" />        <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_170" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_170', true)" src="/img/sc/minus.gif" align="top" />        {<br /><img src="/img/sc/I.gif" align="top" />            StringBuilder output = <span style="COLOR: #0000ff">new</span> StringBuilder();<br /><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">bool</span> errorThrown = <span style="COLOR: #0000ff">false</span>;<br /><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">string</span> cacheVDir = <span style="COLOR: #800000">"</span><span style="COLOR: #800000">./content/getrsscache/</span><span style="COLOR: #800000">"</span>;<br /><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">string</span> xslPath = <span style="COLOR: #008b8b">HttpContext</span>.Current.Server.MapPath(xslVPath);<br /><img src="/img/sc/I.gif" align="top" /><br /><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">try</span><br /><div id="closed633078372453437500_177" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_177', false)" src="/img/sc/plus.gif" align="top" />            <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_177" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_177', true)" src="/img/sc/minus.gif" align="top" />            {<br /><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #008000">//</span><span style="COLOR: #008000">TODO:</span> <span style="COLOR: #008000">Replace</span> <span style="COLOR: #008000">this</span> <span style="COLOR: #008000">with</span> <span style="COLOR: #008000">a</span> <span style="COLOR: #008000">HttpRequest</span> <span style="COLOR: #008000">and</span> <span style="COLOR: #008000">timeout</span> <span style="COLOR: #008000">to</span> <span style="COLOR: #008000">ensure</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">visitor</span> <span style="COLOR: #008000">is</span> <span style="COLOR: #008000">not</span> <span style="COLOR: #008000">left</span> <span style="COLOR: #008000">waiting</span> <span style="COLOR: #008000">for</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">file</span> <span style="COLOR: #008000">to</span> <span style="COLOR: #008000">load</span><br /><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #008000">//</span><span style="COLOR: #008000">Load</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">XML</span><br /><img src="/img/sc/I.gif" align="top" />                System.Xml.XmlDocument xmlDoc = <span style="COLOR: #0000ff">new</span> System.Xml.XmlDocument();<br /><img src="/img/sc/I.gif" align="top" />                xmlDoc.Load(rssPath);<br /><img src="/img/sc/I.gif" align="top" /><br /><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #008000">//</span><span style="COLOR: #008000">Load</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">XSL</span><br /><img src="/img/sc/I.gif" align="top" />                System.Xml.Xsl.XslTransform xslDoc = <span style="COLOR: #0000ff">new</span> System.Xml.Xsl.XslTransform();<br /><img src="/img/sc/I.gif" align="top" />                xslDoc.Load(xslPath);<br /><img src="/img/sc/I.gif" align="top" />                <br /><img src="/img/sc/I.gif" align="top" />                StringBuilder sb = <span style="COLOR: #0000ff">new</span> StringBuilder();<br /><img src="/img/sc/I.gif" align="top" />                StringWriter sw = <span style="COLOR: #0000ff">new</span> StringWriter(sb);<br /><img src="/img/sc/I.gif" align="top" /><br /><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #008000">//</span><span style="COLOR: #008000">Apply</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">XSL</span> <span style="COLOR: #008000">to</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">XML</span> <span style="COLOR: #008000">document</span><br /><img src="/img/sc/I.gif" align="top" />                xslDoc.Transform(xmlDoc, <span style="COLOR: #0000ff">null</span>, sw);<br /><img src="/img/sc/I.gif" align="top" /><br /><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #008000">//</span><span style="COLOR: #008000">Append</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">resulting</span> <span style="COLOR: #008000">code</span> <span style="COLOR: #008000">to</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">output</span> <span style="COLOR: #008000">file</span><br /><img src="/img/sc/I.gif" align="top" />                output.Append(sb.ToString());<br /><img src="/img/sc/L.gif" align="top" />            }
</div><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">catch</span> (<span style="COLOR: #008b8b">Exception</span> ex)<br /><div id="closed633078372453437500_197" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_197', false)" src="/img/sc/plus.gif" align="top" />            <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_197" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_197', true)" src="/img/sc/minus.gif" align="top" />            {<br /><img src="/img/sc/I.gif" align="top" />                errorThrown = <span style="COLOR: #0000ff">true</span>;<br /><div id="closed633078372453437500_199" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_199', false)" src="/img/sc/plus.gif" align="top" />                <b><span style="COLOR: #00008b">Debug output</span></b></div><div id="open633078372453437500_199" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_199', true)" src="/img/sc/minus.gif" align="top" />                <b><span style="COLOR: #0000ff">#region</span></b> Debug output<br /><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #0000ff">if</span> (debugMode)<br /><div id="closed633078372453437500_201" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_201', false)" src="/img/sc/plus.gif" align="top" />                <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_201" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_201', true)" src="/img/sc/minus.gif" align="top" />                {<br /><img src="/img/sc/I.gif" align="top" />                    <span style="COLOR: #008000">//</span><span style="COLOR: #008000">Log</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">exception</span> <span style="COLOR: #008000">to</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">dasBlog</span> <span style="COLOR: #008000">exception</span> <span style="COLOR: #008000">handler</span><br /><img src="/img/sc/I.gif" align="top" />                    ErrorTrace.Trace(TraceLevel.Error, ex);<br /><img src="/img/sc/I.gif" align="top" />                    output.AppendFormat(<span style="COLOR: #800000">"</span><span style="COLOR: #800000">&lt;ul</span> <span style="COLOR: #800000">style=\"\"&gt;&lt;li&gt;&lt;strong&gt;RSS</span> <span style="COLOR: #800000">request</span> <span style="COLOR: #800000">failed</span> <span style="COLOR: #800000">:(&lt;/strong&gt;</span> <span style="COLOR: #800000">&lt;br</span> <span style="COLOR: #800000">/&gt;{0}&lt;/li&gt;&lt;/ul&gt;</span><span style="COLOR: #800000">"</span>, ex.ToString());<br /><img src="/img/sc/L.gif" align="top" />                }
</div><img src="/img/sc/L.gif" align="top" />                <b><span style="COLOR: #0000ff">#endregion</span></b></div><img src="/img/sc/L.gif" align="top" />            }
</div><img src="/img/sc/I.gif" align="top" /><br /><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #008000">//</span><span style="COLOR: #008000">Save</span> <span style="COLOR: #008000">a</span> <span style="COLOR: #008000">cache</span> <span style="COLOR: #008000">of</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">returned</span> <span style="COLOR: #008000">RSS</span> <span style="COLOR: #008000">feed</span> <span style="COLOR: #008000">if</span> <span style="COLOR: #008000">no</span> <span style="COLOR: #008000">errors</span> <span style="COLOR: #008000">occured</span><br /><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">if</span> (writeCache &amp; !errorThrown)<br /><div id="closed633078372453437500_211" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_211', false)" src="/img/sc/plus.gif" align="top" />            <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_211" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_211', true)" src="/img/sc/minus.gif" align="top" />            {<br /><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #008000">//</span><span style="COLOR: #008000">Find</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">cache's</span> <span style="COLOR: #008000">storage</span> <span style="COLOR: #008000">directory</span><br /><img src="/img/sc/I.gif" align="top" />                DirectoryInfo dir = <span style="COLOR: #0000ff">new</span> DirectoryInfo(<span style="COLOR: #008b8b">HttpContext</span>.Current.Server.MapPath(cacheVDir));<br /><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #008000">//</span><span style="COLOR: #008000">Check</span> <span style="COLOR: #008000">it</span> <span style="COLOR: #008000">exists</span><br /><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #0000ff">if</span> (!dir.Exists)<br /><div id="closed633078372453437500_216" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_216', false)" src="/img/sc/plus.gif" align="top" />                <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_216" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_216', true)" src="/img/sc/minus.gif" align="top" />                {<br /><img src="/img/sc/I.gif" align="top" />                    dir.Create();<br /><div id="closed633078372453437500_218" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_218', false)" src="/img/sc/plus.gif" align="top" />                    <b><span style="COLOR: #00008b">Debug output</span></b></div><div id="open633078372453437500_218" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_218', true)" src="/img/sc/minus.gif" align="top" />                    <b><span style="COLOR: #0000ff">#region</span></b> Debug output<br /><img src="/img/sc/I.gif" align="top" />                    <span style="COLOR: #0000ff">if</span> (debugMode)<br /><div id="closed633078372453437500_220" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_220', false)" src="/img/sc/plus.gif" align="top" />                    <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_220" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_220', true)" src="/img/sc/minus.gif" align="top" />                    {<br /><img src="/img/sc/I.gif" align="top" />                        output.AppendFormat(<span style="COLOR: #800000">"</span><span style="COLOR: #800000">&lt;strong&gt;just</span> <span style="COLOR: #800000">created</span> <span style="COLOR: #800000">the</span> <span style="COLOR: #800000">directory:&lt;/strong&gt;</span> <span style="COLOR: #800000">{0}&lt;br</span> <span style="COLOR: #800000">/&gt;</span><span style="COLOR: #800000">"</span>, <span style="COLOR: #008b8b">HttpContext</span>.Current.Server.MapPath(cacheVDir));<br /><img src="/img/sc/L.gif" align="top" />                    }
</div><img src="/img/sc/L.gif" align="top" />                    <b><span style="COLOR: #0000ff">#endregion</span></b></div><img src="/img/sc/L.gif" align="top" />                }
</div><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #008000">//</span><span style="COLOR: #008000">Create</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">file</span><br /><img src="/img/sc/I.gif" align="top" />                StreamWriter writer1 = File.CreateText(xmlPath);<br /><img src="/img/sc/I.gif" align="top" />                writer1.Write(output);<br /><img src="/img/sc/I.gif" align="top" />                writer1.Flush();<br /><img src="/img/sc/I.gif" align="top" />                writer1.Close();<br /><div id="closed633078372453437500_230" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_230', false)" src="/img/sc/plus.gif" align="top" />                <b><span style="COLOR: #00008b">Debug output</span></b></div><div id="open633078372453437500_230" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_230', true)" src="/img/sc/minus.gif" align="top" />                <b><span style="COLOR: #0000ff">#region</span></b> Debug output<br /><img src="/img/sc/I.gif" align="top" />                <span style="COLOR: #0000ff">if</span> (debugMode)<br /><div id="closed633078372453437500_232" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_232', false)" src="/img/sc/plus.gif" align="top" />                <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_232" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_232', true)" src="/img/sc/minus.gif" align="top" />                {<br /><img src="/img/sc/I.gif" align="top" />                    output.Append(<span style="COLOR: #800000">"</span><span style="COLOR: #800000">&lt;strong&gt;just</span> <span style="COLOR: #800000">wrote</span> <span style="COLOR: #800000">the</span> <span style="COLOR: #800000">new</span> <span style="COLOR: #800000">cache</span> <span style="COLOR: #800000">file&lt;/strong&gt;&lt;br</span> <span style="COLOR: #800000">/&gt;</span><span style="COLOR: #800000">"</span>);<br /><img src="/img/sc/L.gif" align="top" />                }
</div><img src="/img/sc/L.gif" align="top" />                <b><span style="COLOR: #0000ff">#endregion</span></b></div><img src="/img/sc/L.gif" align="top" />            }
</div><img src="/img/sc/I.gif" align="top" /><br /><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">return</span> output.ToString();<br /><img src="/img/sc/L.gif" align="top" />        }
</div><img src="/img/sc/I.gif" align="top" /><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">summary</span><span style="COLOR: #808080">&gt;</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #008000">Worker</span> <span style="COLOR: #008000">method</span> <span style="COLOR: #008000">to</span> <span style="COLOR: #008000">identify</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">MD5</span> <span style="COLOR: #008000">checksum</span> <span style="COLOR: #008000">of</span> <span style="COLOR: #008000">a</span> <span style="COLOR: #008000">string</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #008000">in</span> <span style="COLOR: #008000">this</span> <span style="COLOR: #008000">instance</span> <span style="COLOR: #008000">used</span> <span style="COLOR: #008000">to</span> <span style="COLOR: #008000">ensure</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">RSS</span> <span style="COLOR: #008000">file</span> <span style="COLOR: #008000">isn't</span> <span style="COLOR: #008000">already</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #008000">cached</span> <span style="COLOR: #008000">(based</span> <span style="COLOR: #008000">on</span> <span style="COLOR: #008000">the</span> <span style="COLOR: #008000">URL</span> <span style="COLOR: #008000">supplied)</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">/summary</span><span style="COLOR: #808080">&gt;</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">param</span><span style="COLOR: #808080"> name</span><span style="COLOR: #808080">=</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">str</span><span style="COLOR: #808080">"</span><span style="COLOR: #808080">&gt;</span><span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">/param</span><span style="COLOR: #808080">&gt;</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #808080">///</span> <span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">returns</span><span style="COLOR: #808080">&gt;</span><span style="COLOR: #808080">&lt;</span><span style="COLOR: #808080">/returns</span><span style="COLOR: #808080">&gt;</span><br /><img src="/img/sc/I.gif" align="top" />        <span style="COLOR: #0000ff">public</span> <span style="COLOR: #0000ff">static</span> <span style="COLOR: #0000ff">string</span> GetMd5Sum(<span style="COLOR: #0000ff">string</span> str)<br /><div id="closed633078372453437500_249" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_249', false)" src="/img/sc/plus.gif" align="top" />        <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_249" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_249', true)" src="/img/sc/minus.gif" align="top" />        {<br /><img src="/img/sc/I.gif" align="top" />            Encoder encoder1 = Encoding.Unicode.GetEncoder();<br /><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">byte</span>[] buffer1 = <span style="COLOR: #0000ff">new</span> <span style="COLOR: #0000ff">byte</span>[str.Length * <span style="COLOR: #008080">2</span>];<br /><img src="/img/sc/I.gif" align="top" />            encoder1.GetBytes(str.ToCharArray(), <span style="COLOR: #008080">0</span>, str.Length, buffer1, <span style="COLOR: #008080">0</span>, <span style="COLOR: #0000ff">true</span>);<br /><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">byte</span>[] buffer2 = <span style="COLOR: #0000ff">new</span> MD5CryptoServiceProvider().ComputeHash(buffer1);<br /><img src="/img/sc/I.gif" align="top" />            StringBuilder builder1 = <span style="COLOR: #0000ff">new</span> StringBuilder();<br /><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">for</span> (<span style="COLOR: #0000ff">int</span> minsToCache = <span style="COLOR: #008080">0</span>; minsToCache &lt; buffer2.Length; minsToCache++)<br /><div id="closed633078372453437500_256" style="DISPLAY: none"><img onclick="showHideCodeDiv('633078372453437500_256', false)" src="/img/sc/plus.gif" align="top" />            <b><span style="COLOR: #00008b">{...}</span></b></div><div id="open633078372453437500_256" style="DISPLAY: block"><img onclick="showHideCodeDiv('633078372453437500_256', true)" src="/img/sc/minus.gif" align="top" />            {<br /><img src="/img/sc/I.gif" align="top" />                builder1.Append(buffer2[minsToCache].ToString(<span style="COLOR: #800000">"</span><span style="COLOR: #800000">X2</span><span style="COLOR: #800000">"</span>));<br /><img src="/img/sc/L.gif" align="top" />            }
</div><img src="/img/sc/I.gif" align="top" />            <span style="COLOR: #0000ff">return</span> builder1.ToString();<br /><img src="/img/sc/L.gif" align="top" />        }
</div><img src="/img/sc/I.gif" align="top" /><br /><img src="/img/sc/L.gif" align="top" />    }
</div><img src="/img/sc/L.gif" align="top" />}
</div></div>
        <div class="code">
          <h2>XSL that I use for Last.FM
</h2>
          <img src="/img/sc/clear.gif" align="top" />
          <span style="COLOR: #0000ff">&lt;!</span>
          <span style="COLOR: #ff00ff">DOCTYPE</span> <span style="COLOR: #ff00ff">html</span> <span style="COLOR: #ff00ff">PUBLIC</span> <span style="COLOR: #ff00ff">"-//W3C//DTD</span> <span style="COLOR: #ff00ff">XHTML</span> <span style="COLOR: #ff00ff">1.1//EN"</span> <span style="COLOR: #ff00ff">"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"</span><span style="COLOR: #0000ff">&gt;</span><br /><img src="/img/sc/clear.gif" align="top" /><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">xsl:stylesheet</span><span style="COLOR: #ff0000"> version</span><span style="COLOR: #8b0000">=</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #0000ff">1.0</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #ff0000"> xmlns:xsl</span><span style="COLOR: #8b0000">=</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #0000ff">http://www.w3.org/1999/XSL/Transform</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #0000ff">&gt;</span><br /><img src="/img/sc/clear.gif" align="top" />  <span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">xsl:output</span><span style="COLOR: #ff0000"> method</span><span style="COLOR: #8b0000">=</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #0000ff">html</span><span style="COLOR: #0000ff">"</span> <span style="COLOR: #8b0000">/</span><span style="COLOR: #0000ff">&gt;</span> <br /><img src="/img/sc/clear.gif" align="top" />  <span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">xsl:template</span><span style="COLOR: #ff0000"> match</span><span style="COLOR: #8b0000">=</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #0000ff">/</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #0000ff">&gt;</span><br /><img src="/img/sc/clear.gif" align="top" />    <span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">h2</span><span style="COLOR: #0000ff">&gt;</span>Recent Tracks<span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">/h2</span><span style="COLOR: #0000ff">&gt;</span><br /><img src="/img/sc/clear.gif" align="top" />    <span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">ul</span><span style="COLOR: #0000ff">&gt;</span><br /><img src="/img/sc/clear.gif" align="top" />    <span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">xsl:for-each</span><span style="COLOR: #ff0000"> select</span><span style="COLOR: #8b0000">=</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #0000ff">recenttracks/track</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #0000ff">&gt;</span><br /><img src="/img/sc/clear.gif" align="top" />        <span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">li</span><span style="COLOR: #0000ff">&gt;</span><br /><img src="/img/sc/clear.gif" align="top" />            <span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">a</span><span style="COLOR: #ff0000"> href</span><span style="COLOR: #8b0000">=</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #0000ff">{url}</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #0000ff">&gt;</span><br /><img src="/img/sc/clear.gif" align="top" />                <span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">xsl:value-of</span><span style="COLOR: #ff0000"> select</span><span style="COLOR: #8b0000">=</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #0000ff">artist</span><span style="COLOR: #0000ff">"</span> <span style="COLOR: #8b0000">/</span><span style="COLOR: #0000ff">&gt;</span> - <span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">em</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">xsl:value-of</span><span style="COLOR: #8b0000"> disable-output-escaping=</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #0000ff">yes</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #ff0000"> select</span><span style="COLOR: #8b0000">=</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #0000ff">name</span><span style="COLOR: #0000ff">"</span> <span style="COLOR: #8b0000">/</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">/em</span><span style="COLOR: #0000ff">&gt;</span><br /><img src="/img/sc/clear.gif" align="top" />            <span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">/a</span><span style="COLOR: #0000ff">&gt;</span><br /><img src="/img/sc/clear.gif" align="top" />        <span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">/li</span><span style="COLOR: #0000ff">&gt;</span><br /><img src="/img/sc/clear.gif" align="top" />    <span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">/xsl:for-each</span><span style="COLOR: #0000ff">&gt;</span><br /><img src="/img/sc/clear.gif" align="top" />    <span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">/ul</span><span style="COLOR: #0000ff">&gt;</span><br /><img src="/img/sc/clear.gif" align="top" />    <span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">p</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">a</span><span style="COLOR: #ff0000"> href</span><span style="COLOR: #8b0000">=</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #0000ff">About-Last-FM.aspx</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #ff0000"> title</span><span style="COLOR: #8b0000">=</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #0000ff">last.fm</span> <span style="COLOR: #0000ff">-</span> <span style="COLOR: #0000ff">The</span><span style="COLOR: #0000ff">Social</span><span style="COLOR: #0000ff">Music</span><span style="COLOR: #0000ff">Revolution</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">img</span><span style="COLOR: #ff0000"> alt</span><span style="COLOR: #8b0000">=</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #0000ff">last.fm</span> <span style="COLOR: #0000ff">-</span> <span style="COLOR: #0000ff">The</span> <span style="COLOR: #0000ff">Social</span> <span style="COLOR: #0000ff">Music</span> <span style="COLOR: #0000ff">Revolution</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #ff0000"> src</span><span style="COLOR: #8b0000">=</span><span style="COLOR: #0000ff">"</span><span style="COLOR: #0000ff">images/lastfm_mini_black.gif</span><span style="COLOR: #0000ff">"</span> <span style="COLOR: #8b0000">/</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">/a</span><span style="COLOR: #0000ff">&gt;</span><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">/p</span><span style="COLOR: #0000ff">&gt;</span><br /><img src="/img/sc/clear.gif" align="top" />  <span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">/xsl:template</span><span style="COLOR: #0000ff">&gt;</span><br /><img src="/img/sc/clear.gif" align="top" /><span style="COLOR: #0000ff">&lt;</span><span style="COLOR: #8b0000">/xsl:stylesheet</span><span style="COLOR: #0000ff">&gt;</span></div>
        <div class="code">
          <h2>To use it on the blog template
</h2>
          <img src="/img/sc/clear.gif" align="top" />&lt;% GetRSS("LastFM.xsl", "http://ws.audioscrobbler.com/1.0/user/timgaunt/recenttracks.xml",
25, false)|tsd %&gt;
</div>
        <p>
This is a pretty crude way of doing it 
<ABBR title="In my humble opinion">
IMHO
</ABBR>
because the 
<ABBR title="Extensible Stylesheet Language">
XSL
</ABBR>
transforms the stream directly, eventually I’ll update the code so it includes a timeout
(as John’s did) and having seen the performance implications on my blog, make sure
the request is made asynchronously.
</p>
        <p>
          <ABBR title="For what it's worth">
FWIW
</ABBR>
I have set my cache value to 25minutes, I did have it as 1min for fun but it killed
the blog, why have I set it to 25mins? Well, most of my tracks I would think are 2-3minutes
long, as I list 10 tracks at a time that’s 20-30minutes listening time so it’ll still
keep a fairly accurate overview of my tracks without having massive performance issues
on my blog :) 
</p>
        <p>
Incase you don't want to or know how to create this macro as a 
<ABBR title="Dynamic Link Library">
DLL
</ABBR>
I have created it for you :)
</p>
        <p>
          <a title="Download the TSD dasBlog RSS feed macro" onclick="javascript:urchinTracker('/download/zip/TSDMacros_v1_23-02-07');" href="/tim/files/TSDMacros_v1_23-02-07.zip">Download
the complete dasBlog RSS feed macro</a> (4KB - MD5 Hash: e3d7d6320109fd07259e8d246b754f13)
</p>
        <img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/test/aggbug.ashx?id=70a44ba6-7c18-46cc-a729-c297bf0a01cc" />
      </body>
      <title>DasBlog RSS Feed Macro</title>
      <guid isPermaLink="false">http://blogs.thesitedoctor.co.uk/test/PermaLink,guid,70a44ba6-7c18-46cc-a729-c297bf0a01cc.aspx</guid>
      <link>http://blogs.thesitedoctor.co.uk/test/2007/02/24/DasBlogRSSFeedMacro.aspx</link>
      <pubDate>Sat, 24 Feb 2007 14:39:04 GMT</pubDate>
      <description>&lt;p&gt;
As part of my blog’s re-design I wanted to integrate my statistics from &lt;a title="Learn more about Last FM" href="http://blogs.thesitedoctor.co.uk/tim/About-Last-FM.aspx"&gt;Last.FM&lt;/a&gt; which
monitors what music you’re listening to and generates a stack of statistics about
your listening habit (see &lt;a title="Learn more about Last FM" href="http://blogs.thesitedoctor.co.uk/tim/About-Last-FM.aspx"&gt;About
Last FM&lt;/a&gt; for more information).
&lt;/p&gt;
&lt;p&gt;
Anyways, I started writing my own 
&lt;ABBR title="Really Simple Syndication"&gt;
RSS
&lt;/ABBR&gt;
macro when I came across one already developed by &lt;span class=vcard&gt;&lt;a class="url fn" href="http://www.jforsythe.com/"&gt;John
Forsythe&lt;/a&gt; (&lt;a class=url href="http://www.jforsythe.com/"&gt;http://www.jforsythe.com/&lt;/a&gt;)&lt;/span&gt; which
did pretty much exactly what I was planning on developing, the only difference though
was that his was hard-coded to preset node names whereas I was planning on using an 
&lt;ABBR title="Extensible Stylesheet Language"&gt;
XSL
&lt;/ABBR&gt;
file to format mine to offer maximum flexibility in the long run so I &lt;em&gt;updated&lt;/em&gt; his
with the use of reflector (thanks to &lt;span class=vcard&gt;&lt;a class="url fn" href="http://www.jforsythe.com/"&gt;John
Forsythe&lt;/a&gt;&lt;/span&gt; though!!).
&lt;/p&gt;
&lt;p&gt;
There are a couple of difference to note with this code and &lt;span class=vcard&gt;&lt;a class="url fn" href="http://www.jforsythe.com/"&gt;John
Forsythe&lt;/a&gt;&lt;/span&gt;'s:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
The 
&lt;ABBR title="Really Simple Syndication"&gt;
RSS
&lt;/ABBR&gt;
retrieval is no longer handled by an external library -in this instance I wanted to
keep this as simple and stand-alone as possible. 
&lt;li&gt;
There is no max item count at present -this is mainly because I didn't need it for
the &lt;a title="Learn more about Last FM" href="http://blogs.thesitedoctor.co.uk/tim/About-Last-FM.aspx"&gt;Last.FM&lt;/a&gt; Feed,
I may alter that later.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=code&gt;
&lt;h2&gt;Source code for a dasBlog XSL based RSS reader
&lt;/h2&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&lt;span style="COLOR: #0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System;&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&lt;span style="COLOR: #0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System.IO;&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&lt;span style="COLOR: #0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System.Security.Cryptography;&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&lt;span style="COLOR: #0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System.Diagnostics;&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&lt;span style="COLOR: #0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System.Text;&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&lt;span style="COLOR: #0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System.Web;&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&lt;span style="COLOR: #0000ff"&gt;using&lt;/span&gt;&amp;nbsp;System.Web.UI;&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;
&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&lt;span style="COLOR: #0000ff"&gt;using&lt;/span&gt;&amp;nbsp;newtelligence.DasBlog.Runtime;&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&lt;span style="COLOR: #0000ff"&gt;using&lt;/span&gt;&amp;nbsp;newtelligence.DasBlog.Web.Core;&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;
&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&lt;span style="COLOR: #0000ff"&gt;namespace&lt;/span&gt;&amp;nbsp;TSDMacros&lt;br&gt;
&lt;div id=closed633078372453437500_13 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_13', false)" src="/img/sc/PlusNoLines.gif" align=top&gt;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_13 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_13', true)" src="/img/sc/minusNoTopLine.gif" align=top&gt;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;class&lt;/span&gt;&amp;nbsp;TheSiteDoctor&lt;br&gt;
&lt;div id=closed633078372453437500_15 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_15', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_15 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_15', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;protected&lt;/span&gt;&amp;nbsp;SharedBasePage&amp;nbsp;requestPage;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;protected&lt;/span&gt;&amp;nbsp;Entry&amp;nbsp;currentEntry;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;TheSiteDoctor(SharedBasePage&amp;nbsp;page,&amp;nbsp;Entry&amp;nbsp;entry)&lt;br&gt;
&lt;div id=closed633078372453437500_20 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_20', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_20 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_20', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;requestPage&amp;nbsp;=&amp;nbsp;page;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;currentEntry&amp;nbsp;=&amp;nbsp;entry;&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;summary&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;A&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;dasBlog&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;macro&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;to&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;retrieve&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;an&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;RSS&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;feed&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;and&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;apply&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;XSL&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;to&lt;/span&gt;&amp;nbsp;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;it&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;before&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;caching&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;it&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;for&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;x&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;minutes&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;/summary&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;nbsp;name&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;=&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;xslVPath&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;The&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;virtual&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;path&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;of&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;XSL&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;file&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;/param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;nbsp;name&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;=&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;rssPath&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;The&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;RSS&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;feed&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;URL&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;/param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;nbsp;name&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;=&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;minutesToCache&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;Number&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;of&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;minutes&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;to&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;cache&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;file&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;for&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;/param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;nbsp;name&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;=&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;debugMode&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;Output&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;debug&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;information&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;/param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;returns&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;A&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;control&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;that&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;can&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;be&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;inserted&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;into&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;a&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;dasBlog&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;template&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;/returns&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;virtual&lt;/span&gt;&amp;nbsp;Control&amp;nbsp;GetRSS(&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;xslVPath,&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;rssPath,&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;int&lt;/span&gt;&amp;nbsp;minutesToCache,&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;bool&lt;/span&gt;&amp;nbsp;debugMode)&lt;br&gt;
&lt;div id=closed633078372453437500_35 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_35', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_35 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_35', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;cacheVDir&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;./content/getrsscache/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;cachedFileLoc&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #008b8b"&gt;String&lt;/span&gt;.Empty;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StringBuilder&amp;nbsp;output&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&amp;nbsp;StringBuilder();&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;bool&lt;/span&gt;&amp;nbsp;writeToCache&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;false&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;bool&lt;/span&gt;&amp;nbsp;cacheExpired&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;false&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;bool&lt;/span&gt;&amp;nbsp;cacheExists&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;false&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;
&lt;br&gt;
&lt;div id=closed633078372453437500_44 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_44', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;Debug&amp;nbsp;output&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_44 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_44', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#region&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Debug&amp;nbsp;output&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(debugMode)&lt;br&gt;
&lt;div id=closed633078372453437500_46 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_46', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_46 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_46', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.Append(&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;&amp;lt;strong&amp;gt;&amp;amp;lt;start&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;debug&amp;amp;gt;&amp;lt;/strong&amp;gt;&amp;lt;hr&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;/&amp;gt;\r\n&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;);&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.AppendFormat(&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;&amp;lt;i&amp;gt;RssPath&amp;lt;/i&amp;gt;:&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;{0}&amp;lt;br&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;/&amp;gt;\r\n&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;,&amp;nbsp;rssPath);&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.AppendFormat(&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;&amp;lt;i&amp;gt;minutesToCache&amp;lt;/i&amp;gt;:&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;{0}&amp;lt;br&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;/&amp;gt;\r\n&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;,&amp;nbsp;minutesToCache);&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.AppendFormat(&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;&amp;lt;i&amp;gt;CacheStorageFolder&amp;lt;/i&amp;gt;:&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;{0}&amp;lt;br&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;/&amp;gt;\r\n&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;,&amp;nbsp;cacheVDir);&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.Append(&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;&amp;lt;hr&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;/&amp;gt;\r\n&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;);&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#endregion&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;
&lt;br&gt;
&lt;div id=closed633078372453437500_55 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_55', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;Check&amp;nbsp;whether&amp;nbsp;we&amp;nbsp;need&amp;nbsp;to&amp;nbsp;cache&amp;nbsp;or&amp;nbsp;not&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_55 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_55', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#region&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Check&amp;nbsp;whether&amp;nbsp;we&amp;nbsp;need&amp;nbsp;to&amp;nbsp;cache&amp;nbsp;or&amp;nbsp;not&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(minutesToCache&amp;nbsp;&amp;gt;&amp;nbsp;&lt;span style="COLOR: #008080"&gt;0&lt;/span&gt;)&lt;br&gt;
&lt;div id=closed633078372453437500_57 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_57', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_57 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_57', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;writeToCache&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;Find&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;cache&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;directory&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;cacheDir&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #008b8b"&gt;HttpContext&lt;/span&gt;.Current.Server.MapPath(cacheVDir);&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;Work&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;out&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;what&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;file&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;would&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;be&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;called&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;based&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;on&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;RSS&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;URL&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cachedFileLoc&amp;nbsp;=&amp;nbsp;Path.Combine(cacheDir,&amp;nbsp;HttpUtility.UrlEncode(TheSiteDoctor.GetMd5Sum(rssPath))&amp;nbsp;+&amp;nbsp;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;.cache&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;);&lt;br&gt;
&lt;div id=closed633078372453437500_63 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_63', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;Debug&amp;nbsp;output&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_63 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_63', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#region&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Debug&amp;nbsp;output&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(debugMode)&lt;br&gt;
&lt;div id=closed633078372453437500_65 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_65', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_65 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_65', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.AppendFormat(&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;&amp;lt;i&amp;gt;cache&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;file&amp;lt;/i&amp;gt;:&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;{0}\r\n&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;,&amp;nbsp;cachedFileLoc);&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#endregion&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(!File.Exists(cachedFileLoc))&lt;br&gt;
&lt;div id=closed633078372453437500_70 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_70', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_70 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_70', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cacheExpired&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;div id=closed633078372453437500_72 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_72', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;Debug&amp;nbsp;output&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_72 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_72', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#region&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Debug&amp;nbsp;output&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(debugMode)&lt;br&gt;
&lt;div id=closed633078372453437500_74 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_74', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_74 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_74', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.Append(&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;&amp;lt;i&amp;gt;cache&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;age&amp;lt;/i&amp;gt;:&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;no&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;file&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;exists&amp;lt;br&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;);&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#endregion&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;else&lt;/span&gt;
&lt;br&gt;
&lt;div id=closed633078372453437500_80 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_80', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_80 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_80', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;FileInfo&amp;nbsp;info1&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&amp;nbsp;FileInfo(cachedFileLoc);&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TimeSpan&amp;nbsp;span1&amp;nbsp;=&amp;nbsp;(TimeSpan)(DateTime.Now&amp;nbsp;-&amp;nbsp;info1.LastWriteTime);&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(span1.TotalMinutes&amp;nbsp;&amp;gt;&amp;nbsp;minutesToCache)&lt;br&gt;
&lt;div id=closed633078372453437500_84 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_84', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_84 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_84', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cacheExists&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cacheExpired&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;div id=closed633078372453437500_88 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_88', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;Debug&amp;nbsp;output&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_88 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_88', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#region&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Debug&amp;nbsp;output&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(debugMode)&lt;br&gt;
&lt;div id=closed633078372453437500_90 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_90', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_90 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_90', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.AppendFormat(&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;&amp;lt;i&amp;gt;cache&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;age&amp;lt;/i&amp;gt;:&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;:&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;{0}&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;min&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;old&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;&amp;lt;br&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;/&amp;gt;\r\n&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;,&amp;nbsp;span1.TotalMinutes);&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#endregion&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;else&lt;/span&gt;
&lt;br&gt;
&lt;div id=closed633078372453437500_97 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_97', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_97 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_97', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;div id=closed633078372453437500_98 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_98', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;Debug&amp;nbsp;output&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_98 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_98', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#region&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Debug&amp;nbsp;output&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(debugMode)&lt;br&gt;
&lt;div id=closed633078372453437500_100 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_100', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_100 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_100', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.Append(&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;&amp;lt;strong&amp;gt;caching&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;disabled&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;-&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;CacheStorageAgeLimit=0&amp;lt;/strong&amp;gt;&amp;lt;br&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;/&amp;gt;&amp;lt;span&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;style=\"color:red;&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;font-weight:&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;bold;\"&amp;gt;FYI:&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;All&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;requests&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;to&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;this&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;page&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;will&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;cause&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;a&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;server&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;request&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;to&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;RssPath&amp;lt;/span&amp;gt;&amp;lt;br&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;);&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#endregion&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;cacheExpired&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;
&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#endregion&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;
&lt;br&gt;
&lt;div id=closed633078372453437500_109 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_109', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;Debug&amp;nbsp;output&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_109 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_109', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#region&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Debug&amp;nbsp;output&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(debugMode)&lt;br&gt;
&lt;div id=closed633078372453437500_111 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_111', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_111 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_111', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.Append(&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;&amp;lt;hr&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;);&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#endregion&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;Check&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;whether&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;or&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;not&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;cache&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;has&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;expired&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(cacheExpired)&lt;br&gt;
&lt;div id=closed633078372453437500_117 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_117', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_117 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_117', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;div id=closed633078372453437500_118 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_118', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;Debug&amp;nbsp;output&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_118 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_118', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#region&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Debug&amp;nbsp;output&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(cacheExists&amp;nbsp;&amp;amp;&amp;nbsp;debugMode)&lt;br&gt;
&lt;div id=closed633078372453437500_120 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_120', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_120 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_120', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.Append(&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;&amp;lt;strong&amp;gt;file&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;cache&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;is&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;expired,&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;getting&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;a&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;copy&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;right&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;now&amp;lt;/strong&amp;gt;&amp;lt;br&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;);&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;else&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(debugMode)&lt;br&gt;
&lt;div id=closed633078372453437500_124 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_124', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_124 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_124', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.Append(&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;&amp;lt;strong&amp;gt;no&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;cache,&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;getting&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;file&amp;lt;/strong&amp;gt;&amp;lt;br&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;);&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#endregion&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;The&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;cache&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;has&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;expired&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;so&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;retrieve&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;a&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;copy&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.Append(TheSiteDoctor.delegateRss(xslVPath,&amp;nbsp;rssPath,&amp;nbsp;&lt;span style="COLOR: #008080"&gt;0&lt;/span&gt;,&amp;nbsp;writeToCache,&amp;nbsp;cachedFileLoc,&amp;nbsp;debugMode));&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;else&lt;/span&gt;
&lt;br&gt;
&lt;div id=closed633078372453437500_132 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_132', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_132 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_132', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;div id=closed633078372453437500_133 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_133', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;Debug&amp;nbsp;output&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_133 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_133', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#region&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Debug&amp;nbsp;output&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(debugMode)&lt;br&gt;
&lt;div id=closed633078372453437500_135 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_135', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_135 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_135', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.Append(&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;&amp;lt;strong&amp;gt;cool,&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;we&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;got&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;file&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;from&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;cache&amp;lt;/strong&amp;gt;&amp;lt;br&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;);&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#endregion&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;The&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;cache&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;still&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;exists&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;and&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;is&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;valid&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StreamReader&amp;nbsp;reader1&amp;nbsp;=&amp;nbsp;File.OpenText(cachedFileLoc);&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.Append(reader1.ReadToEnd());&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;reader1.Close();&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;div id=closed633078372453437500_144 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_144', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;Debug&amp;nbsp;output&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_144 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_144', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#region&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Debug&amp;nbsp;output&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(debugMode)&lt;br&gt;
&lt;div id=closed633078372453437500_146 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_146', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_146 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_146', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.Append(&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;&amp;lt;hr&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;/&amp;gt;&amp;lt;strong&amp;gt;&amp;amp;lt;end&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;debug&amp;amp;gt;&amp;lt;/strong&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;);&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#endregion&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.Append(&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;\r\n&amp;lt;!--&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;\r\ndasBlog&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;RSS&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;feed&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;produced&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;using&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;macro&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;from&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;Tim&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;Gaunt\r\n&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;http://blogs.thesitedoctor.co.uk/tim/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;\r\n--&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;);&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&amp;nbsp;LiteralControl(output.ToString());&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;summary&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;RSS&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;feed&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;retrieval&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;worker&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;method.&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;Retrieves&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;RSS&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;feed&lt;/span&gt;&amp;nbsp;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;and&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;applies&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;specified&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;XSL&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;document&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;to&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;it&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;before&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;caching&lt;/span&gt;&amp;nbsp;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;a&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;copy&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;to&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;disk&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;-this&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;should&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;be&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;called&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;after&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;it&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;has&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;been&lt;/span&gt;&amp;nbsp;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;established&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;cache&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;is&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;out&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;of&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;date.&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;/summary&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;nbsp;name&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;=&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;xslVPath&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;The&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;virtual&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;path&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;of&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;XSL&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;file&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;/param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;nbsp;name&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;=&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;rssPath&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;The&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;RSS&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;feed&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;URL&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;/param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;nbsp;name&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;=&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;timeoutSeconds&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;Number&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;of&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;seconds&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;before&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;request&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;should&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;timeout&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;/param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;nbsp;name&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;=&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;writeCache&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;Whether&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;to&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;cache&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;a&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;copy&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;on&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;disk&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;/param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;nbsp;name&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;=&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;xmlPath&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;Physical&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;path&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;of&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;XML&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;file&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;on&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;disk&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;/param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;nbsp;name&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;=&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;debugMode&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;Output&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;debug&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;information&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;/param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;returns&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;An&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;XML&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;document&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;as&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;a&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;string&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;/returns&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;delegateRss(&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;xslVPath,&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;rssPath,&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;int&lt;/span&gt;&amp;nbsp;timeoutSeconds,&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;bool&lt;/span&gt;&amp;nbsp;writeCache,&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;xmlPath,&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;bool&lt;/span&gt;&amp;nbsp;debugMode)&lt;br&gt;
&lt;div id=closed633078372453437500_170 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_170', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_170 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_170', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StringBuilder&amp;nbsp;output&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&amp;nbsp;StringBuilder();&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;bool&lt;/span&gt;&amp;nbsp;errorThrown&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;false&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;cacheVDir&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;./content/getrsscache/&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;xslPath&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #008b8b"&gt;HttpContext&lt;/span&gt;.Current.Server.MapPath(xslVPath);&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;try&lt;/span&gt;
&lt;br&gt;
&lt;div id=closed633078372453437500_177 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_177', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_177 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_177', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;TODO:&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;Replace&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;this&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;with&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;a&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;HttpRequest&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;and&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;timeout&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;to&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;ensure&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;visitor&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;is&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;not&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;left&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;waiting&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;for&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;file&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;to&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;load&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;Load&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;XML&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.Xml.XmlDocument&amp;nbsp;xmlDoc&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&amp;nbsp;System.Xml.XmlDocument();&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xmlDoc.Load(rssPath);&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;Load&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;XSL&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.Xml.Xsl.XslTransform&amp;nbsp;xslDoc&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&amp;nbsp;System.Xml.Xsl.XslTransform();&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xslDoc.Load(xslPath);&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StringBuilder&amp;nbsp;sb&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&amp;nbsp;StringBuilder();&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StringWriter&amp;nbsp;sw&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&amp;nbsp;StringWriter(sb);&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;Apply&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;XSL&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;to&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;XML&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;document&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xslDoc.Transform(xmlDoc,&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;null&lt;/span&gt;,&amp;nbsp;sw);&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;Append&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;resulting&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;code&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;to&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;output&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;file&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.Append(sb.ToString());&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;catch&lt;/span&gt;&amp;nbsp;(&lt;span style="COLOR: #008b8b"&gt;Exception&lt;/span&gt;&amp;nbsp;ex)&lt;br&gt;
&lt;div id=closed633078372453437500_197 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_197', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_197 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_197', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;errorThrown&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;true&lt;/span&gt;;&lt;br&gt;
&lt;div id=closed633078372453437500_199 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_199', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;Debug&amp;nbsp;output&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_199 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_199', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#region&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Debug&amp;nbsp;output&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(debugMode)&lt;br&gt;
&lt;div id=closed633078372453437500_201 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_201', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_201 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_201', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;Log&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;exception&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;to&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;dasBlog&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;exception&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;handler&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ErrorTrace.Trace(TraceLevel.Error,&amp;nbsp;ex);&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.AppendFormat(&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;&amp;lt;ul&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;style=\"\"&amp;gt;&amp;lt;li&amp;gt;&amp;lt;strong&amp;gt;RSS&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;request&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;failed&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;:(&amp;lt;/strong&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;&amp;lt;br&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;/&amp;gt;{0}&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;,&amp;nbsp;ex.ToString());&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#endregion&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;Save&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;a&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;cache&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;of&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;returned&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;RSS&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;feed&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;if&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;no&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;errors&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;occured&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(writeCache&amp;nbsp;&amp;amp;&amp;nbsp;!errorThrown)&lt;br&gt;
&lt;div id=closed633078372453437500_211 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_211', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_211 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_211', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;Find&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;cache's&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;storage&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;directory&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DirectoryInfo&amp;nbsp;dir&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&amp;nbsp;DirectoryInfo(&lt;span style="COLOR: #008b8b"&gt;HttpContext&lt;/span&gt;.Current.Server.MapPath(cacheVDir));&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;Check&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;it&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;exists&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(!dir.Exists)&lt;br&gt;
&lt;div id=closed633078372453437500_216 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_216', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_216 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_216', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dir.Create();&lt;br&gt;
&lt;div id=closed633078372453437500_218 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_218', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;Debug&amp;nbsp;output&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_218 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_218', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#region&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Debug&amp;nbsp;output&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(debugMode)&lt;br&gt;
&lt;div id=closed633078372453437500_220 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_220', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_220 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_220', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.AppendFormat(&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;&amp;lt;strong&amp;gt;just&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;created&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;directory:&amp;lt;/strong&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;{0}&amp;lt;br&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;,&amp;nbsp;&lt;span style="COLOR: #008b8b"&gt;HttpContext&lt;/span&gt;.Current.Server.MapPath(cacheVDir));&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#endregion&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;//&lt;/span&gt;&lt;span style="COLOR: #008000"&gt;Create&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;file&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StreamWriter&amp;nbsp;writer1&amp;nbsp;=&amp;nbsp;File.CreateText(xmlPath);&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;writer1.Write(output);&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;writer1.Flush();&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;writer1.Close();&lt;br&gt;
&lt;div id=closed633078372453437500_230 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_230', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;Debug&amp;nbsp;output&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_230 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_230', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#region&lt;/span&gt;&lt;/b&gt;&amp;nbsp;Debug&amp;nbsp;output&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;if&lt;/span&gt;&amp;nbsp;(debugMode)&lt;br&gt;
&lt;div id=closed633078372453437500_232 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_232', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_232 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_232', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;output.Append(&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;&amp;lt;strong&amp;gt;just&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;wrote&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;cache&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;file&amp;lt;/strong&amp;gt;&amp;lt;br&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #800000"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;);&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #0000ff"&gt;#endregion&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt;&amp;nbsp;output.ToString();&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;summary&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;Worker&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;method&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;to&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;identify&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;MD5&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;checksum&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;of&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;a&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;string&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;in&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;this&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;instance&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;used&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;to&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;ensure&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;RSS&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;file&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;isn't&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;already&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;cached&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;(based&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;on&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;the&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;URL&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #008000"&gt;supplied)&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;/summary&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;nbsp;name&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;=&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;str&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;"&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;/param&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;///&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;returns&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;/returns&lt;/span&gt;&lt;span style="COLOR: #808080"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;static&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;GetMd5Sum(&lt;span style="COLOR: #0000ff"&gt;string&lt;/span&gt;&amp;nbsp;str)&lt;br&gt;
&lt;div id=closed633078372453437500_249 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_249', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_249 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_249', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Encoder&amp;nbsp;encoder1&amp;nbsp;=&amp;nbsp;Encoding.Unicode.GetEncoder();&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;byte&lt;/span&gt;[]&amp;nbsp;buffer1&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;byte&lt;/span&gt;[str.Length&amp;nbsp;*&amp;nbsp;&lt;span style="COLOR: #008080"&gt;2&lt;/span&gt;];&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;encoder1.GetBytes(str.ToCharArray(),&amp;nbsp;&lt;span style="COLOR: #008080"&gt;0&lt;/span&gt;,&amp;nbsp;str.Length,&amp;nbsp;buffer1,&amp;nbsp;&lt;span style="COLOR: #008080"&gt;0&lt;/span&gt;,&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;true&lt;/span&gt;);&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;byte&lt;/span&gt;[]&amp;nbsp;buffer2&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&amp;nbsp;MD5CryptoServiceProvider().ComputeHash(buffer1);&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StringBuilder&amp;nbsp;builder1&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;new&lt;/span&gt;&amp;nbsp;StringBuilder();&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;for&lt;/span&gt;&amp;nbsp;(&lt;span style="COLOR: #0000ff"&gt;int&lt;/span&gt;&amp;nbsp;minsToCache&amp;nbsp;=&amp;nbsp;&lt;span style="COLOR: #008080"&gt;0&lt;/span&gt;;&amp;nbsp;minsToCache&amp;nbsp;&amp;lt;&amp;nbsp;buffer2.Length;&amp;nbsp;minsToCache++)&lt;br&gt;
&lt;div id=closed633078372453437500_256 style="DISPLAY: none"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_256', false)" src="/img/sc/plus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;&lt;span style="COLOR: #00008b"&gt;{...}&lt;/span&gt;&lt;/b&gt;
&lt;/div&gt;
&lt;div id=open633078372453437500_256 style="DISPLAY: block"&gt;&lt;img onclick="showHideCodeDiv('633078372453437500_256', true)" src="/img/sc/minus.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;builder1.Append(buffer2[minsToCache].ToString(&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;X2&lt;/span&gt;&lt;span style="COLOR: #800000"&gt;"&lt;/span&gt;));&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;return&lt;/span&gt;&amp;nbsp;builder1.ToString();&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/I.gif" align=top&gt;
&lt;br&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&lt;/div&gt;
&lt;img src="/img/sc/L.gif" align=top&gt;}
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=code&gt;
&lt;h2&gt;XSL that I use for Last.FM
&lt;/h2&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;!&lt;/span&gt;&lt;span style="COLOR: #ff00ff"&gt;DOCTYPE&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #ff00ff"&gt;html&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #ff00ff"&gt;PUBLIC&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #ff00ff"&gt;"-//W3C//DTD&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #ff00ff"&gt;XHTML&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #ff00ff"&gt;1.1//EN"&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #ff00ff"&gt;"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;xsl:stylesheet&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt;&amp;nbsp;version&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;1.0&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt;&amp;nbsp;xmlns:xsl&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;http://www.w3.org/1999/XSL/Transform&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;xsl:output&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt;&amp;nbsp;method&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;html&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #8b0000"&gt;/&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;xsl:template&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt;&amp;nbsp;match&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;/&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;h2&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;Recent&amp;nbsp;Tracks&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;/h2&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;ul&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;xsl:for-each&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt;&amp;nbsp;select&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;recenttracks/track&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;li&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;a&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt;&amp;nbsp;href&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;{url}&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;xsl:value-of&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt;&amp;nbsp;select&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;artist&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #8b0000"&gt;/&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;-&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;em&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;xsl:value-of&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;&amp;nbsp;disable-output-escaping=&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;yes&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt; select&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;name&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #8b0000"&gt;/&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;/em&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;/a&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;/li&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;/xsl:for-each&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;/ul&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;p&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;a&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt;&amp;nbsp;href&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;About-Last-FM.aspx&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt;&amp;nbsp;title&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;last.fm&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;-&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;The&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;Social&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;Music&lt;/span&gt; &lt;span style="COLOR: #0000ff"&gt;Revolution&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;img&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt;&amp;nbsp;alt&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;last.fm&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;-&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;The&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;Social&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;Music&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;Revolution&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #ff0000"&gt;&amp;nbsp;src&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;=&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;images/lastfm_mini_black.gif&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;"&lt;/span&gt;&amp;nbsp;&lt;span style="COLOR: #8b0000"&gt;/&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;/a&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;/p&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&amp;nbsp;&amp;nbsp;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;/xsl:template&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt;
&lt;br&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="COLOR: #8b0000"&gt;/xsl:stylesheet&lt;/span&gt;&lt;span style="COLOR: #0000ff"&gt;&amp;gt;&lt;/span&gt; 
&lt;/div&gt;
&lt;div class=code&gt;
&lt;h2&gt;To use it on the blog template
&lt;/h2&gt;
&lt;img src="/img/sc/clear.gif" align=top&gt;&amp;lt;%&amp;nbsp;GetRSS("LastFM.xsl", "http://ws.audioscrobbler.com/1.0/user/timgaunt/recenttracks.xml",
25, false)|tsd&amp;nbsp;%&amp;gt;
&lt;/div&gt;
&lt;p&gt;
This is a pretty crude way of doing it 
&lt;ABBR title="In my humble opinion"&gt;
IMHO
&lt;/ABBR&gt;
because the 
&lt;ABBR title="Extensible Stylesheet Language"&gt;
XSL
&lt;/ABBR&gt;
transforms the stream directly, eventually I’ll update the code so it includes a timeout
(as John’s did) and having seen the performance implications on my blog, make sure
the request is made asynchronously.
&lt;/p&gt;
&lt;p&gt;
&lt;ABBR title="For what it's worth"&gt;
FWIW
&lt;/ABBR&gt;
I have set my cache value to 25minutes, I did have it as 1min for fun but it killed
the blog, why have I set it to 25mins? Well, most of my tracks I would think are 2-3minutes
long, as I list 10 tracks at a time that’s 20-30minutes listening time so it’ll still
keep a fairly accurate overview of my tracks without having massive performance issues
on my blog :) 
&lt;/p&gt;
&lt;p&gt;
Incase you don't want to or know how to create this macro as a 
&lt;ABBR title="Dynamic Link Library"&gt;
DLL
&lt;/ABBR&gt;
I have created it for you :)
&lt;/p&gt;
&lt;p&gt;
&lt;a title="Download the TSD dasBlog RSS feed macro" onclick="javascript:urchinTracker('/download/zip/TSDMacros_v1_23-02-07');" href="/tim/files/TSDMacros_v1_23-02-07.zip"&gt;Download
the complete dasBlog RSS feed macro&lt;/a&gt; (4KB - MD5 Hash: e3d7d6320109fd07259e8d246b754f13)
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/test/aggbug.ashx?id=70a44ba6-7c18-46cc-a729-c297bf0a01cc" /&gt;</description>
      <comments>http://blogs.thesitedoctor.co.uk/test/CommentView,guid,70a44ba6-7c18-46cc-a729-c297bf0a01cc.aspx</comments>
      <category>ASP.Net</category>
      <category>dasBlog</category>
      <category>The Site Doctor</category>
      <category>Web Development</category>
    </item>
    <item>
      <trackback:ping>http://blogs.thesitedoctor.co.uk/test/Trackback.aspx?guid=f34942c3-a58a-4cc0-ba5d-0f5aa02b4e68</trackback:ping>
      <pingback:server>http://blogs.thesitedoctor.co.uk/test/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.thesitedoctor.co.uk/test/PermaLink,guid,f34942c3-a58a-4cc0-ba5d-0f5aa02b4e68.aspx</pingback:target>
      <dc:creator>Tim</dc:creator>
      <wfw:comment>http://blogs.thesitedoctor.co.uk/test/CommentView,guid,f34942c3-a58a-4cc0-ba5d-0f5aa02b4e68.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.thesitedoctor.co.uk/test/SyndicationService.asmx/GetEntryCommentsRss?guid=f34942c3-a58a-4cc0-ba5d-0f5aa02b4e68</wfw:commentRss>
      <slash:comments>6</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
While updating the layout of the <a href="http://www.dasblog.net/">DasBlog</a> I needed
to alter some of the source code to output lists rather than tables etc and after
uploading the latest version of the blog the login form suddenly failed to work. When
logging into <a href="http://www.dasblog.net/">DasBlog</a> it would accept the parameters
and either kick me out to the error page or redirect me to the logged in page.
</p>
        <p>
          <a href="http://www.dasblog.net/">DasBlog</a> includes some fairly indepth error logging
(not using <a href="/tim/2006/11/06/ASPNet+WebException+And+Error+Reporting+Useful+Code.aspx">Phil
Winstanley’s Error Reporting code</a> mind you), one of the events it logs is logging
in. I noticed that I would get one of two errors when logging in, when I was shown
the error page it would say: “Password Challenge was null in ViewState! &lt;br&gt;
at newtelligence.DasBlog.Web.LoginBox.doSignIn_Click(Object sender, EventArgs e)”
etc and when it took me to the front page it would log: “Audit: SecuritySuccess” and
the standard who logged in from which IP etc.
</p>
        <p>
As I’d edited the <a href="http://www.dasblog.net/">DasBlog</a> source my immediate
thought was that I’d changed something in the login process so I copied the original
DLLs back onto the site and tried again without any success. After a fair amount of
searching into the issue on Google and the <a href="http://www.dasblog.us/">DasBlog
forums</a> I was at a loss as to the issue so I asked on the <a href="http://www.dasblog.us/">DasBlog
forum</a> (<a href="http://www.dasblog.us/viewtopic.php?t=417">http://www.dasblog.us/viewtopic.php?t=417</a>).
</p>
        <p>
A couple of people responded including Tom but sadly none of the suggestions applied
to my situation. In the end I found that the issue was being caused because I was
running the site under ASP.Net 2.0. When running <a href="http://www.dasblog.net/">DasBlog</a> under
ASP.Net 2.0 you need to make additional changes to the web.config file as outlined
in the install documentation. When setting up the <a href="/test/">staging site</a> I
copied the directory from my main blog so I had the same content to test with, although
I remembered to alter all the relevant areas in the site.config etc files, I had neglected
to alter the cookie path setting in the web.config. So if you’re getting the same
issues, check the web.config cookie path values.
</p>
        <img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/test/aggbug.ashx?id=f34942c3-a58a-4cc0-ba5d-0f5aa02b4e68" />
      </body>
      <title>DasBlog Login issues</title>
      <guid isPermaLink="false">http://blogs.thesitedoctor.co.uk/test/PermaLink,guid,f34942c3-a58a-4cc0-ba5d-0f5aa02b4e68.aspx</guid>
      <link>http://blogs.thesitedoctor.co.uk/test/2007/01/03/DasBlogLoginIssues.aspx</link>
      <pubDate>Wed, 03 Jan 2007 23:26:03 GMT</pubDate>
      <description>
		&lt;p&gt;
While updating the layout of the &lt;a href="http://www.dasblog.net/"&gt;DasBlog&lt;/a&gt; I needed
to alter some of the source code to output lists rather than tables etc and after
uploading the latest version of the blog the login form suddenly failed to work. When
logging into &lt;a href="http://www.dasblog.net/"&gt;DasBlog&lt;/a&gt; it would accept the parameters
and either kick me out to the error page or redirect me to the logged in page.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.dasblog.net/"&gt;DasBlog&lt;/a&gt; includes some fairly indepth error logging
(not using &lt;a href="/tim/2006/11/06/ASPNet+WebException+And+Error+Reporting+Useful+Code.aspx"&gt;Phil
Winstanley’s Error Reporting code&lt;/a&gt; mind you), one of the events it logs is logging
in. I noticed that I would get one of two errors when logging in, when I was shown
the error page it would say: “Password Challenge was null in ViewState! &amp;lt;br&amp;gt;
at newtelligence.DasBlog.Web.LoginBox.doSignIn_Click(Object sender, EventArgs e)”
etc and when it took me to the front page it would log: “Audit: SecuritySuccess” and
the standard who logged in from which IP etc.
&lt;/p&gt;
&lt;p&gt;
As I’d edited the &lt;a href="http://www.dasblog.net/"&gt;DasBlog&lt;/a&gt; source my immediate
thought was that I’d changed something in the login process so I copied the original
DLLs back onto the site and tried again without any success. After a fair amount of
searching into the issue on Google and the &lt;a href="http://www.dasblog.us/"&gt;DasBlog
forums&lt;/a&gt; I was at a loss as to the issue so I asked on the &lt;a href="http://www.dasblog.us/"&gt;DasBlog
forum&lt;/a&gt; (&lt;a href="http://www.dasblog.us/viewtopic.php?t=417"&gt;http://www.dasblog.us/viewtopic.php?t=417&lt;/a&gt;).
&lt;/p&gt;
&lt;p&gt;
A couple of people responded including Tom but sadly none of the suggestions applied
to my situation. In the end I found that the issue was being caused because I was
running the site under ASP.Net 2.0. When running &lt;a href="http://www.dasblog.net/"&gt;DasBlog&lt;/a&gt; under
ASP.Net 2.0 you need to make additional changes to the web.config file as outlined
in the install documentation. When setting up the &lt;a href="/test/"&gt;staging site&lt;/a&gt; I
copied the directory from my main blog so I had the same content to test with, although
I remembered to alter all the relevant areas in the site.config etc files, I had neglected
to alter the cookie path setting in the web.config. So if you’re getting the same
issues, check the web.config cookie path values.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.thesitedoctor.co.uk/test/aggbug.ashx?id=f34942c3-a58a-4cc0-ba5d-0f5aa02b4e68" /&gt;</description>
      <comments>http://blogs.thesitedoctor.co.uk/test/CommentView,guid,f34942c3-a58a-4cc0-ba5d-0f5aa02b4e68.aspx</comments>
      <category>ASP.Net</category>
      <category>dasBlog</category>
    </item>
  </channel>
</rss>