<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tags 'SQL Server', 'Database Testing', and 'Database Unit Testing'</title><link>http://sqlblog.com/search/SearchResults.aspx?o=DateDescending&amp;tag=SQL+Server,Database+Testing,Database+Unit+Testing&amp;orTags=0</link><description>Search results matching tags 'SQL Server', 'Database Testing', and 'Database Unit Testing'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Fun with DBCC CHECKIDENT</title><link>http://sqlblog.com/blogs/alexander_kuznetsov/archive/2008/06/26/fun-with-dbcc-chekident.aspx</link><pubDate>Thu, 26 Jun 2008 21:51:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:7531</guid><dc:creator>Alexander Kuznetsov</dc:creator><description>
&lt;p class="MsoNormal"&gt;&amp;lt;Denis Gobo’s mode on&amp;gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Suppose you have an empty table:&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;SELECT&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt; &lt;span style="color:fuchsia;"&gt;COUNT&lt;/span&gt;&lt;span style="color:gray;"&gt;(*)&lt;/span&gt; &lt;span style="color:blue;"&gt;FROM&lt;/span&gt; SampleTable&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:green;"&gt;---&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:green;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;What would be the result of the following query:&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;DBCC&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt; CHECKIDENT&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'SampleTable'&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; RESEED&lt;span style="color:gray;"&gt;,&lt;/span&gt; 1&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;INSERT&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt; SampleTable&lt;span style="color:gray;"&gt;(&lt;/span&gt;j&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;SELECT&lt;/span&gt; 1&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;SELECT&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt; &lt;span style="color:fuchsia;"&gt;SCOPE_IDENTITY&lt;/span&gt;&lt;span style="color:gray;"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:14pt;font-family:'Courier New';"&gt;&lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14pt;font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;lt;Denis Gobo’s mode off&amp;gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Surprisingly enough, the answer is “it depends”. If the
table is brand new, you’ll get one, if there have been inserts into the table,
the answer is 2. See for yourself:&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;CREATE&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;TABLE&lt;/span&gt;
SampleTable&lt;span style="color:gray;"&gt;(&lt;/span&gt;i &lt;span style="color:blue;"&gt;INT&lt;/span&gt;
&lt;span style="color:blue;"&gt;IDENTITY&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; j &lt;span style="color:blue;"&gt;INT&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;GO&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;SELECT&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt; &lt;span style="color:fuchsia;"&gt;COUNT&lt;/span&gt;&lt;span style="color:gray;"&gt;(*)&lt;/span&gt; &lt;span style="color:blue;"&gt;FROM&lt;/span&gt; SampleTable&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:green;"&gt;---&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:green;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;0&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;DBCC&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt; CHECKIDENT&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'SampleTable'&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; RESEED&lt;span style="color:gray;"&gt;,&lt;/span&gt; 1&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;INSERT&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt; SampleTable&lt;span style="color:gray;"&gt;(&lt;/span&gt;j&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;SELECT&lt;/span&gt; 1&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;SELECT&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt; &lt;span style="color:fuchsia;"&gt;SCOPE_IDENTITY&lt;/span&gt;&lt;span style="color:gray;"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:green;"&gt;---&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:green;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;1&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;DELETE&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;FROM&lt;/span&gt;
SampleTable&lt;span style="color:gray;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;DBCC&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt; CHECKIDENT&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;'SampleTable'&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; RESEED&lt;span style="color:gray;"&gt;,&lt;/span&gt; 1&lt;span style="color:gray;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;INSERT&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt; SampleTable&lt;span style="color:gray;"&gt;(&lt;/span&gt;j&lt;span style="color:gray;"&gt;)&lt;/span&gt; &lt;span style="color:blue;"&gt;SELECT&lt;/span&gt; 1&lt;span style="color:gray;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;SELECT&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt; &lt;span style="color:fuchsia;"&gt;SCOPE_IDENTITY&lt;/span&gt;&lt;span style="color:gray;"&gt;();&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:green;"&gt;---&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:green;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;2&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Even more surprising is the fact that this inconsistent behavior
is by design – it has been documented in MSDN:&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa258817%28SQL.80%29.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa258817(SQL.80).aspx&lt;/a&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;quoting from this MSDN article: “If no rows have been
inserted to the table since it was created, the first row inserted after
executing DBCC CHECKIDENT will use &lt;i&gt;new_reseed_value&lt;/i&gt; as the identity.
Otherwise, the next row inserted will use &lt;i&gt;new_reseed_value&lt;/i&gt; + 1.”&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;So far I cannot come up
with a reason why such inconsistent behavior could be required. Any feedback is
welcome. &lt;/p&gt;

&lt;p class="MsoNormal"&gt;Anyway, if you are unit testing a stored procedure inserting
into a table with identity, this feature of DBCC CHECKIDENT may break your unit
tests. The workaround that I am using in my database unit testing is simple –
when I set up my test fixture, I run the following script against all the
tables with identities:&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;BEGIN &lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;TRY&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;INSERT INTO &lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;MySchema.MyTable &lt;span style="color:blue;"&gt;DEFAULT VALUES&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;END &lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;TRY&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;BEGIN &lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;CATCH&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;PRINT &lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;'1'&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;END &lt;/span&gt;&lt;span style="font-family:'Courier New';"&gt;CATCH&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;</description></item><item><title>Database Unit Testing: Impersonation</title><link>http://sqlblog.com/blogs/alexander_kuznetsov/archive/2008/06/18/database-unit-testing-impersonation.aspx</link><pubDate>Wed, 18 Jun 2008 16:19:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:7367</guid><dc:creator>Alexander Kuznetsov</dc:creator><description>

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;When you run NUnit/C# unit tests against your local
instance, you are a dbo. As such, you are not getting any errors caused by
missing permissions. However, you can impersonate another user, and run your
unit tests in the context of that other user. The following test harness demonstrates
the technique:&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;using&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
System.Data;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;using&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
System.Data.SqlClient;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;using&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
NUnit.Framework;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;namespace&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; MyDB.Tests&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;TestFixture&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;]&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;public&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;class&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;ImpersonatorTests&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;private&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;SqlConnection&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; connection = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;null&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;private&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;Impersonator&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; realUser;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; constants&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;private&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;const&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;string&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; userName =
&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;"me"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;private&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;const&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;string&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; domainName
= &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;"myDomain"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; hide me&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;private&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;const&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;string&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; pwd = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;"myPassword"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;TestFixtureSetUp&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;]&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;public&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;void&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
TestFixtureSetUp()&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;realUser = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;new&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;Impersonator&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;(userName, domainName, pwd);&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;connection = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;new&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;SqlConnection&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;(&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;"server=(local);trusted_connection=true;database=FinancialDW;"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;);&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;connection.Open();&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;TestFixtureTearDown&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;]&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;public&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;void&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
TestFixtureTearDown()&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;if&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; (realUser
!= &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;null&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;) realUser.Dispose();&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;Test&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;]&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;public&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;void&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
ImpersonationSucceededTest()&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;SqlCommand&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; reader =
connection.CreateCommand();&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;reader.CommandText = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;"SELECT SUSER_NAME()"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;reader.CommandType = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;CommandType&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;.Text;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;string&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; suserName
= reader.ExecuteScalar().ToString();&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;Assert&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;.AreEqual(&lt;span&gt;@"myDomain\me"&lt;/span&gt;&lt;b&gt;, suserName);&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;//Console.WriteLine(suserName);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;Test&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;]&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;public&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;void&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
CanSelectFromSalesTest()&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;SqlCommand&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; reader =
connection.CreateCommand();&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;reader.CommandText = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;"SELECT COUNT(*) FROM Data.Sales"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;reader.CommandType = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;CommandType&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;.Text;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;int&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; numRows = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;int&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;.Parse(reader.ExecuteScalar().ToString());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;Assert&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;.IsTrue(numRows
&amp;gt;= 0);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;So, if the myDomain\me user does not have the SELECT
permission on Data.Sales, I am getting an exception:&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size:9.5pt;line-height:115%;font-family:'Courier New';"&gt;System.Data.SqlClient.SqlException:&amp;nbsp;SELECT&amp;nbsp;permission&amp;nbsp;denied&amp;nbsp;on&amp;nbsp;object&amp;nbsp;'Sales',&amp;nbsp;database&amp;nbsp;'MyDb',&amp;nbsp;schema&amp;nbsp;'data'&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;The code that I used to implement the Impersonator class is
mostly copied and pasted from &lt;span style="font-size:10pt;line-height:115%;font-family:'Courier New';color:green;"&gt;&lt;a href="http://support.microsoft.com/?scid=306158"&gt;http://support.microsoft.com/?scid=306158&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;, and here it is:&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;using&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; System;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;using&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
System.Runtime.InteropServices;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;using&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
System.Security.Principal;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;namespace&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; MyDB.Tests&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;public&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;class&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;Impersonator&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; : &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;IDisposable&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;/* code taken from&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;http://support.microsoft.com/?scid=306158&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;*/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:green;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;public&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;const&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;int&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
LOGON32_LOGON_INTERACTIVE = 2;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;public&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;const&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;int&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
LOGON32_PROVIDER_DEFAULT = 0;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;WindowsImpersonationContext&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
impersonationContext;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;DllImport&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;(&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;"advapi32.dll"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;)]&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;public&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;static&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;extern&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;int&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
LogonUserA(&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;String&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; lpszUserName,&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;String&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
lpszDomain,&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;String&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
lpszPassword,&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;int&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
dwLogonType,&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;int&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
dwLogonProvider,&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;ref&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;IntPtr&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; phToken);&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;DllImport&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;(&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;"advapi32.dll"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;, CharSet = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;CharSet&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;.Auto, SetLastError = &lt;span style="color:blue;"&gt;true&lt;/span&gt;&lt;b&gt;)]&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;public&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;static&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;extern&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;int&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
DuplicateToken(&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;IntPtr&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; hToken,&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;int&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
impersonationLevel,&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;ref&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;IntPtr&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; hNewToken);&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;DllImport&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;(&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;"advapi32.dll"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;, CharSet = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;CharSet&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;.Auto, SetLastError = &lt;span style="color:blue;"&gt;true&lt;/span&gt;&lt;b&gt;)]&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;public&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;static&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;extern&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;bool&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
RevertToSelf();&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;DllImport&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;(&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;"kernel32.dll"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;, CharSet = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;CharSet&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;.Auto)]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;public&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;static&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;extern&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;bool&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
CloseHandle(&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;IntPtr&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; handle);&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;public&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
Impersonator(&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;string&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; user, &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;string&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; domain, &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;string&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; password)&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;if&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;(!ImpersonateValidUser(user,
domain, password))&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;throw&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;new&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;Exception&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;(&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;string&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;.Format(&lt;span&gt;@"Logon
failed for {0}\{1}"&lt;/span&gt;&lt;b&gt;, domain, user));&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;private&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;bool&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
ImpersonateValidUser(&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;String&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; userName, &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;String&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; domain, &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;String&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; password)&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;WindowsIdentity&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
tempWindowsIdentity;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;IntPtr&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; token = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;IntPtr&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;.Zero;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;IntPtr&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
tokenDuplicate = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;IntPtr&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;.Zero;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;if&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; (RevertToSelf())&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;if&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
(LogonUserA(userName, domain, password, LOGON32_LOGON_INTERACTIVE,&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;LOGON32_PROVIDER_DEFAULT, &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;ref&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; token) !=
0)&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;if&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
(DuplicateToken(token, 2, &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;ref&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; tokenDuplicate) != 0)&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;tempWindowsIdentity = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;new&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;WindowsIdentity&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;(tokenDuplicate);&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;impersonationContext =
tempWindowsIdentity.Impersonate();&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;if&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
(impersonationContext != &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;null&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;)&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;CloseHandle(token);&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;CloseHandle(tokenDuplicate);&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;return&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;true&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;if&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; (token != &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;IntPtr&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;.Zero)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;CloseHandle(token);&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;if&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
(tokenDuplicate != &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;IntPtr&lt;/span&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;.Zero)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;CloseHandle(tokenDuplicate);&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;return&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;false&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#region&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
IDisposable Members&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;public&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;void&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt; Dispose()&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;if&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;
(impersonationContext != &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;null&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;)&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;impersonationContext.Undo();&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:10pt;font-family:'Courier New';color:blue;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;#endregion&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:10pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;</description></item><item><title>Unit Testing Tips: Reproduce a Lock Timeout</title><link>http://sqlblog.com/blogs/alexander_kuznetsov/archive/2008/05/30/unit-testing-tips-reproduce-a-lock-timeout.aspx</link><pubDate>Fri, 30 May 2008 22:24:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:7086</guid><dc:creator>Alexander Kuznetsov</dc:creator><description>

&lt;p class="MsoNormal"&gt;Well, I have just finished a series of articles about unit testing
on simple-talk.com, and some techniques were not included, just to keep the
articles short. Still problems such as reproducing a lock timeout and unit testing
the retry after it (lock timeout) are interesting, at least to me, so I am
continuing.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;You will need the database StressTests, which can be
downloaded at the following URL:&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;line-height:115%;"&gt;&lt;a href="http://www.simple-talk.com/sql/t-sql-programming/close-these-loopholes---reproduce-database-errors/"&gt;http://www.simple-talk.com/sql/t-sql-programming/close-these-loopholes---reproduce-database-errors/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;You will also need the following stored procedure which logs
the timeout and retries at most five times:&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;CREATE&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;PROCEDURE&lt;/span&gt;
[Writers]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[UpdateUserWithRetry]&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;@UserID &lt;span style="color:blue;"&gt;INT&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;@FirstName &lt;span style="color:blue;"&gt;VARCHAR&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;8&lt;span style="color:gray;"&gt;),&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;@LastName &lt;span style="color:blue;"&gt;VARCHAR&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;8&lt;span style="color:gray;"&gt;),&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;@Position &lt;span style="color:blue;"&gt;VARCHAR&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;8&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;AS&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;SET&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt; &lt;span style="color:blue;"&gt;NOCOUNT&lt;/span&gt;
&lt;span style="color:blue;"&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;DECLARE&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt; @ret &lt;span style="color:blue;"&gt;INT&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; @succeeded &lt;span style="color:blue;"&gt;INT&lt;/span&gt;&lt;span style="color:gray;"&gt;,&lt;/span&gt; @attemptNumber &lt;span style="color:blue;"&gt;INT&lt;/span&gt;&lt;span style="color:gray;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;SELECT&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt; @ret &lt;span style="color:gray;"&gt;=&lt;/span&gt; 0&lt;span style="color:gray;"&gt;,&lt;/span&gt; @succeeded &lt;span style="color:gray;"&gt;=&lt;/span&gt; 0&lt;span style="color:gray;"&gt;,&lt;/span&gt; @attemptNumber &lt;span style="color:gray;"&gt;=&lt;/span&gt; 1&lt;span style="color:gray;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;WHILE&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;(&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;@succeeded &lt;span style="color:gray;"&gt;=&lt;/span&gt; 0 &lt;span style="color:gray;"&gt;AND&lt;/span&gt;
@attemptNumber &lt;span style="color:gray;"&gt;&amp;lt;&lt;/span&gt; 5&lt;span style="color:gray;"&gt;)&lt;/span&gt;
&lt;span style="color:blue;"&gt;BEGIN&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;SET&lt;/span&gt;
@attemptNumber &lt;span style="color:gray;"&gt;=&lt;/span&gt; @attemptNumber &lt;span style="color:gray;"&gt;+&lt;/span&gt; 1&lt;span style="color:gray;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;BEGIN&lt;/span&gt; &lt;span style="color:blue;"&gt;TRY&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;UPDATE&lt;/span&gt;
Data&lt;span style="color:gray;"&gt;.&lt;/span&gt;Users &lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;SET&lt;/span&gt; FirstName &lt;span style="color:gray;"&gt;=&lt;/span&gt; @FirstName&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;LastName &lt;span style="color:gray;"&gt;=&lt;/span&gt; @LastName&lt;span style="color:gray;"&gt;,&lt;/span&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;Position &lt;span style="color:gray;"&gt;=&lt;/span&gt; @Position&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;WHERE&lt;/span&gt; UserID &lt;span style="color:gray;"&gt;=&lt;/span&gt; @UserID&lt;span style="color:gray;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;SET&lt;/span&gt;
@succeeded &lt;span style="color:gray;"&gt;=&lt;/span&gt; 1&lt;span style="color:gray;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;END&lt;/span&gt; &lt;span style="color:blue;"&gt;TRY&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;BEGIN&lt;/span&gt; &lt;span style="color:blue;"&gt;CATCH&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;IF&lt;/span&gt;
&lt;span style="color:gray;"&gt;(&lt;/span&gt;XACT_STATE&lt;span style="color:gray;"&gt;())&lt;/span&gt; &lt;span style="color:gray;"&gt;=&lt;/span&gt; &lt;span style="color:gray;"&gt;-&lt;/span&gt;1&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;BEGIN&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;&lt;span style="color:blue;"&gt;ROLLBACK&lt;/span&gt; &lt;span style="color:blue;"&gt;TRANSACTION&lt;/span&gt;&lt;span style="color:gray;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;END&lt;/span&gt;&lt;span style="color:gray;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;INSERT&lt;/span&gt;
&lt;span style="color:blue;"&gt;INTO&lt;/span&gt; Data&lt;span style="color:gray;"&gt;.&lt;/span&gt;ErrorLog&lt;span style="color:gray;"&gt;(&lt;/span&gt;ERROR_PROCEDURE&lt;span style="color:gray;"&gt;,&lt;/span&gt;
ERROR_LINE&lt;span style="color:gray;"&gt;,&lt;/span&gt; ERROR_NUMBER&lt;span style="color:gray;"&gt;,&lt;/span&gt; ERROR_MESSAGE&lt;span style="color:gray;"&gt;,&lt;/span&gt; ERROR_TIME&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;SELECT&lt;/span&gt; ERROR_PROCEDURE&lt;span style="color:gray;"&gt;(),&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;ERROR_LINE&lt;span style="color:gray;"&gt;(),&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;ERROR_NUMBER&lt;span style="color:gray;"&gt;(),&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;ERROR_MESSAGE&lt;span style="color:gray;"&gt;(),&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color:fuchsia;"&gt;CURRENT_TIMESTAMP&lt;/span&gt;&lt;span style="color:gray;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;SET&lt;/span&gt;
@ret &lt;span style="color:gray;"&gt;=&lt;/span&gt; 1&lt;span style="color:gray;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:gray;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;END&lt;/span&gt; &lt;span style="color:blue;"&gt;CATCH&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;END&lt;/span&gt;&lt;/b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';color:blue;"&gt;RETURN&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-family:'Courier New';"&gt; @ret&lt;span style="color:gray;"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Also you will need the LockTimouter class which reproduces a
lock timeout inside your stored procedure: &lt;/p&gt;

&lt;p class="MsoListParagraphCxSpFirst" style="text-indent:-0.25in;"&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;·&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;- it opens another connection,&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle" style="text-indent:-0.25in;"&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;·&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;- &lt;/span&gt;begins a
transaction, &lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle" style="text-indent:-0.25in;"&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;·&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; - modifies the data from that connection, &lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle" style="text-indent:-0.25in;"&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;·&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; - then it attempts to modify the same data from
your stored procedure&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpLast" style="text-indent:-0.25in;"&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;·&lt;span style="font-family:'Times New Roman';font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; - releases the lock as soon as your error is
logged, so that your retry can succeed&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;public&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;class&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;LockTimeouter&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; : &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;IDisposable&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;private&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;readonly&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;SqlConnection&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; _anotherConnection;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;private&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;readonly&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;SqlCommand&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; _command;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;private&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;readonly&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;SqlCommand&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; _anotherCommand;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;private&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;readonly&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;IAsyncResult&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; _anotherCommandStarted;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;public&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;
LockTimeouter(&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;SqlConnection&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; connection, &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;string&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;
hookCommand)&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_command =
connection.CreateCommand();&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_command.CommandText = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;"SET LOCK_TIMEOUT 1;DELETE FROM Data.ErrorLog"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_command.CommandType = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;CommandType&lt;/span&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;.Text;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_command.ExecuteNonQuery();&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_anotherConnection = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;new&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;SqlConnection&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;(connection.ConnectionString + &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;";Asynchronous Processing=true"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;);&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_anotherConnection.Open();&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_anotherCommand = _anotherConnection.CreateCommand();&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_anotherCommand.CommandText = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;string&lt;/span&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;.Format(&lt;span&gt;"BEGIN TRANSACTION; {0};"&lt;/span&gt;&lt;b&gt;,
hookCommand);&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_anotherCommand.CommandType = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;CommandType&lt;/span&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;.Text;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_anotherCommand.ExecuteNonQuery();&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_anotherCommand.CommandText = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;"DECLARE @c INT;SET @c=0;WHILE @c=0 BEGIN SELECT @c=COUNT(*) FROM
Data.ErrorLog;END;COMMIT"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_anotherCommand.CommandType = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;CommandType&lt;/span&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;.Text;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_anotherCommandStarted =
_anotherCommand.BeginExecuteNonQuery();&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;public&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;void&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; Dispose()&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_command.CommandText = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;"IF @@TRANCOUNT&amp;gt;0 BEGIN ROLLBACK; END"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_command.ExecuteNonQuery();&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;_anotherCommand.EndExecuteNonQuery(_anotherCommandStarted);&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;_anotherCommand.CommandText =
_command.CommandText;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_anotherCommand.ExecuteNonQuery();&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;_anotherConnection.Close();&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;The unit test itself is quite simple, because most of the
work is wrapped in the LockTimouter class&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;[&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;Test&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;]&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;public&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;void&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;
LockTimeoutTest()&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;SqlCommand&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; command =
_connection.CreateCommand();&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;command.CommandText = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;"DELETE FROM Data.Users WHERE UserId = 12345"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;command.CommandType = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;CommandType&lt;/span&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;.Text;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;command.ExecuteNonQuery();&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;command.CommandText = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;"Writers.UpdateUserWithRetry"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;command.CommandType = &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;CommandType&lt;/span&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;.StoredProcedure;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;command.Parameters.AddWithValue(&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;"@UserId"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;, 12345);&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;command.Parameters.AddWithValue(&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;"@FirstName"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;, &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;"Josh"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;);&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;command.Parameters.AddWithValue(&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;"@LastName"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;, &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;"Olson"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;);&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;command.Parameters.AddWithValue(&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;"@Position"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;, &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;"QA"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;);&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;using&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; (&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;new&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;LockTimeouter&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;(_connection, &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;"INSERT INTO
Data.Users(UserID, FirstName, LastName, Position,
LotsOfComments)VALUES(12345,'Jill','Hansen','QA','')"&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;))&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;try&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;command.ExecuteNonQuery();&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;Console&lt;/span&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;.WriteLine(&lt;span&gt;"No exception
raised"&lt;/span&gt;&lt;b&gt;);&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;catch&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; (&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;Exception&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; e)&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;{&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;if&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;
(!e.ToString().Contains(&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;"Transaction count after
EXECUTE indicates "&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;))&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;Console&lt;/span&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;.WriteLine(e);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&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; &lt;/span&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:green;"&gt;//check if there
are updates in Data.Users, and if the error has been recorded&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;b&gt;&lt;span style="font-size:8pt;line-height:115%;font-family:'Courier New';"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;When the test is finished, you can verify that one error was
indeed recorded and that the modification finally completed:&lt;/p&gt;&lt;p class="MsoNormal"&gt;&amp;nbsp;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;SELECT&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; &lt;span style="color:gray;"&gt;*&lt;/span&gt; &lt;span style="color:blue;"&gt;FROM&lt;/span&gt; Data&lt;span style="color:gray;"&gt;.&lt;/span&gt;ErrorLog &lt;span style="color:blue;"&gt;ORDER&lt;/span&gt; &lt;span style="color:blue;"&gt;BY&lt;/span&gt; ERROR_TIME&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';color:blue;"&gt;SELECT&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt; &lt;span style="color:gray;"&gt;*&lt;/span&gt; &lt;span style="color:blue;"&gt;FROM&lt;/span&gt; Data&lt;span style="color:gray;"&gt;.&lt;/span&gt;Users&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:8pt;font-family:'Courier New';"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="font-size:8pt;line-height:115%;"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;</description></item></channel></rss>