﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#">
  <channel>
    <title>Bryan Reynolds</title>
    <description>Software, Business, Life . . .</description>
    <link>http://bryan.reynoldslive.com/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.Net Syndication Generator 1.0.0.0 (http://dotnetblogengine.net/)</generator>
    <language>en-GB</language>
    <blogChannel:blogRoll>http://bryan.reynoldslive.com/opml.axd</blogChannel:blogRoll>
    <blogChannel:blink>http://www.dotnetblogengine.net/syndication.axd</blogChannel:blink>
    <dc:creator>Bryan Reynolds</dc:creator>
    <dc:title>Bryan Reynolds</dc:title>
    <item>
      <title>NDepend and complex methods.</title>
      <description>&lt;p&gt;
First I want to say I am no expert on NDepend. I have just begun my journey. If you are unfamiliar with NDepend here is a description straight from there &lt;a href="http://www.ndepend.com/" target="_blank"&gt;website.&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&amp;quot;NDepend is a tool that simplifies managing a complex .NET code base. Architects and developers can analyze code structure, specify design rules, plan massive refactoring, do effective code reviews and master evolution by comparing different versions of the code. &amp;quot;&lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
This is no lie!&amp;nbsp; For those of you who are starting to analyze your code and are attempting to improve the overall architecture this product is a must have.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;h3&gt;Getting Started&lt;/h3&gt;
&lt;p&gt;
To get started its pretty straight forward.&amp;nbsp; You take your compiled assembly&amp;#39;s and point NDepend at them.&amp;nbsp; Here are instructions straight from the quick start tutorial.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
After unzipping the software into a directory of your choosing, there is no installation program, you follow these steps. 
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;Run VisualNDepend.exe.&amp;nbsp; There is no shortcut you will need to load it from where you unzipped it.&lt;/li&gt;
	&lt;li&gt;Select the option: Select assemblies to analyze. &lt;/li&gt;
	&lt;li&gt;Populate the data grid with your assemblies by using the browse button or by using drag&amp;amp;drop. &lt;/li&gt;
	&lt;li&gt;Click OK. (This will take a few minutes)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
The result will look something like this. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/NDependandcomplexmethods_938D/image_2.png"&gt;&lt;img style="border: 0px" src="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/NDependandcomplexmethods_938D/image_thumb.png" border="0" alt="image" width="598" height="483" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Here are a list of some &lt;strong&gt;short&lt;/strong&gt; beginning video tutorials to get you started.&amp;nbsp; I have to admit a prefer short videos and NDepend does not disappoint.&amp;nbsp; Everyone&amp;#39;s time is extremely valuable and getting to the heart of the matter, matters! 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://s3.amazonaws.com/NDependOnlineDemos/VisualNDependBasics_viewlet_swf.html" target="_blank"&gt;NDepend Basics&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://s3.amazonaws.com/NDependOnlineDemos/GettingStarted_viewlet_swf.html" target="_blank"&gt;Analyzing Assemblies&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://s3.amazonaws.com/NDependOnlineDemos/GettingStartedProject_viewlet_swf.html" target="_blank"&gt;Building a NDepend Project&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;h3&gt;Complex Methods&lt;/h3&gt;
&lt;p&gt;
It would take 1000 blog posts to go through how you can use this product.&amp;nbsp; Today I just wanted to show you how I used it to identify a function that was more complex than it needed to be.
&lt;/p&gt;
&lt;p&gt;
Below is a code snippet of a method of a class that manages Excel files.&amp;nbsp; It is designed to take a regular expression and search all sheets and all cells for a match.&amp;nbsp; Once the match is found the method return the associated cell.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;div&gt;
&lt;div style="font-size: 8pt; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Cell GetCellByRegEx(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; regularExpression)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   2:&lt;/span&gt;       {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;           Check.Require(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._xlsFile != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;           Check.Require(!&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;.IsNullOrEmpty(regularExpression));
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;           var colCount = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._xlsFile.ColCount;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;           var rowCount = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._xlsFile.RowCount;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;           var sheetcount = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._xlsFile.SheetCount;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (var s = 1; s &amp;lt; sheetcount; s++)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;           {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;               &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._xlsFile.ActiveSheet = s;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;               &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (var r = 1; r &amp;lt;= rowCount; r++)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;               {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;                   &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (var c = 1; c &amp;lt;= colCount; c++)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;                   {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;                       var v = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._xlsFile.GetCellValue(r, c);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;                       &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (v != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;                       {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;                           var regex = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Regex(
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;                               regularExpression,
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;                               RegexOptions.IgnoreCase);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;                           var matches = regex.Matches(v.ToString());
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  26:&lt;/span&gt;                           &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (matches.Count &amp;gt; 0)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  27:&lt;/span&gt;                           {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  28:&lt;/span&gt;                               var cell = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Cell { Row = r, Column = c, Value = v.ToString() };
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  29:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  30:&lt;/span&gt;                               &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; cell;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  31:&lt;/span&gt;                           }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  32:&lt;/span&gt;                       }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  33:&lt;/span&gt;                   }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  34:&lt;/span&gt;               }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  35:&lt;/span&gt;           }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  36:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  37:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  38:&lt;/span&gt;       }
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
There is a section for code quality query&amp;#39;s within NDepend.&amp;nbsp; It is designed to run through your code and analyze how it is constructed based on query&amp;#39;s made by the developers of the product.&amp;nbsp; These rules of course are based on what they believe is a best practice.&amp;nbsp; Users of the product will end using there own skill to determine what is right or wrong.&amp;nbsp; The goods news is that you can change these CQL queries at any time.&amp;nbsp; Below is a screen capture of what a CQL looks like.&amp;nbsp; 
&lt;/div&gt;
&lt;div&gt;
I have highlighted below a CQL result that describes &lt;strong&gt;&amp;quot;Methods too complex&amp;quot;.&amp;nbsp; &lt;/strong&gt;There are 4 methods in my project that have been deemed too complex.
&lt;/div&gt;
&lt;div&gt;
&lt;a href="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/NDependandcomplexmethods_938D/image_10.png"&gt;&lt;img style="border: 0px" src="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/NDependandcomplexmethods_938D/image_thumb_4.png" border="0" alt="image" width="310" height="168" /&gt;&lt;/a&gt; 
&lt;/div&gt;
&lt;div&gt;
&lt;strong&gt;The above method &amp;quot;GetCellByRegEx&amp;quot; has a IL Nesting depth of 5.&amp;nbsp; When you select a query result below you will see a listing of the methods that make up that result.&amp;nbsp; &lt;/strong&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a href="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/NDependandcomplexmethods_938D/image_6.png"&gt;&lt;img style="border: 0px" src="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/NDependandcomplexmethods_938D/image_thumb_2.png" border="0" alt="image" width="1078" height="434" /&gt;&lt;/a&gt; 
&lt;/div&gt;
&lt;div&gt;
&lt;strong&gt;On the bottom right hand side of the NDepend screen shows the results of the CQL Code Quality queries run against your code assembly.&lt;/strong&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a href="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/NDependandcomplexmethods_938D/image_8.png"&gt;&lt;img style="border: 0px" src="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/NDependandcomplexmethods_938D/image_thumb_3.png" border="0" alt="image" width="1077" height="433" /&gt;&lt;/a&gt; 
&lt;/div&gt;
&lt;div&gt;
&lt;strong&gt;Shows when you select edit on the &amp;quot;Methods too complex&amp;quot; CQL item.&lt;/strong&gt;
&lt;/div&gt;
&lt;h3&gt;Solving the Problem&lt;/h3&gt;
&lt;p&gt;
Now that you have identified that you have a method that is too complex what do you do.&amp;nbsp; Just fix it right!&amp;nbsp; Easier said than done is most cases.&amp;nbsp; There is some good news though. Most of the CQL items I have seen provide you with some assistance right in the query edit screen.&amp;nbsp; Looking closely CQL Query Edit screen you will see a link to help on this subject.
&lt;/p&gt;
&lt;p&gt;
Here is a snippet from NDepend that covers what this query is suppose to track and what they recommend.
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;strong&gt;&lt;a name="ILNestingDepth" title="ILNestingDepth"&gt;&lt;/a&gt;&lt;em&gt;IL Nesting Depth:&lt;/em&gt;&lt;/strong&gt;&lt;em&gt; The metric Nesting Depth for a method is the maximum number of encapsulated scopes inside the body of the method. The metric IL Nesting Depth is computed from the IL code. Values computed are very similar to what we would expect by computing them from the C# or VB.NET source code. &lt;br /&gt;
	When you have a testing condition with N conditions, such as if( i &amp;gt; 9 &amp;amp;&amp;amp; i &amp;lt; 12) then it is considered as N scopes because it is possible to decompose such conditions into N atomic conditions.&lt;br /&gt;
	When a method has a large number of case statements corresponding to a switch, the C# and VB.NET compiler generally produce optimizations while generating the IL. In such case, the IL Nesting Depth corresponding value might be slightly higher to what you would expect. &lt;/em&gt;
	&lt;/p&gt;
	&lt;em&gt;
	&lt;p&gt;
	&lt;br /&gt;
	&lt;u&gt;Recommendations&lt;/u&gt;: Methods where ILNestingDepth is higher than 4 are hard to understand and maintain. Methods where ILNestingDepth is higher than 8 are extremely complex and should be split in smaller methods (except if they are automatically generated by a tool). 
	&lt;/p&gt;
	&lt;p&gt;
	&lt;br /&gt;
	&lt;u&gt;Related Link:&lt;/u&gt;: &lt;br /&gt;
	&lt;a href="http://codebetter.com/blogs/patricksmacchia/archive/2008/03/07/a-simple-trick-to-code-better-and-to-increase-testability.aspx"&gt;&lt;em&gt;A simple trick to code better and to increase testability&lt;/em&gt;&lt;/a&gt;
	&lt;/p&gt;
	&lt;/em&gt;
&lt;/blockquote&gt;
&lt;div&gt;
After following the link and using there simple trick to adjust my code as follows the method was no longer deemed complex.
&lt;/div&gt;
&lt;div&gt;
&lt;div style="font-size: 8pt; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Cell GetCellByRegEx(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; regularExpression)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   2:&lt;/span&gt;       {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;           Check.Require(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._xlsFile != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;           Check.Require(!&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;.IsNullOrEmpty(regularExpression));
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;           var colCount = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._xlsFile.ColCount;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;           var rowCount = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._xlsFile.RowCount;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;           var sheetcount = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._xlsFile.SheetCount;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (var s = 1; s &amp;lt; sheetcount; s++)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;           {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;               &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._xlsFile.ActiveSheet = s;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;               &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (var r = 1; r &amp;lt;= rowCount; r++)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;               {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;                   &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (var c = 1; c &amp;lt;= colCount; c++)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;                   {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;                       var v = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._xlsFile.GetCellValue(r, c);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;                       &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (v == &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;                       {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;                           &lt;span style="color: #0000ff"&gt;continue&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;                       }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;                       var regex = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Regex(
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;                           regularExpression,
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;                           RegexOptions.IgnoreCase);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  26:&lt;/span&gt;                       var matches = regex.Matches(v.ToString());
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  27:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  28:&lt;/span&gt;                       &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (matches.Count &amp;lt;= 0)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  29:&lt;/span&gt;                       {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  30:&lt;/span&gt;                           &lt;span style="color: #0000ff"&gt;continue&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  31:&lt;/span&gt;                       }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  32:&lt;/span&gt;                       var cell = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Cell { Row = r, Column = c, Value = v.ToString() };
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  33:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  34:&lt;/span&gt;                       &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; cell;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  35:&lt;/span&gt;                   }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  36:&lt;/span&gt;               }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  37:&lt;/span&gt;           }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  38:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  39:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  40:&lt;/span&gt;       }
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;
I have been developing software for 20+ years and the tools just keep getting better and better.&amp;nbsp; If you have the time and the inclination to improve your existing architecture you owe it to yourself to take a look at this product.
&lt;/p&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://bryan.reynoldslive.com/post/NDepend-and-complex-methods.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://bryan.reynoldslive.com/post/NDepend-and-complex-methods.aspx&amp;amp;title=NDepend and complex methods." target="_blank" title="DZone It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://bryan.reynoldslive.com/post/NDepend-and-complex-methods.aspx" target="_blank" title="StumbleUpon"&gt;&lt;img src="/themes/socialbookmarks/Circle/stumbleupon_24.png" style="border: 0;" alt="StumbleUpon" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://technorati.com/ping?url=http://bryan.reynoldslive.com/" target="_blank" title="Technorati"&gt;&lt;img src="/themes/socialbookmarks/Circle/technorati_24.png" style="border: 0;" alt="Technorati" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://reddit.com/submit?url=http://bryan.reynoldslive.com/post/NDepend-and-complex-methods.aspx&amp;amp;title=NDepend and complex methods." target="_blank" title="Reddit"&gt;&lt;img src="/themes/socialbookmarks/Circle/reddit_24.png" style="border: 0;" alt="Reddit" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://bryan.reynoldslive.com/post/NDepend-and-complex-methods.aspx&amp;amp;title=NDepend and complex methods." target="_blank" title="Del.icio.us"&gt;&lt;img src="/themes/socialbookmarks/Circle/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http://bryan.reynoldslive.com/post/NDepend-and-complex-methods.aspx" target="_blank"title="NewsVine"&gt;&lt;img src="/themes/socialbookmarks/Circle/newsvine_24.png" style="border: 0;" alt="NewsVine" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://furl.net" target="_blank" title="Furl"&gt;&lt;img src="/themes/socialbookmarks/Circle/furl_24.png" style="border: 0;" alt="Furl" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://blinklist.com/submit/" target="_blank" title="BlinkList"&gt;&lt;img src="/themes/socialbookmarks/Circle/blinklist_24.png" style="border: 0;" alt="BlinkList" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://bryan.reynoldslive.com/post/NDepend-and-complex-methods.aspx</link>
      <author>Bryan</author>
      <comments>http://bryan.reynoldslive.com/post/NDepend-and-complex-methods.aspx#comment</comments>
      <guid>http://bryan.reynoldslive.com/post.aspx?id=3f1af241-cba3-4573-bc8b-ff80bf5a55a6</guid>
      <pubDate>Sat, 09 Aug 2008 04:29:00 -0700</pubDate>
      <category>Agile</category>
      <category>C#</category>
      <dc:publisher>Bryan</dc:publisher>
      <pingback:server>http://bryan.reynoldslive.com/pingback.axd</pingback:server>
      <pingback:target>http://bryan.reynoldslive.com/post.aspx?id=3f1af241-cba3-4573-bc8b-ff80bf5a55a6</pingback:target>
      <slash:comments>131</slash:comments>
      <trackback:ping>http://bryan.reynoldslive.com/trackback.axd?id=3f1af241-cba3-4573-bc8b-ff80bf5a55a6</trackback:ping>
      <wfw:comment>http://bryan.reynoldslive.com/post/NDepend-and-complex-methods.aspx#comment</wfw:comment>
      <wfw:commentRss>http://bryan.reynoldslive.com/syndication.axd?post=3f1af241-cba3-4573-bc8b-ff80bf5a55a6</wfw:commentRss>
    </item>
    <item>
      <title>Latitude, Longitude, Bearing, Cardinal Direction, Distance, and C#</title>
      <description>&lt;p&gt;
If you are looking for some examples of using latitude and longitude to get bearing and distance information with C# you have come to the right place.&amp;nbsp; If you want to get straight to the code and the download &lt;a href="http://bryan.reynoldslive.com/file.axd?file=Maps.zip" target="_blank"&gt;click here&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
I usually try to blog about things that I am working on that also could be interesting to other developers.&amp;nbsp; Recently I have been working on an application that stores information about commercial buildings and there competition.&amp;nbsp; Each location has a latitude and longitude which is used to display there data on a map. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
To visualize the end result I have added a picture below of an application that is using using ASP.Net, Virtual Earth, while calculating bearing and distance.&amp;nbsp; This was inspire by &lt;a href="http://dotnetslackers.com/columns/ajax/ASPNETAJAXMeetsVirtualEarthPartOne.aspx#515"&gt;Alessandro Gallo article&lt;/a&gt;.&amp;nbsp; If you are interesting in building a Virtual Earth mash-up using ASP.NET this is a must read article.&amp;nbsp; When the user puts there mouse over a location a pop-up with the distance and bearing are shown.&amp;nbsp; The distance is in miles while the bearing is represented by its &lt;a href="http://en.wikipedia.org/wiki/Cardinal_directions" target="_blank"&gt;cardinal value&lt;/a&gt; or compass direction.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/LatitudeLongitudeBearingCardinalDirectio_C689/MapVirtualEarth_2.jpg"&gt;&lt;img style="border: 0px" src="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/LatitudeLongitudeBearingCardinalDirectio_C689/MapVirtualEarth_thumb.jpg" border="0" alt="MapVirtualEarth" width="569" height="597" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;h3&gt;Calculating Distance between two points of Latitude and Longitude&lt;/h3&gt;
&lt;p&gt;
The function below uses the &lt;a href="http://en.wikipedia.org/wiki/Haversine_formula" target="_blank"&gt;Haversine formula&lt;/a&gt; to calculate the distance between the to coordinates and a enumeration to request the type of unit of length.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;div&gt;
&lt;div style="line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// Calculates the distance between two points of latitude and longitude.&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// Great Link - http://www.movable-type.co.uk/scripts/latlong.html&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;param name=&amp;quot;coordinate1&amp;quot;&amp;gt;First coordinate.&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   6:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;param name=&amp;quot;coordinate2&amp;quot;&amp;gt;Second coordinate.&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   7:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;param name=&amp;quot;unitsOfLength&amp;quot;&amp;gt;Sets the return value unit of length.&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   8:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; Double Distance(Coordinate coordinate1, Coordinate coordinate2, UnitsOfLength unitsOfLength)
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   9:&lt;/span&gt; {
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;     var theta = coordinate1.Longitude - coordinate2.Longitude;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;     var distance = Math.Sin(coordinate1.Latitude.ToRadian()) * Math.Sin(coordinate2.Latitude.ToRadian()) +
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;                    Math.Cos(coordinate1.Latitude.ToRadian()) * Math.Cos(coordinate2.Latitude.ToRadian()) *
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;                    Math.Cos(theta.ToRadian());
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;     distance = Math.Acos(distance);
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;     distance = distance.ToDegree();
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;     distance = distance * 60 * 1.1515;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (unitsOfLength == UnitsOfLength.Kilometer)
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;         distance = distance * _MilesToKilometers;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (unitsOfLength == UnitsOfLength.NauticalMiles)
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;         distance = distance * _MilesToNautical;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; (distance);
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  26:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  27:&lt;/span&gt; }
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
Originally the function was made with 4 double values representing the latitude and longitudes for each coordinate.&amp;nbsp; While unit testing I tested incorrect coordinates. I found myself adding ArgumentOutOfRangeExceptions directly into the distance function above.&amp;nbsp; I did not like the feeling of this so I encapsulated the throwing of the exceptions in a coordinate class.&amp;nbsp; This reduced the code for the distance function and made the code clearer. 
&lt;/div&gt;
&lt;div&gt;
&lt;div style="line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Coordinate
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   2:&lt;/span&gt;    {
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;        &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;double&lt;/span&gt; latitude, longitude;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;        &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;        &lt;span style="color: #008000"&gt;/// Latitude in degrees. -90 to 90&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;        &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Double Latitude
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;        {
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;            get { &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; latitude; }
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;            set
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;            {
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;                &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;value&lt;/span&gt; &amp;gt; 90) &lt;span style="color: #0000ff"&gt;throw&lt;/span&gt; &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ArgumentOutOfRangeException(&lt;span style="color: #006080"&gt;&amp;quot;value&amp;quot;&lt;/span&gt;, &lt;span style="color: #006080"&gt;&amp;quot;Latitude value cannot be greater than 90.&amp;quot;&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;                &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;value&lt;/span&gt; &amp;lt; -90) &lt;span style="color: #0000ff"&gt;throw&lt;/span&gt; &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ArgumentOutOfRangeException(&lt;span style="color: #006080"&gt;&amp;quot;value&amp;quot;&lt;/span&gt;, &lt;span style="color: #006080"&gt;&amp;quot;Latitude value cannot be less than -90.&amp;quot;&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;                latitude = &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;            }
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;        }
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;        &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;        &lt;span style="color: #008000"&gt;/// Longitude in degree. -180 to 180&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;        &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Double Longitude
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;        {
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;            get { &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; longitude; }
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;            set
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  26:&lt;/span&gt;            {
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  27:&lt;/span&gt;                &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;value&lt;/span&gt; &amp;gt; 180) &lt;span style="color: #0000ff"&gt;throw&lt;/span&gt; &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ArgumentOutOfRangeException(&lt;span style="color: #006080"&gt;&amp;quot;value&amp;quot;&lt;/span&gt;, &lt;span style="color: #006080"&gt;&amp;quot;Longitude value cannot be greater than 180.&amp;quot;&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  28:&lt;/span&gt;                &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;value&lt;/span&gt; &amp;lt; -180) &lt;span style="color: #0000ff"&gt;throw&lt;/span&gt; &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ArgumentOutOfRangeException(&lt;span style="color: #006080"&gt;&amp;quot;value&amp;quot;&lt;/span&gt;, &lt;span style="color: #006080"&gt;&amp;quot;Longitude value cannot be less than -180.&amp;quot;&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  29:&lt;/span&gt;                longitude = &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  30:&lt;/span&gt;            }
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  31:&lt;/span&gt;        }
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  32:&lt;/span&gt;    }
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Here are some of the unit tests that for the coordinate class.&amp;nbsp; 
&lt;/p&gt;
&lt;div&gt;
&lt;div style="line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; [Test, ExpectedException(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(ArgumentOutOfRangeException))]
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   2:&lt;/span&gt;      &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; CoordinateLatitudeGreater90() { var coordinate = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Coordinate() { Latitude = 100, Longitude = -90 }; }
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;      [Test, ExpectedException(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(ArgumentOutOfRangeException))]
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;      &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; CoordinateLatitudeLessN90() { var coordinate = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Coordinate() { Latitude = -91, Longitude = -90 }; }
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;      [Test, ExpectedException(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(ArgumentOutOfRangeException))]
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;      &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; CoordinateLongitudeGreater180() { var coordinate = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Coordinate() { Latitude = 90, Longitude = 190 }; }
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;      [Test, ExpectedException(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(ArgumentOutOfRangeException))]
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;      &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; CoordinateLongitudeLessN180() { var coordinate = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Coordinate() { Latitude = 90, Longitude = -190 }; }
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
Here is an example usage of the distance function. 
&lt;/div&gt;
&lt;div&gt;
&lt;div style="line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; var distance = Helper.Distance(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Coordinate() { Latitude = 45, Longitude = 0 },
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   2:&lt;/span&gt;                                &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Coordinate() { Latitude = 0, Longitude = 45 }, UnitsOfLength.NauticalMiles);
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; Assert.AreEqual(3599.8653599999993d, distance, &lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;);
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Calculating Bearing and Cardinal Direction&lt;/h3&gt;
&lt;p&gt;
First, I have to give thanks to wikipedia for explaining what a cardinal point was. I never really thought about it until I thought about writing this article.&amp;nbsp; So for all of you who don&amp;#39;t already know the location on your compass that say, &amp;quot;N,S,E,W&amp;quot; are called &lt;a href="http://en.wikipedia.org/wiki/Cardinal_directions" target="_blank"&gt;cardinal points&lt;/a&gt;. I am not generally one for being a stickler for using the correct nomenclature, but since I went and looked it up,&amp;nbsp; you can benefit from it. 
&lt;/p&gt;
&lt;p&gt;
First things first, we need to create a function that takes two coordinates that returns a direction in degrees.&amp;nbsp; Here is where my decision to encapsulate the latitude and longitude values paid some dividends.&amp;nbsp; Now the code will check the latitude and longitude values before it evaluates this function. 
&lt;/p&gt;
&lt;div&gt;
&lt;div style="line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   2:&lt;/span&gt;       &lt;span style="color: #008000"&gt;/// Accepts two coordinates in degrees.&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;       &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;       &lt;span style="color: #008000"&gt;/// &amp;lt;returns&amp;gt;A double value in degrees.  From 0 to 360.&amp;lt;/returns&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;       &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; Double Bearing(Coordinate coordinate1, Coordinate coordinate2)
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;       {
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;           var latitude1 = coordinate1.Latitude.ToRadian();
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;           var latitude2 = coordinate2.Latitude.ToRadian();
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;           var longitudeDifference = (coordinate2.Longitude - coordinate1.Longitude).ToRadian();
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;           var y = Math.Sin(longitudeDifference) * Math.Cos(latitude2);
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;           var x = Math.Cos(latitude1) * Math.Sin(latitude2) -
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;                   Math.Sin(latitude1) * Math.Cos(latitude2) * Math.Cos(longitudeDifference);
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;           &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; (Math.Atan2(y, x).ToDegree() + 360) % 360;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;       }
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Now that we have a function that will return the bearing in degrees we need to convert those degrees to there cardinal value. 
&lt;/p&gt;
&lt;p&gt;
An enumeration to store the cardinal points. 
&lt;/p&gt;
&lt;div&gt;
&lt;div style="line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;enum&lt;/span&gt; CardinalPoints { N, E, W, S, NE, NW, SE, SW }
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
A class to store the ranges used to evaluated the cardinal points. 
&lt;/div&gt;
&lt;div&gt;
&lt;div style="line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// Class is used in a calculation to determin cardinal point enumeration values from degrees.&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;struct&lt;/span&gt; CardinalRanges
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; {
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; CardinalPoints CardinalPoint;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// Low range value associated with the cardinal point.&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Double LowRange;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// High range value associated with the cardinal point.&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; Double HighRange;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  15:&lt;/span&gt; }
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
The function to evaluate and return the cardinal direction. 
&lt;/div&gt;
&lt;div&gt;
&lt;div style="line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   2:&lt;/span&gt;        &lt;span style="color: #008000"&gt;/// Method extension for Doubles. Converts a degree to a cardinal point enumeration.&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;        &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;        &lt;span style="color: #008000"&gt;/// &amp;lt;returns&amp;gt;Returns a cardinal point enumeration representing a compass direction.&amp;lt;/returns&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; CardinalPoints ToCardinalMark(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt; Double degree)
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;        {
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;            var CardinalRanges = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;CardinalRanges&amp;gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;                       {
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;                         &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CardinalRanges {CardinalPoint = CardinalPoints.N, LowRange = 0, HighRange = 22.5},
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;                         &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CardinalRanges {CardinalPoint = CardinalPoints.NE, LowRange = 22.5, HighRange = 67.5},
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;                         &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CardinalRanges {CardinalPoint = CardinalPoints.E, LowRange = 67.5, HighRange = 112.5},
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;                         &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CardinalRanges {CardinalPoint = CardinalPoints.SE, LowRange = 112.5, HighRange = 157.5},
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;                         &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CardinalRanges {CardinalPoint = CardinalPoints.S, LowRange = 157.5, HighRange = 202.5},
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;                         &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CardinalRanges {CardinalPoint = CardinalPoints.SW, LowRange = 202.5, HighRange = 247.5},
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;                         &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CardinalRanges {CardinalPoint = CardinalPoints.W, LowRange = 247.5, HighRange = 292.5},
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;                         &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CardinalRanges {CardinalPoint = CardinalPoints.NW, LowRange = 292.5, HighRange = 337.5},
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;                         &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CardinalRanges {CardinalPoint = CardinalPoints.N, LowRange = 337.5, HighRange = 360.1}
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;                       };
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (!(degree &amp;gt;= 0 &amp;amp;&amp;amp; degree &amp;lt;= 360))
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;                &lt;span style="color: #0000ff"&gt;throw&lt;/span&gt; &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ArgumentOutOfRangeException(&lt;span style="color: #006080"&gt;&amp;quot;degree&amp;quot;&lt;/span&gt;,
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;                                                      &lt;span style="color: #006080"&gt;&amp;quot;Degree value must be greater than or equal to 0 and less than or equal to 360.&amp;quot;&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  26:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  27:&lt;/span&gt;            &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; CardinalRanges.Find(p =&amp;gt; (degree &amp;gt;= p.LowRange &amp;amp;&amp;amp; degree &amp;lt; p.HighRange)).CardinalPoint;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  28:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  29:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  30:&lt;/span&gt;        }
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
It seems like there could be a better way to check the value ranges but I could not think of one.&amp;nbsp; One thought was to use a simple array of values, but I concluded clearer larger code was better for long term readability. 
&lt;/div&gt;
&lt;h3&gt;Unit tests&lt;/h3&gt;
&lt;div&gt;
Some basic unit tests to cover the code. 
&lt;/div&gt;
&lt;div&gt;
&lt;div style="line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   2:&lt;/span&gt;    &lt;span style="color: #008000"&gt;/// Summary description for UnitTest1&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;    &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;    [TestFixture]
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Maps
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;    {
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;        [Test]
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; DistanceSamePoint0()
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;        {
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;            var distance = Helper.Distance(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Coordinate() { Latitude = 90, Longitude = -90 },
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;                                           &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Coordinate() { Latitude = 90, Longitude = -90 }, UnitsOfLength.Mile);
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;            Assert.AreEqual(0, distance, &lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;        }
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;        [Test]
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; DistanceSampleDataNauticalMiles()
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;        {
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;            var distance = Helper.Distance(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Coordinate() { Latitude = 45, Longitude = 0 },
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;                                           &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Coordinate() { Latitude = 0, Longitude = 45 }, UnitsOfLength.NauticalMiles);
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;            Assert.AreEqual(3599.8653599999993d, distance, &lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;        }
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  26:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  27:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  28:&lt;/span&gt;        [Test]
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  29:&lt;/span&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; DistanceSampleDataMiles()
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  30:&lt;/span&gt;        {
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  31:&lt;/span&gt;            var distance = Helper.Distance(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Coordinate() { Latitude = 45, Longitude = 0 },
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  32:&lt;/span&gt;                                           &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Coordinate() { Latitude = 0, Longitude = 45 }, UnitsOfLength.Mile);
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  33:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  34:&lt;/span&gt;            Assert.AreEqual(4145.3999999999996d, distance, &lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  35:&lt;/span&gt;        }
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  36:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  37:&lt;/span&gt;        [Test]
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  38:&lt;/span&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; DistanceSampleDataKilometer()
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  39:&lt;/span&gt;        {
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  40:&lt;/span&gt;            var distance = Helper.Distance(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Coordinate() { Latitude = 45, Longitude = 0 },
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  41:&lt;/span&gt;                                           &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Coordinate() { Latitude = 0, Longitude = 45 }, UnitsOfLength.Kilometer);
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  42:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  43:&lt;/span&gt;            Assert.AreEqual(6671.3746175999995d, distance, &lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  44:&lt;/span&gt;        }
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  45:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  46:&lt;/span&gt;        [Test]
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  47:&lt;/span&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; BearingsTests()
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  48:&lt;/span&gt;        {
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  49:&lt;/span&gt;            var bearing = Helper.Bearing(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Coordinate() { Latitude = 45, Longitude = 1 },
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  50:&lt;/span&gt;                                         &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Coordinate() { Latitude = 45, Longitude = 0 });
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  51:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  52:&lt;/span&gt;            Assert.AreEqual(270.35355787806577d, bearing, &lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  53:&lt;/span&gt;            Assert.AreEqual(CardinalPoints.W, bearing.ToCardinalMark());
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  54:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  55:&lt;/span&gt;        }
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  56:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  57:&lt;/span&gt;        [Test]
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  58:&lt;/span&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; CardinalMarkValues()
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  59:&lt;/span&gt;        {
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  60:&lt;/span&gt;            Assert.AreEqual(CardinalPoints.N, 2D.ToCardinalMark());
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  61:&lt;/span&gt;            Assert.AreEqual(CardinalPoints.NE, 46D.ToCardinalMark());
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  62:&lt;/span&gt;            Assert.AreEqual(CardinalPoints.SE, 120D.ToCardinalMark());
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  63:&lt;/span&gt;            Assert.AreEqual(CardinalPoints.S, 170D.ToCardinalMark());
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  64:&lt;/span&gt;            Assert.AreEqual(CardinalPoints.SW, 220D.ToCardinalMark());
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  65:&lt;/span&gt;            Assert.AreEqual(CardinalPoints.W, 273D.ToCardinalMark());
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  66:&lt;/span&gt;            Assert.AreEqual(CardinalPoints.NW, 320D.ToCardinalMark());
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  67:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  68:&lt;/span&gt;        }
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  69:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  70:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  71:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  72:&lt;/span&gt;        [Test, ExpectedException(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(ArgumentOutOfRangeException))]
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  73:&lt;/span&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; ToCardinalMarkOutOfRange() { 390D.ToCardinalMark(); }
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  74:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  75:&lt;/span&gt;        [Test, ExpectedException(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(ArgumentOutOfRangeException))]
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  76:&lt;/span&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; CoordinateLatitudeGreater90() { var coordinate = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Coordinate() { Latitude = 100, Longitude = -90 }; }
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  77:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  78:&lt;/span&gt;        [Test, ExpectedException(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(ArgumentOutOfRangeException))]
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  79:&lt;/span&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; CoordinateLatitudeLessN90() { var coordinate = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Coordinate() { Latitude = -91, Longitude = -90 }; }
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  80:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  81:&lt;/span&gt;        [Test, ExpectedException(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(ArgumentOutOfRangeException))]
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  82:&lt;/span&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; CoordinateLongitudeGreater180() { var coordinate = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Coordinate() { Latitude = 90, Longitude = 190 }; }
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  83:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  84:&lt;/span&gt;        [Test, ExpectedException(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(ArgumentOutOfRangeException))]
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  85:&lt;/span&gt;        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; CoordinateLongitudeLessN180() { var coordinate = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Coordinate() { Latitude = 90, Longitude = -190 }; }
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  86:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  87:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  88:&lt;/span&gt;    }
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3&gt;Summary&lt;/h3&gt;
&lt;p&gt;
Hope this helps someone out there.&amp;nbsp; Let me know if there is anything I left out. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.linkedin.com/in/bryanreynolds" target="_blank"&gt;Bryan Reynolds&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.BayTechConsulting.com"&gt;C# Developer&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://bryan.reynoldslive.com/post/Latitude2c-Longitude2c-Bearing2c-Cardinal-Direction2c-Distance2c-and-C.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://bryan.reynoldslive.com/post/Latitude2c-Longitude2c-Bearing2c-Cardinal-Direction2c-Distance2c-and-C.aspx&amp;amp;title=Latitude, Longitude, Bearing, Cardinal Direction, Distance, and C#" target="_blank" title="DZone It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://bryan.reynoldslive.com/post/Latitude2c-Longitude2c-Bearing2c-Cardinal-Direction2c-Distance2c-and-C.aspx" target="_blank" title="StumbleUpon"&gt;&lt;img src="/themes/socialbookmarks/Circle/stumbleupon_24.png" style="border: 0;" alt="StumbleUpon" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://technorati.com/ping?url=http://bryan.reynoldslive.com/" target="_blank" title="Technorati"&gt;&lt;img src="/themes/socialbookmarks/Circle/technorati_24.png" style="border: 0;" alt="Technorati" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://reddit.com/submit?url=http://bryan.reynoldslive.com/post/Latitude2c-Longitude2c-Bearing2c-Cardinal-Direction2c-Distance2c-and-C.aspx&amp;amp;title=Latitude, Longitude, Bearing, Cardinal Direction, Distance, and C#" target="_blank" title="Reddit"&gt;&lt;img src="/themes/socialbookmarks/Circle/reddit_24.png" style="border: 0;" alt="Reddit" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://bryan.reynoldslive.com/post/Latitude2c-Longitude2c-Bearing2c-Cardinal-Direction2c-Distance2c-and-C.aspx&amp;amp;title=Latitude, Longitude, Bearing, Cardinal Direction, Distance, and C#" target="_blank" title="Del.icio.us"&gt;&lt;img src="/themes/socialbookmarks/Circle/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http://bryan.reynoldslive.com/post/Latitude2c-Longitude2c-Bearing2c-Cardinal-Direction2c-Distance2c-and-C.aspx" target="_blank"title="NewsVine"&gt;&lt;img src="/themes/socialbookmarks/Circle/newsvine_24.png" style="border: 0;" alt="NewsVine" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://furl.net" target="_blank" title="Furl"&gt;&lt;img src="/themes/socialbookmarks/Circle/furl_24.png" style="border: 0;" alt="Furl" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://blinklist.com/submit/" target="_blank" title="BlinkList"&gt;&lt;img src="/themes/socialbookmarks/Circle/blinklist_24.png" style="border: 0;" alt="BlinkList" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://bryan.reynoldslive.com/post/Latitude2c-Longitude2c-Bearing2c-Cardinal-Direction2c-Distance2c-and-C.aspx</link>
      <author>Bryan</author>
      <comments>http://bryan.reynoldslive.com/post/Latitude2c-Longitude2c-Bearing2c-Cardinal-Direction2c-Distance2c-and-C.aspx#comment</comments>
      <guid>http://bryan.reynoldslive.com/post.aspx?id=6271f6f8-6f4e-4ad5-a374-1a3afff9aacf</guid>
      <pubDate>Mon, 02 Jun 2008 00:01:00 -0700</pubDate>
      <category>ASP.NET</category>
      <category>Bearing</category>
      <category>C#</category>
      <category>Distance</category>
      <dc:publisher>Bryan</dc:publisher>
      <pingback:server>http://bryan.reynoldslive.com/pingback.axd</pingback:server>
      <pingback:target>http://bryan.reynoldslive.com/post.aspx?id=6271f6f8-6f4e-4ad5-a374-1a3afff9aacf</pingback:target>
      <slash:comments>397</slash:comments>
      <trackback:ping>http://bryan.reynoldslive.com/trackback.axd?id=6271f6f8-6f4e-4ad5-a374-1a3afff9aacf</trackback:ping>
      <wfw:comment>http://bryan.reynoldslive.com/post/Latitude2c-Longitude2c-Bearing2c-Cardinal-Direction2c-Distance2c-and-C.aspx#comment</wfw:comment>
      <wfw:commentRss>http://bryan.reynoldslive.com/syndication.axd?post=6271f6f8-6f4e-4ad5-a374-1a3afff9aacf</wfw:commentRss>
    </item>
    <item>
      <title>C# Wrapping text using split and List&amp;lt;&amp;gt;</title>
      <description>&lt;p&gt;
Below is a useful snippet of code to wrap text into a list of strings.&amp;nbsp; Download &lt;a rel="enclosure" href="http://bryan.reynoldslive.com/file.axd?file=Wrap.zip"&gt;Click here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Example&lt;/strong&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&amp;quot;The quick brown fox jumps over the lazy dog&amp;quot;&lt;/em&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Lets say you need to fit this into a multi-line text box with a width or around 12 characters and an unlimited height. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
The function will return a list of strings without splitting the individual words. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;div&gt;
&lt;div style="font-size: 8pt; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; var result = Wrap(&lt;span style="color: #006080"&gt;&amp;quot;The quick brown fox jumps over the lazy dog&amp;quot;&lt;/span&gt;, 12);
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
result [0] = &amp;quot;The quick&amp;quot; 
&lt;/p&gt;
&lt;p&gt;
result [1] = &amp;quot;brown fox &amp;quot; 
&lt;/p&gt;
&lt;p&gt;
result [2] = &amp;quot;jumps over&amp;quot; 
&lt;/p&gt;
&lt;p&gt;
result [3] = &amp;quot;the lazy dog&amp;quot; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
This function was used for reporting writing and formatting logs. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
The function takes a string of any size and returns a list of string no larger than the max length input variable. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Let me know if this was useful. 
&lt;/p&gt;
&lt;div&gt;
&lt;div style="font-size: 8pt; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Collections.Generic;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// Summary description for StringExtention&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   6:&lt;/span&gt; &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   7:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; StringExtention
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   8:&lt;/span&gt; {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// Returns a list of strings no larger than the max length sent in.&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;remarks&amp;gt;useful function used to wrap string text for reporting.&amp;lt;/remarks&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;param name=&amp;quot;text&amp;quot;&amp;gt;Text to be wrapped into of List of Strings&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;param name=&amp;quot;maxLength&amp;quot;&amp;gt;Max length you want each line to be.&amp;lt;/param&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;     &lt;span style="color: #008000"&gt;/// &amp;lt;returns&amp;gt;List of Strings&amp;lt;/returns&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; List&amp;lt;String&amp;gt; Wrap(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt; text, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; maxLength)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;     {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;         &lt;span style="color: #008000"&gt;// Return empty list of strings if the text was empty&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (text.Length == 0) &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;gt;();
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;         var words = text.Split(&lt;span style="color: #006080"&gt;&amp;#39; &amp;#39;&lt;/span&gt;);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;         var lines = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;&amp;gt;();
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;         var currentLine = &lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  26:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;foreach&lt;/span&gt; (var currentWord &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; words)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  27:&lt;/span&gt;         {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  28:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  29:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; ((currentLine.Length &amp;gt; maxLength) ||
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  30:&lt;/span&gt;                 ((currentLine.Length + currentWord.Length) &amp;gt; maxLength))
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  31:&lt;/span&gt;             {
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  32:&lt;/span&gt;                 lines.Add(currentLine);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  33:&lt;/span&gt;                 currentLine = &lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  34:&lt;/span&gt;             }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  35:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  36:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (currentLine.Length &amp;gt; 0)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  37:&lt;/span&gt;                 currentLine += &lt;span style="color: #006080"&gt;&amp;quot; &amp;quot;&lt;/span&gt; + currentWord;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  38:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  39:&lt;/span&gt;                 currentLine += currentWord;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  40:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  41:&lt;/span&gt;         }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  42:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  43:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (currentLine.Length &amp;gt; 0)
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  44:&lt;/span&gt;             lines.Add(currentLine);
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  45:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  46:&lt;/span&gt;         
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  47:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; lines;
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  48:&lt;/span&gt;     }
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  49:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  50:&lt;/span&gt;&amp;nbsp; 
&lt;/pre&gt;
&lt;pre style="font-size: 8pt; margin: 0em; overflow: visible; width: 100%; color: black; line-height: 12pt; font-family: consolas, 'Courier New', courier, monospace; background-color: white; border-style: none; padding: 0px"&gt;
&lt;span style="color: #606060"&gt;  51:&lt;/span&gt; }
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://bryan.reynoldslive.com/post/Wrapping-string-data.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://bryan.reynoldslive.com/post/Wrapping-string-data.aspx&amp;amp;title=C# Wrapping text using split and List&amp;lt;&amp;gt;" target="_blank" title="DZone It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://bryan.reynoldslive.com/post/Wrapping-string-data.aspx" target="_blank" title="StumbleUpon"&gt;&lt;img src="/themes/socialbookmarks/Circle/stumbleupon_24.png" style="border: 0;" alt="StumbleUpon" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://technorati.com/ping?url=http://bryan.reynoldslive.com/" target="_blank" title="Technorati"&gt;&lt;img src="/themes/socialbookmarks/Circle/technorati_24.png" style="border: 0;" alt="Technorati" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://reddit.com/submit?url=http://bryan.reynoldslive.com/post/Wrapping-string-data.aspx&amp;amp;title=C# Wrapping text using split and List&amp;lt;&amp;gt;" target="_blank" title="Reddit"&gt;&lt;img src="/themes/socialbookmarks/Circle/reddit_24.png" style="border: 0;" alt="Reddit" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://bryan.reynoldslive.com/post/Wrapping-string-data.aspx&amp;amp;title=C# Wrapping text using split and List&amp;lt;&amp;gt;" target="_blank" title="Del.icio.us"&gt;&lt;img src="/themes/socialbookmarks/Circle/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http://bryan.reynoldslive.com/post/Wrapping-string-data.aspx" target="_blank"title="NewsVine"&gt;&lt;img src="/themes/socialbookmarks/Circle/newsvine_24.png" style="border: 0;" alt="NewsVine" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://furl.net" target="_blank" title="Furl"&gt;&lt;img src="/themes/socialbookmarks/Circle/furl_24.png" style="border: 0;" alt="Furl" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://blinklist.com/submit/" target="_blank" title="BlinkList"&gt;&lt;img src="/themes/socialbookmarks/Circle/blinklist_24.png" style="border: 0;" alt="BlinkList" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://bryan.reynoldslive.com/post/Wrapping-string-data.aspx</link>
      <author>Bryan</author>
      <comments>http://bryan.reynoldslive.com/post/Wrapping-string-data.aspx#comment</comments>
      <guid>http://bryan.reynoldslive.com/post.aspx?id=86bb9127-373f-4a0b-9fe5-920bef1a5211</guid>
      <pubDate>Wed, 07 May 2008 11:04:00 -0700</pubDate>
      <category>C#</category>
      <dc:publisher>Bryan</dc:publisher>
      <pingback:server>http://bryan.reynoldslive.com/pingback.axd</pingback:server>
      <pingback:target>http://bryan.reynoldslive.com/post.aspx?id=86bb9127-373f-4a0b-9fe5-920bef1a5211</pingback:target>
      <slash:comments>512</slash:comments>
      <trackback:ping>http://bryan.reynoldslive.com/trackback.axd?id=86bb9127-373f-4a0b-9fe5-920bef1a5211</trackback:ping>
      <wfw:comment>http://bryan.reynoldslive.com/post/Wrapping-string-data.aspx#comment</wfw:comment>
      <wfw:commentRss>http://bryan.reynoldslive.com/syndication.axd?post=86bb9127-373f-4a0b-9fe5-920bef1a5211</wfw:commentRss>
    </item>
    <item>
      <title>Using LINQ to SQL instead of a sub report.</title>
      <description>&lt;p&gt;The post described how to use "Linq to SQL" with XtraReports and DevExpress for displaying relational data within a column of a report. &lt;/p&gt; &lt;p&gt;&amp;nbsp; &lt;/p&gt; &lt;p&gt;As a developer's we have all made many reports and used many tools to generate reports. Currently I am working with DevExpress's &lt;a href="http://www.devexpress.com/Products/NET/WinForms/XtraReports/"&gt;XtraReports Suite&lt;/a&gt; and "LINQ to SQL".&amp;nbsp; For web based relational database system reporting there tools are pretty easy to work with.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&amp;nbsp; &lt;/p&gt; &lt;p&gt;Below is a sample output from a report that I am working on.&amp;nbsp; The interesting challenge was the 1 to many relationship within the Competitor column. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp; &lt;a href="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/UsingLINQtoSQLinsteadofasubreport_BBF5/XtraReport1_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="292" alt="XtraReport1" src="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/UsingLINQtoSQLinsteadofasubreport_BBF5/XtraReport1_thumb.jpg" width="412" border="0"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;The competitor column needs to report all competitors from a 1 to many relationship table. There are many possible solutions to this common problem.&amp;nbsp; Using XtraReports you can make a subreport, you could set the text of the control by pulling the data from the database, or you could have a stored procedure format that data in the SQL engine you use prior to printing the report. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I chose to use "LINQ to SQL" for its quick implementation and ease of use.&amp;nbsp; If you have not had a chance to look at this technology take a look at &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx"&gt;Scott Gu's post&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;&amp;nbsp; &lt;/p&gt; &lt;p&gt;In shorts order I was able to have a strongly type set of code that loaded a string with the exact format I needed to solve the problem. &lt;/p&gt; &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 98%; cursor: text; max-height: 400px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 228px; background-color: #f4f4f4"&gt; &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Detail_BeforePrint(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, System.Drawing.Printing.PrintEventArgs e)
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt;    {
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;        var projectID = Convert.ToInt32(GetCurrentColumnValue(&lt;span style="color: #006080"&gt;"ProjectID"&lt;/span&gt;));
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;        var db = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; dbDataContext();
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;        var queryCompitetion = from recs &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; db.ProjectCompetitions
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;                               join comprecs &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; db.Competitions on recs.CompetitionID equals comprecs.CompetitionID
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;                               &lt;span style="color: #0000ff"&gt;where&lt;/span&gt; recs.ProjectID == projectID
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;                               select &lt;span style="color: #0000ff"&gt;new&lt;/span&gt;
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;                                          {
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;                                              recs.Distance,
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;                                              recs.Direction,
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;                                              comprecs.Name,
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;                                          };
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;        var stringBuiler = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; StringBuilder();
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;        &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; i = 0; i &amp;lt; queryCompitetion.ToList().Count-1; i++)
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;        {
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;            var recs = queryCompitetion.ToList()[i];
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;            stringBuiler.AppendFormat(&lt;span style="color: #006080"&gt;"{0}/ {1}{2}    "&lt;/span&gt;, recs.Name, recs.Distance, recs.Direction);
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; ((i + 1) % 2 == 0) stringBuiler.Append(&lt;span style="color: #006080"&gt;"\r\n"&lt;/span&gt;);
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;        }
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  26:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  27:&lt;/span&gt;        
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  28:&lt;/span&gt;        xrCompetitorCell.Text = stringBuiler.ToString();
&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  29:&lt;/span&gt;    }
&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;The "Detail_BeforePrint" function fires off before each report detail line is displayed.&amp;nbsp;&amp;nbsp; Using the GetCurrentColumnValue function I retrieved the ProjectID for the current line.&amp;nbsp; Used "Linq to SQL" to grab the appropriate data using strong typing.&amp;nbsp; Iterated through the result and add the formatted string to the "xrCompetitorCell".&amp;nbsp; The "xrCompetitorCell" is a property of the report and generated via DevExpress's designer. &lt;/p&gt;
&lt;p&gt;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Hope this was useful from you. &lt;/p&gt;
&lt;p&gt;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Bryan &lt;/p&gt;&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://bryan.reynoldslive.com/post/Using-LINQ-to-SQL-instead-of-a-sub-report.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://bryan.reynoldslive.com/post/Using-LINQ-to-SQL-instead-of-a-sub-report.aspx&amp;amp;title=Using LINQ to SQL instead of a sub report." target="_blank" title="DZone It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://bryan.reynoldslive.com/post/Using-LINQ-to-SQL-instead-of-a-sub-report.aspx" target="_blank" title="StumbleUpon"&gt;&lt;img src="/themes/socialbookmarks/Circle/stumbleupon_24.png" style="border: 0;" alt="StumbleUpon" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://technorati.com/ping?url=http://bryan.reynoldslive.com/" target="_blank" title="Technorati"&gt;&lt;img src="/themes/socialbookmarks/Circle/technorati_24.png" style="border: 0;" alt="Technorati" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://reddit.com/submit?url=http://bryan.reynoldslive.com/post/Using-LINQ-to-SQL-instead-of-a-sub-report.aspx&amp;amp;title=Using LINQ to SQL instead of a sub report." target="_blank" title="Reddit"&gt;&lt;img src="/themes/socialbookmarks/Circle/reddit_24.png" style="border: 0;" alt="Reddit" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://bryan.reynoldslive.com/post/Using-LINQ-to-SQL-instead-of-a-sub-report.aspx&amp;amp;title=Using LINQ to SQL instead of a sub report." target="_blank" title="Del.icio.us"&gt;&lt;img src="/themes/socialbookmarks/Circle/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http://bryan.reynoldslive.com/post/Using-LINQ-to-SQL-instead-of-a-sub-report.aspx" target="_blank"title="NewsVine"&gt;&lt;img src="/themes/socialbookmarks/Circle/newsvine_24.png" style="border: 0;" alt="NewsVine" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://furl.net" target="_blank" title="Furl"&gt;&lt;img src="/themes/socialbookmarks/Circle/furl_24.png" style="border: 0;" alt="Furl" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://blinklist.com/submit/" target="_blank" title="BlinkList"&gt;&lt;img src="/themes/socialbookmarks/Circle/blinklist_24.png" style="border: 0;" alt="BlinkList" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://bryan.reynoldslive.com/post/Using-LINQ-to-SQL-instead-of-a-sub-report.aspx</link>
      <author>Bryan</author>
      <comments>http://bryan.reynoldslive.com/post/Using-LINQ-to-SQL-instead-of-a-sub-report.aspx#comment</comments>
      <guid>http://bryan.reynoldslive.com/post.aspx?id=fda1e7d2-5bc2-4192-8589-86c0e25e888c</guid>
      <pubDate>Wed, 30 Apr 2008 07:21:00 -0700</pubDate>
      <category>ASP.NET</category>
      <category>C#</category>
      <category>LINQ to SQL</category>
      <dc:publisher>Bryan</dc:publisher>
      <pingback:server>http://bryan.reynoldslive.com/pingback.axd</pingback:server>
      <pingback:target>http://bryan.reynoldslive.com/post.aspx?id=fda1e7d2-5bc2-4192-8589-86c0e25e888c</pingback:target>
      <slash:comments>264</slash:comments>
      <trackback:ping>http://bryan.reynoldslive.com/trackback.axd?id=fda1e7d2-5bc2-4192-8589-86c0e25e888c</trackback:ping>
      <wfw:comment>http://bryan.reynoldslive.com/post/Using-LINQ-to-SQL-instead-of-a-sub-report.aspx#comment</wfw:comment>
      <wfw:commentRss>http://bryan.reynoldslive.com/syndication.axd?post=fda1e7d2-5bc2-4192-8589-86c0e25e888c</wfw:commentRss>
    </item>
    <item>
      <title>LLBLGen Pro and Microsoft&amp;rsquo;s Dynamic Data will play nice!</title>
      <description>&lt;p&gt;
I am a big fan of &lt;a href="http://www.llblgen.com/defaultgeneric.aspx"&gt;LLBLGen Pro&lt;/a&gt;, an n-tier generator and O/R mapper, written mostly by &lt;a href="http://weblogs.asp.net/fbouma/"&gt;Frans Bouma&lt;/a&gt;.&amp;nbsp; For those of you who are not familiar with this product the true value is its creator and evangelist Frans Bouma.&amp;nbsp; The quality product, support and enthusiasm brought by him and his organization is refreshing. 
&lt;/p&gt;
&lt;p&gt;
Also recently Microsoft has been working on a ASP.NET extension called &lt;a href="http://code.msdn.microsoft.com/dynamicdata"&gt;Dynamic Data&lt;/a&gt;.&amp;nbsp; Dynamic Data currently was scheduled to work with Microsoft O/R mapping initiatives LINQ to SQL and the Entity Framework.&amp;nbsp; Dynamic Data is designed to allow developers to quickly create &lt;a href="http://en.wikipedia.org/wiki/Create%2C_read%2C_update_and_delete"&gt;CRUD&lt;/a&gt; pages surrounded by a base scaffolding with a central place to update UI and Validation logic.&amp;nbsp; I know that was a mouthful, and if you are looking for more information there are numerous blogs and sites that you can look at to get familiar with this technology. Some of the more prominent links are below. 
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://code.msdn.microsoft.com/dynamicdata"&gt;MSDN code gallery&lt;/a&gt; &lt;/li&gt;
	&lt;li&gt;Microsoft Evangelists 
	&lt;ul&gt;
		&lt;li&gt;&lt;a href="http://blogs.msdn.com/davidebb/default.aspx"&gt;David Ebbo&amp;#39;s Blog&lt;/a&gt; &lt;/li&gt;
		&lt;li&gt;&lt;a href="http://blogs.msdn.com/scothu/default.aspx"&gt;Scott Hunter&amp;#39;s Blog&lt;/a&gt; &lt;/li&gt;
		&lt;li&gt;&lt;a href="http://blogs.msdn.com/marcinon/default.aspx"&gt;Marcin Dobosz&amp;#39;s blog&lt;/a&gt; &lt;/li&gt;
	&lt;/ul&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Good news! 
&lt;/p&gt;
&lt;p&gt;
Both Dynamic Data and LLBLgen will be playing nice.&amp;nbsp; It started about a month ago when I was talking David Ebbo whether or not the extension was going to work with other O/R tools and with Frans Bouma about Dynamic Data.&amp;nbsp; After I took Frans through a demo he immediately contacted Microsoft to make it happen.&amp;nbsp; Today I got the email from him telling me they were going to release the product with the appropriate API to allow his product to integrate with Dynamic Data. 
&lt;/p&gt;
&lt;p&gt;
I will hopefully have time to go through the bits Frans sent me today.&amp;nbsp; I am excited this produced a situation where I get what I believe to be the best of both worlds, for small projects. 
&lt;/p&gt;
&lt;p&gt;
Microsoft was not planning on releasing this API until this happened and I applaud both Microsoft and Frans for bringing the tools together for the community to enjoy. 
&lt;/p&gt;
&lt;p&gt;
Thanks! 
&lt;/p&gt;
&lt;p&gt;
Bryan Reynolds 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.BayTechConsulting.com"&gt;C# Developer&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/DynamicDataNewCodeDrop_CCD7/Untitled_2.jpg"&gt;&lt;img src="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/DynamicDataNewCodeDrop_CCD7/Untitled_thumb.jpg" border="0" alt="Untitled" width="125" height="36" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://bryan.reynoldslive.com/post/LLBLGen-Pro-and-Microsoftrsquo3bs-Dynamic-Data-to-play-nice!.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://bryan.reynoldslive.com/post/LLBLGen-Pro-and-Microsoftrsquo3bs-Dynamic-Data-to-play-nice!.aspx&amp;amp;title=LLBLGen Pro and Microsoft&amp;rsquo;s Dynamic Data will play nice!" target="_blank" title="DZone It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://bryan.reynoldslive.com/post/LLBLGen-Pro-and-Microsoftrsquo3bs-Dynamic-Data-to-play-nice!.aspx" target="_blank" title="StumbleUpon"&gt;&lt;img src="/themes/socialbookmarks/Circle/stumbleupon_24.png" style="border: 0;" alt="StumbleUpon" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://technorati.com/ping?url=http://bryan.reynoldslive.com/" target="_blank" title="Technorati"&gt;&lt;img src="/themes/socialbookmarks/Circle/technorati_24.png" style="border: 0;" alt="Technorati" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://reddit.com/submit?url=http://bryan.reynoldslive.com/post/LLBLGen-Pro-and-Microsoftrsquo3bs-Dynamic-Data-to-play-nice!.aspx&amp;amp;title=LLBLGen Pro and Microsoft&amp;rsquo;s Dynamic Data will play nice!" target="_blank" title="Reddit"&gt;&lt;img src="/themes/socialbookmarks/Circle/reddit_24.png" style="border: 0;" alt="Reddit" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://bryan.reynoldslive.com/post/LLBLGen-Pro-and-Microsoftrsquo3bs-Dynamic-Data-to-play-nice!.aspx&amp;amp;title=LLBLGen Pro and Microsoft&amp;rsquo;s Dynamic Data will play nice!" target="_blank" title="Del.icio.us"&gt;&lt;img src="/themes/socialbookmarks/Circle/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http://bryan.reynoldslive.com/post/LLBLGen-Pro-and-Microsoftrsquo3bs-Dynamic-Data-to-play-nice!.aspx" target="_blank"title="NewsVine"&gt;&lt;img src="/themes/socialbookmarks/Circle/newsvine_24.png" style="border: 0;" alt="NewsVine" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://furl.net" target="_blank" title="Furl"&gt;&lt;img src="/themes/socialbookmarks/Circle/furl_24.png" style="border: 0;" alt="Furl" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://blinklist.com/submit/" target="_blank" title="BlinkList"&gt;&lt;img src="/themes/socialbookmarks/Circle/blinklist_24.png" style="border: 0;" alt="BlinkList" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://bryan.reynoldslive.com/post/LLBLGen-Pro-and-Microsoftrsquo3bs-Dynamic-Data-to-play-nice!.aspx</link>
      <author>Bryan</author>
      <comments>http://bryan.reynoldslive.com/post/LLBLGen-Pro-and-Microsoftrsquo3bs-Dynamic-Data-to-play-nice!.aspx#comment</comments>
      <guid>http://bryan.reynoldslive.com/post.aspx?id=ce77f638-aa7c-4400-b464-81c80836fcfb</guid>
      <pubDate>Fri, 25 Apr 2008 15:29:00 -0700</pubDate>
      <category>ASP.NET</category>
      <category>Dynamic Data</category>
      <category>LLBLGen</category>
      <dc:publisher>Bryan</dc:publisher>
      <pingback:server>http://bryan.reynoldslive.com/pingback.axd</pingback:server>
      <pingback:target>http://bryan.reynoldslive.com/post.aspx?id=ce77f638-aa7c-4400-b464-81c80836fcfb</pingback:target>
      <slash:comments>500</slash:comments>
      <trackback:ping>http://bryan.reynoldslive.com/trackback.axd?id=ce77f638-aa7c-4400-b464-81c80836fcfb</trackback:ping>
      <wfw:comment>http://bryan.reynoldslive.com/post/LLBLGen-Pro-and-Microsoftrsquo3bs-Dynamic-Data-to-play-nice!.aspx#comment</wfw:comment>
      <wfw:commentRss>http://bryan.reynoldslive.com/syndication.axd?post=ce77f638-aa7c-4400-b464-81c80836fcfb</wfw:commentRss>
    </item>
    <item>
      <title>Interesting article about the new C# &amp;quot;var&amp;quot;</title>
      <description>&lt;p&gt;&lt;a href="http://resharper.blogspot.com/"&gt;Ilya Ryzhenkov&lt;/a&gt;, a .NET Tools Product Manager at &lt;a href="http://www.jetbrains.com"&gt;JetBrains&lt;/a&gt;, relays some of his thoughts on the &lt;strong&gt;var&lt;/strong&gt; keyword &lt;a href="http://resharper.blogspot.com/2008/03/varification-using-implicitly-typed.html"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;If you had a chance to use some of the latest c# language features you have no doubt heard of var.&amp;nbsp; Coming from the idea of KISS, keep it simple stupid, I not only agree with Ilya, but would say that this is the way it should have always been.&amp;nbsp; Especially now that we are in the day of IDE's and IDE addon's like JetBrain's resharper we should be reducing the amount of code we need to maintain and making the syntax easier to read.&lt;/p&gt;&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://bryan.reynoldslive.com/post/Interesting-article-about-the-new-C-quot3bvarquot3b.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://bryan.reynoldslive.com/post/Interesting-article-about-the-new-C-quot3bvarquot3b.aspx&amp;amp;title=Interesting article about the new C# &amp;quot;var&amp;quot;" target="_blank" title="DZone It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://bryan.reynoldslive.com/post/Interesting-article-about-the-new-C-quot3bvarquot3b.aspx" target="_blank" title="StumbleUpon"&gt;&lt;img src="/themes/socialbookmarks/Circle/stumbleupon_24.png" style="border: 0;" alt="StumbleUpon" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://technorati.com/ping?url=http://bryan.reynoldslive.com/" target="_blank" title="Technorati"&gt;&lt;img src="/themes/socialbookmarks/Circle/technorati_24.png" style="border: 0;" alt="Technorati" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://reddit.com/submit?url=http://bryan.reynoldslive.com/post/Interesting-article-about-the-new-C-quot3bvarquot3b.aspx&amp;amp;title=Interesting article about the new C# &amp;quot;var&amp;quot;" target="_blank" title="Reddit"&gt;&lt;img src="/themes/socialbookmarks/Circle/reddit_24.png" style="border: 0;" alt="Reddit" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://bryan.reynoldslive.com/post/Interesting-article-about-the-new-C-quot3bvarquot3b.aspx&amp;amp;title=Interesting article about the new C# &amp;quot;var&amp;quot;" target="_blank" title="Del.icio.us"&gt;&lt;img src="/themes/socialbookmarks/Circle/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http://bryan.reynoldslive.com/post/Interesting-article-about-the-new-C-quot3bvarquot3b.aspx" target="_blank"title="NewsVine"&gt;&lt;img src="/themes/socialbookmarks/Circle/newsvine_24.png" style="border: 0;" alt="NewsVine" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://furl.net" target="_blank" title="Furl"&gt;&lt;img src="/themes/socialbookmarks/Circle/furl_24.png" style="border: 0;" alt="Furl" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://blinklist.com/submit/" target="_blank" title="BlinkList"&gt;&lt;img src="/themes/socialbookmarks/Circle/blinklist_24.png" style="border: 0;" alt="BlinkList" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://bryan.reynoldslive.com/post/Interesting-article-about-the-new-C-quot3bvarquot3b.aspx</link>
      <author>Bryan</author>
      <comments>http://bryan.reynoldslive.com/post/Interesting-article-about-the-new-C-quot3bvarquot3b.aspx#comment</comments>
      <guid>http://bryan.reynoldslive.com/post.aspx?id=089df33e-2719-4db1-a532-1c1713a9e125</guid>
      <pubDate>Wed, 23 Apr 2008 11:58:58 -0700</pubDate>
      <category>C#</category>
      <dc:publisher>Bryan</dc:publisher>
      <pingback:server>http://bryan.reynoldslive.com/pingback.axd</pingback:server>
      <pingback:target>http://bryan.reynoldslive.com/post.aspx?id=089df33e-2719-4db1-a532-1c1713a9e125</pingback:target>
      <slash:comments>816</slash:comments>
      <trackback:ping>http://bryan.reynoldslive.com/trackback.axd?id=089df33e-2719-4db1-a532-1c1713a9e125</trackback:ping>
      <wfw:comment>http://bryan.reynoldslive.com/post/Interesting-article-about-the-new-C-quot3bvarquot3b.aspx#comment</wfw:comment>
      <wfw:commentRss>http://bryan.reynoldslive.com/syndication.axd?post=089df33e-2719-4db1-a532-1c1713a9e125</wfw:commentRss>
    </item>
    <item>
      <title>Dynamic Data - New Code Drop</title>
      <description>&lt;p&gt;If you have not had a chance to check out Microsoft's &lt;a href="http://code.msdn.microsoft.com/dynamicdata"&gt;DynamicData&lt;/a&gt; you should.&amp;nbsp; I have been working on the latest bits via &lt;a href="https://connect.microsoft.com/site/sitehome.aspx?SiteID=512"&gt;Microsoft Connect&lt;/a&gt; and I have been pleased.&amp;nbsp; It does not fit every need of course.&amp;nbsp; Its not "Enterprise Level" and we can debate what that means for ever.&amp;nbsp; Suffice it to say,&amp;nbsp; if you have a large complex architecture with many developers,&amp;nbsp; this is not the tool.&amp;nbsp; Good news is not all projects are like that.&amp;nbsp; For the many small applications that offices and companies of all size need on a regular basis.&amp;nbsp; This will fill the bill.&amp;nbsp; &lt;/p&gt; &lt;p&gt;Below with virtually no code I was able to modify the default templates to make a customer detail screen that shows the customers jobs.&amp;nbsp; The field captions all the way to the validation are described in a single location to reduce the amount of work you have to do.&amp;nbsp; Its all about being lazy!&amp;nbsp; Or better yet code reduction without functionality reduction. &lt;/p&gt; &lt;p&gt;You can see links on the left below that shows a list of links to function of this tiny program.&amp;nbsp; After talking with the client for about 3 hours.&amp;nbsp; I generated in 30 minutes a complete site for data entry.&amp;nbsp; As the customer requested changes I was able to quickly respond to there requests.&amp;nbsp; &lt;/p&gt; &lt;p&gt;&lt;a href="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/DynamicDataNewCodeDrop_CCD7/DynamicData1_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="306" alt="DynamicData1" src="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/DynamicDataNewCodeDrop_CCD7/DynamicData1_thumb.jpg" width="463" border="0"&gt;&lt;/a&gt;&amp;nbsp; &lt;/p&gt; &lt;p&gt;If a field is required via a not null property on your data field via SQL Server.&amp;nbsp; Then the data validation on the screen is linked as well. &lt;/p&gt; &lt;p&gt;&lt;a href="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/DynamicDataNewCodeDrop_CCD7/New%20Picture_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="294" alt="New Picture" src="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/DynamicDataNewCodeDrop_CCD7/New%20Picture_thumb.jpg" width="464" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;Looks like Microsoft is listening to there customers.&amp;nbsp; As a software developer you must take a look at this tool. &lt;/p&gt; &lt;p&gt;Bryan MCPD &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.laminarco.com"&gt;C# Developer&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/DynamicDataNewCodeDrop_CCD7/Untitled_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="36" alt="Untitled" src="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/DynamicDataNewCodeDrop_CCD7/Untitled_thumb.jpg" width="125" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://bryan.reynoldslive.com/post/Dynamic-Data---New-Code-Drop.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://bryan.reynoldslive.com/post/Dynamic-Data---New-Code-Drop.aspx&amp;amp;title=Dynamic Data - New Code Drop" target="_blank" title="DZone It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://bryan.reynoldslive.com/post/Dynamic-Data---New-Code-Drop.aspx" target="_blank" title="StumbleUpon"&gt;&lt;img src="/themes/socialbookmarks/Circle/stumbleupon_24.png" style="border: 0;" alt="StumbleUpon" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://technorati.com/ping?url=http://bryan.reynoldslive.com/" target="_blank" title="Technorati"&gt;&lt;img src="/themes/socialbookmarks/Circle/technorati_24.png" style="border: 0;" alt="Technorati" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://reddit.com/submit?url=http://bryan.reynoldslive.com/post/Dynamic-Data---New-Code-Drop.aspx&amp;amp;title=Dynamic Data - New Code Drop" target="_blank" title="Reddit"&gt;&lt;img src="/themes/socialbookmarks/Circle/reddit_24.png" style="border: 0;" alt="Reddit" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://bryan.reynoldslive.com/post/Dynamic-Data---New-Code-Drop.aspx&amp;amp;title=Dynamic Data - New Code Drop" target="_blank" title="Del.icio.us"&gt;&lt;img src="/themes/socialbookmarks/Circle/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http://bryan.reynoldslive.com/post/Dynamic-Data---New-Code-Drop.aspx" target="_blank"title="NewsVine"&gt;&lt;img src="/themes/socialbookmarks/Circle/newsvine_24.png" style="border: 0;" alt="NewsVine" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://furl.net" target="_blank" title="Furl"&gt;&lt;img src="/themes/socialbookmarks/Circle/furl_24.png" style="border: 0;" alt="Furl" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://blinklist.com/submit/" target="_blank" title="BlinkList"&gt;&lt;img src="/themes/socialbookmarks/Circle/blinklist_24.png" style="border: 0;" alt="BlinkList" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://bryan.reynoldslive.com/post/Dynamic-Data---New-Code-Drop.aspx</link>
      <author>Bryan</author>
      <comments>http://bryan.reynoldslive.com/post/Dynamic-Data---New-Code-Drop.aspx#comment</comments>
      <guid>http://bryan.reynoldslive.com/post.aspx?id=e03b0c14-3d17-491f-badd-5f8bc10258db</guid>
      <pubDate>Thu, 10 Apr 2008 08:34:00 -0700</pubDate>
      <category>ASP.NET</category>
      <category>Dynamic Data</category>
      <dc:publisher>Bryan</dc:publisher>
      <pingback:server>http://bryan.reynoldslive.com/pingback.axd</pingback:server>
      <pingback:target>http://bryan.reynoldslive.com/post.aspx?id=e03b0c14-3d17-491f-badd-5f8bc10258db</pingback:target>
      <slash:comments>289</slash:comments>
      <trackback:ping>http://bryan.reynoldslive.com/trackback.axd?id=e03b0c14-3d17-491f-badd-5f8bc10258db</trackback:ping>
      <wfw:comment>http://bryan.reynoldslive.com/post/Dynamic-Data---New-Code-Drop.aspx#comment</wfw:comment>
      <wfw:commentRss>http://bryan.reynoldslive.com/syndication.axd?post=e03b0c14-3d17-491f-badd-5f8bc10258db</wfw:commentRss>
    </item>
    <item>
      <title>Fraudulent Companies</title>
      <description>&lt;p&gt;
Yesterday I got a frantic call from one of our clients. They were concerned that one of the marketing campaigns we manage through our lead system was not performing. They mentioned after looking at some reports they were concerned that this campaign had shut down. Leads were being submitted perfectly fine one day then not at all the next. They thought the system was broken. It was a valid question. I investigated. 
&lt;/p&gt;
&lt;p&gt;
During the conversation I looked at the reports myself and quickly realized that someone was messing with us. They were submitting leads at an almost 1 for 1 basis to visits. This was not the pattern we saw for any other lead campaign. 50 visits to a lead was more realistic. This campaign was not only performing at an almost 1 to 1 basis, but all leads were valid on entry. This is of course not realistic either. Normally we see a 5 to 1 ratio on a user submitting a lead and it passing all the validation checks to make sure it&amp;rsquo;s a real lead. This is not standard for everyone, I am sure. Depending on the validation logic your system has the numbers can be very different. Either way, this was a problem. 
&lt;/p&gt;
&lt;p&gt;
We are dealing with this now by adding preventative logic to the system. 
&lt;/p&gt;
&lt;p&gt;
Why do they do it? What can be done with people like this? 
&lt;/p&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://bryan.reynoldslive.com/post/Fraudulent-Companies.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://bryan.reynoldslive.com/post/Fraudulent-Companies.aspx&amp;amp;title=Fraudulent Companies" target="_blank" title="DZone It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://bryan.reynoldslive.com/post/Fraudulent-Companies.aspx" target="_blank" title="StumbleUpon"&gt;&lt;img src="/themes/socialbookmarks/Circle/stumbleupon_24.png" style="border: 0;" alt="StumbleUpon" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://technorati.com/ping?url=http://bryan.reynoldslive.com/" target="_blank" title="Technorati"&gt;&lt;img src="/themes/socialbookmarks/Circle/technorati_24.png" style="border: 0;" alt="Technorati" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://reddit.com/submit?url=http://bryan.reynoldslive.com/post/Fraudulent-Companies.aspx&amp;amp;title=Fraudulent Companies" target="_blank" title="Reddit"&gt;&lt;img src="/themes/socialbookmarks/Circle/reddit_24.png" style="border: 0;" alt="Reddit" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://bryan.reynoldslive.com/post/Fraudulent-Companies.aspx&amp;amp;title=Fraudulent Companies" target="_blank" title="Del.icio.us"&gt;&lt;img src="/themes/socialbookmarks/Circle/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http://bryan.reynoldslive.com/post/Fraudulent-Companies.aspx" target="_blank"title="NewsVine"&gt;&lt;img src="/themes/socialbookmarks/Circle/newsvine_24.png" style="border: 0;" alt="NewsVine" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://furl.net" target="_blank" title="Furl"&gt;&lt;img src="/themes/socialbookmarks/Circle/furl_24.png" style="border: 0;" alt="Furl" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://blinklist.com/submit/" target="_blank" title="BlinkList"&gt;&lt;img src="/themes/socialbookmarks/Circle/blinklist_24.png" style="border: 0;" alt="BlinkList" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://bryan.reynoldslive.com/post/Fraudulent-Companies.aspx</link>
      <author>Bryan</author>
      <comments>http://bryan.reynoldslive.com/post/Fraudulent-Companies.aspx#comment</comments>
      <guid>http://bryan.reynoldslive.com/post.aspx?id=23def0cb-3eab-42d3-b54e-79c057ab49cf</guid>
      <pubDate>Tue, 18 Mar 2008 07:25:00 -0700</pubDate>
      <category>ASP.NET</category>
      <category>General</category>
      <category>Lead Management</category>
      <category>Marketing</category>
      <dc:publisher>Bryan</dc:publisher>
      <pingback:server>http://bryan.reynoldslive.com/pingback.axd</pingback:server>
      <pingback:target>http://bryan.reynoldslive.com/post.aspx?id=23def0cb-3eab-42d3-b54e-79c057ab49cf</pingback:target>
      <slash:comments>199</slash:comments>
      <trackback:ping>http://bryan.reynoldslive.com/trackback.axd?id=23def0cb-3eab-42d3-b54e-79c057ab49cf</trackback:ping>
      <wfw:comment>http://bryan.reynoldslive.com/post/Fraudulent-Companies.aspx#comment</wfw:comment>
      <wfw:commentRss>http://bryan.reynoldslive.com/syndication.axd?post=23def0cb-3eab-42d3-b54e-79c057ab49cf</wfw:commentRss>
    </item>
    <item>
      <title>Mocking using TypeMock</title>
      <description>&lt;p&gt;
Unit testing and using the mocking pattern are new to my team and I.&amp;nbsp; After talking with &lt;a href="http://www.elilopian.com/2007/12/24/welcome-ron-shoshani/"&gt;Ron Shoshani&lt;/a&gt; at &lt;a href="http://www.typemock.com"&gt;TypeMock&lt;/a&gt; they decided put a &lt;a href="http://www.typemock.com/Multimedia.html"&gt;video&lt;/a&gt; up for beginners. 
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
This video shows you how to break constructor dependency when writing unit tests.&amp;nbsp; Constructor dependency is when you one object depends on another during the creation or construction.&amp;nbsp; When another object is used in the constructor it binds the classes together in a way that makes testing discrete concerns more difficult. &lt;br /&gt;
&lt;br /&gt;
To solve this problem without TypeMock developers would use the &lt;a href="http://en.wikipedia.org/wiki/Mock_Object"&gt;Mock Object Pattern&lt;/a&gt;.&amp;nbsp; Usually through the use of interfaces a class is created for the use in the test that mocks or mimics what the real functionality would be.&amp;nbsp; Usually this is a simple implementation that does not actually perform the true work that would be needed to implement the interface.&amp;nbsp; The implementation would be just enough to complete the unit tests that use it. This new implementation would then be used in the unit test of the class you wanted to test. 
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
With TypeMock you will be able to mock objects that do not have interfaces, and even more powerful you don&amp;#39;t even have to create the mock object implementation.&amp;nbsp; This makes testing objects that have dependant objects much easier to test. 
&lt;/p&gt;
&lt;p&gt;
&lt;br /&gt;
If you have not checked out &lt;a href="http://www.typemock.com/"&gt;TypeMock&lt;/a&gt; you should do so. 
&lt;/p&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://bryan.reynoldslive.com/post/Mocking-using-TypeMock.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://bryan.reynoldslive.com/post/Mocking-using-TypeMock.aspx&amp;amp;title=Mocking using TypeMock" target="_blank" title="DZone It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://bryan.reynoldslive.com/post/Mocking-using-TypeMock.aspx" target="_blank" title="StumbleUpon"&gt;&lt;img src="/themes/socialbookmarks/Circle/stumbleupon_24.png" style="border: 0;" alt="StumbleUpon" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://technorati.com/ping?url=http://bryan.reynoldslive.com/" target="_blank" title="Technorati"&gt;&lt;img src="/themes/socialbookmarks/Circle/technorati_24.png" style="border: 0;" alt="Technorati" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://reddit.com/submit?url=http://bryan.reynoldslive.com/post/Mocking-using-TypeMock.aspx&amp;amp;title=Mocking using TypeMock" target="_blank" title="Reddit"&gt;&lt;img src="/themes/socialbookmarks/Circle/reddit_24.png" style="border: 0;" alt="Reddit" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://bryan.reynoldslive.com/post/Mocking-using-TypeMock.aspx&amp;amp;title=Mocking using TypeMock" target="_blank" title="Del.icio.us"&gt;&lt;img src="/themes/socialbookmarks/Circle/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http://bryan.reynoldslive.com/post/Mocking-using-TypeMock.aspx" target="_blank"title="NewsVine"&gt;&lt;img src="/themes/socialbookmarks/Circle/newsvine_24.png" style="border: 0;" alt="NewsVine" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://furl.net" target="_blank" title="Furl"&gt;&lt;img src="/themes/socialbookmarks/Circle/furl_24.png" style="border: 0;" alt="Furl" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://blinklist.com/submit/" target="_blank" title="BlinkList"&gt;&lt;img src="/themes/socialbookmarks/Circle/blinklist_24.png" style="border: 0;" alt="BlinkList" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://bryan.reynoldslive.com/post/Mocking-using-TypeMock.aspx</link>
      <author>Bryan</author>
      <comments>http://bryan.reynoldslive.com/post/Mocking-using-TypeMock.aspx#comment</comments>
      <guid>http://bryan.reynoldslive.com/post.aspx?id=bc32c2f6-7d02-4aa0-a3fd-a4bdb9f81bc3</guid>
      <pubDate>Wed, 30 Jan 2008 05:04:00 -0700</pubDate>
      <category>Agile</category>
      <dc:publisher>Bryan</dc:publisher>
      <pingback:server>http://bryan.reynoldslive.com/pingback.axd</pingback:server>
      <pingback:target>http://bryan.reynoldslive.com/post.aspx?id=bc32c2f6-7d02-4aa0-a3fd-a4bdb9f81bc3</pingback:target>
      <slash:comments>71</slash:comments>
      <trackback:ping>http://bryan.reynoldslive.com/trackback.axd?id=bc32c2f6-7d02-4aa0-a3fd-a4bdb9f81bc3</trackback:ping>
      <wfw:comment>http://bryan.reynoldslive.com/post/Mocking-using-TypeMock.aspx#comment</wfw:comment>
      <wfw:commentRss>http://bryan.reynoldslive.com/syndication.axd?post=bc32c2f6-7d02-4aa0-a3fd-a4bdb9f81bc3</wfw:commentRss>
    </item>
    <item>
      <title>Datatable Pivot/Crosstab</title>
      <description>&lt;p&gt;This article was written to show an example of how to pivot or transform a ADO.Net datatable.&amp;nbsp; This can also be referred to as a crosstab query.&amp;nbsp; This example code below was written for a VB.NET application but you can easily convert this to C#. &lt;/p&gt; &lt;p&gt;These unit tests where written for the MS Unit testing framework within Visual Studio Team System 2008.&lt;/p&gt; &lt;p&gt;I am sure you have seen example of this type before, so I will be brief.&amp;nbsp;&amp;nbsp; &lt;/p&gt; &lt;p&gt;I rewrote this with agile development and unit testing in mind.&amp;nbsp; Basically this code takes a &lt;strong&gt;datatable&lt;/strong&gt; that you want to transform.&amp;nbsp; A key column that defines each unique row.&amp;nbsp; A variable column that will display across the top and a value column representing the data for it. &lt;br&gt;&lt;br&gt;For this example to work you need to sort the table by that key column.&amp;nbsp; Alternatively, I could add some code to make sure that happens in the view.&amp;nbsp; Will probably update that later.&lt;br&gt;&lt;br&gt;For those of you that are new to unit testing this was a perfect example of a time when testing came in handy.&amp;nbsp; When I tested the code without variable columns that where of type date the class worked great.&amp;nbsp; As soon as I change the data to a date field the unit test crashed.&amp;nbsp; Below is the result of the modified code by adding ".tostring" &lt;/p&gt; &lt;h3&gt;&amp;nbsp;&lt;/h3&gt; &lt;h3&gt;Code for the PivotTable Class &lt;/h3&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div&gt; &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; Namespace GEN.DL.Transformation&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt;     Public Class PivotTable&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt;         Private lSourceTable As DataTable&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt;         Private lVariableColumn As DataColumn&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;         Private lAggregateColumn As DataColumn&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;         Private lKeyColumn As DataColumn&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;         Private lDestinationTable As New DataTable&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt; #Region &lt;span style="color: #006080"&gt;"Public Properties"&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;         &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;span style="color: #006080"&gt;' &amp;lt;summary&amp;gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;         '&lt;/span&gt;&lt;span style="color: #006080"&gt;''&lt;/span&gt; Pivot datatable&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;         &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;span style="color: #006080"&gt;' &amp;lt;/summary&amp;gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;         Public Sub New(ByVal mSourceTable As DataTable, ByVal mKeyColumn As DataColumn, _&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;                        ByVal mVariableColumn As DataColumn, ByVal mValueColumn As DataColumn)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;             lSourceTable = mSourceTable&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;             lKeyColumn = mKeyColumn&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;             lVariableColumn = mVariableColumn&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;             lAggregateColumn = mValueColumn&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;         End Sub&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  26:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  27:&lt;/span&gt; #End Region&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  28:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  29:&lt;/span&gt;         '&lt;/span&gt;&lt;span style="color: #006080"&gt;''&lt;/span&gt; &amp;lt;summary&amp;gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  30:&lt;/span&gt;         &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;span style="color: #006080"&gt;' Pivots a datatable&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  31:&lt;/span&gt;         '&lt;/span&gt;&lt;span style="color: #006080"&gt;''&lt;/span&gt; &amp;lt;/summary&amp;gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  32:&lt;/span&gt;         &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;span style="color: #006080"&gt;' &amp;lt;returns&amp;gt;Returns pivot datatable&amp;lt;/returns&amp;gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  33:&lt;/span&gt;         Public Function Transform() As DataTable&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  34:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  35:&lt;/span&gt;             Dim mColumn As DataColumn '&lt;/span&gt; Column used &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; each to add non essential columns&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  36:&lt;/span&gt;             Dim mSourceDataRow As DataRow &lt;span style="color: #006080"&gt;' Source Row&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  37:&lt;/span&gt;             Dim mDestinationDataRow As DataRow = Nothing '&lt;/span&gt; Row to be Added&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  38:&lt;/span&gt;             Dim mCurrentKeyValue As String = &lt;span style="color: #006080"&gt;""&lt;/span&gt; &lt;span style="color: #006080"&gt;' Current Key Name&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  39:&lt;/span&gt;             Dim mCurrentColumn As String = "" '&lt;/span&gt; Current Column Name&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  40:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  41:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  42:&lt;/span&gt;             &lt;span style="color: #006080"&gt;' Add All the columns excluding the aggregate and the Variable Column&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  43:&lt;/span&gt;             For Each mColumn In lSourceTable.Columns&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  44:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  45:&lt;/span&gt;                 If mColumn.Ordinal &amp;lt;&amp;gt; lVariableColumn.Ordinal AndAlso _&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  46:&lt;/span&gt;                    mColumn.Ordinal &amp;lt;&amp;gt; lAggregateColumn.Ordinal Then&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  47:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  48:&lt;/span&gt;                     lDestinationTable.Columns.Add(mColumn.ColumnName, mColumn.DataType)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  49:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  50:&lt;/span&gt;                 End If&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  51:&lt;/span&gt;             Next&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  52:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  53:&lt;/span&gt;             For Each mSourceDataRow In lSourceTable.Rows '&lt;/span&gt; Main Process to add values to pivot table&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  54:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  55:&lt;/span&gt;                 &lt;span style="color: #006080"&gt;' Set the current Column Value&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  56:&lt;/span&gt;                 mCurrentColumn = mSourceDataRow(lVariableColumn.Ordinal).ToString&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  57:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  58:&lt;/span&gt;                 If Not lDestinationTable.Columns.Contains(mCurrentColumn) Then '&lt;/span&gt; Column &lt;span style="color: #0000ff"&gt;is&lt;/span&gt; &lt;span style="color: #0000ff"&gt;new&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  59:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  60:&lt;/span&gt;                     Dim lDataColumn As DataColumn = lDestinationTable.Columns.Add(mCurrentColumn, lAggregateColumn.DataType)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  61:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  62:&lt;/span&gt;                     &lt;span style="color: #006080"&gt;' set the index so that it is sorted properly:&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  63:&lt;/span&gt;                     Dim newOrdinal As Integer = lDataColumn.Ordinal&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  64:&lt;/span&gt;                     Dim i As Integer&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  65:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  66:&lt;/span&gt;                     For i = newOrdinal - 1 To lSourceTable.Columns.Count - 2 Step -1&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  67:&lt;/span&gt;                         If lDataColumn.ColumnName.CompareTo(lDestinationTable.Columns(i).ColumnName) &amp;lt; 0 Then&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  68:&lt;/span&gt;                             newOrdinal = i&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  69:&lt;/span&gt;                         End If&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  70:&lt;/span&gt;                     Next&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  71:&lt;/span&gt;                     lDataColumn.SetOrdinal(newOrdinal)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  72:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  73:&lt;/span&gt;                 End If&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  74:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  75:&lt;/span&gt;                 If mCurrentKeyValue &amp;lt;&amp;gt; mSourceDataRow(lKeyColumn.Ordinal).ToString Then '&lt;/span&gt; New Row&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  76:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  77:&lt;/span&gt;                     If Not mCurrentKeyValue = &lt;span style="color: #006080"&gt;""&lt;/span&gt; Then &lt;span style="color: #006080"&gt;' First row&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  78:&lt;/span&gt;                         lDestinationTable.Rows.Add(mDestinationDataRow)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  79:&lt;/span&gt;                     End If&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  80:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  81:&lt;/span&gt;                     mCurrentKeyValue = mSourceDataRow(lKeyColumn.Ordinal).ToString&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  82:&lt;/span&gt;                     mDestinationDataRow = lDestinationTable.NewRow()&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  83:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  84:&lt;/span&gt;                     For Each mColumn In lSourceTable.Columns&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  85:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  86:&lt;/span&gt;                         If mColumn.Ordinal &amp;lt;&amp;gt; lVariableColumn.Ordinal AndAlso _&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  87:&lt;/span&gt;                            mColumn.Ordinal &amp;lt;&amp;gt; lAggregateColumn.Ordinal Then&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  88:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  89:&lt;/span&gt;                             mDestinationDataRow(mColumn.ColumnName) = mSourceDataRow(mColumn.ColumnName)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  90:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  91:&lt;/span&gt;                         End If&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  92:&lt;/span&gt;                     Next&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  93:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  94:&lt;/span&gt;                 End If&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  95:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  96:&lt;/span&gt;                 mDestinationDataRow(mCurrentColumn) = mSourceDataRow(lAggregateColumn.Ordinal)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  97:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  98:&lt;/span&gt;             Next&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  99:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 100:&lt;/span&gt;             '&lt;/span&gt; If rows &lt;span style="color: #0000ff"&gt;where&lt;/span&gt; added, add the last row&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 101:&lt;/span&gt;             If mCurrentKeyValue.Length &amp;gt; 0 Then lDestinationTable.Rows.Add(mDestinationDataRow)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 102:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 103:&lt;/span&gt;             Return lDestinationTable&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 104:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 105:&lt;/span&gt;         End Function&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 106:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 107:&lt;/span&gt;     End Class&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 108:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 109:&lt;/span&gt; End Namespace&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;&amp;nbsp; &lt;/p&gt;
&lt;h3&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3&gt;Unit Tests&lt;/h3&gt;&lt;pre class="csharpcode"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;div&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; Imports System.Data&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; Imports Microsoft.VisualStudio.TestTools.UnitTesting&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; Imports GEN.DL.Transformation&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;span style="color: #006080"&gt;'&amp;lt;summary&amp;gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt; '&lt;/span&gt;&lt;span style="color: #006080"&gt;''&lt;/span&gt;This &lt;span style="color: #0000ff"&gt;is&lt;/span&gt; a test &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; PivotTableTest and &lt;span style="color: #0000ff"&gt;is&lt;/span&gt; intended&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt; &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;span style="color: #006080"&gt;'to contain all PivotTableTest Unit Tests&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt; '&lt;/span&gt;&lt;span style="color: #006080"&gt;''&lt;/span&gt;&amp;lt;/summary&amp;gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt; &amp;lt;TestClass()&amp;gt; _&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt; Public Class PivotTableTest&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;     Private testContextInstance As TestContext&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;     &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;span style="color: #006080"&gt;'&amp;lt;summary&amp;gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;     '&lt;/span&gt;&lt;span style="color: #006080"&gt;''&lt;/span&gt;Gets or sets the test context which provides&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt;     &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;span style="color: #006080"&gt;'information about and functionality for the current test run.&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  18:&lt;/span&gt;     '&lt;/span&gt;&lt;span style="color: #006080"&gt;''&lt;/span&gt;&amp;lt;/summary&amp;gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  19:&lt;/span&gt;     Public Property TestContext() As TestContext&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  20:&lt;/span&gt;         Get&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  21:&lt;/span&gt;             Return testContextInstance&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  22:&lt;/span&gt;         End Get&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  23:&lt;/span&gt;         Set(ByVal &lt;span style="color: #0000ff"&gt;value&lt;/span&gt; As TestContext)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  24:&lt;/span&gt;             testContextInstance = &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  25:&lt;/span&gt;         End Set&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  26:&lt;/span&gt;     End Property&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  27:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  28:&lt;/span&gt; #Region &lt;span style="color: #006080"&gt;"Additional test attributes"&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  29:&lt;/span&gt;     &lt;span style="color: #006080"&gt;'&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  30:&lt;/span&gt;     '&lt;/span&gt;You can use the following additional attributes &lt;span style="color: #0000ff"&gt;as&lt;/span&gt; you write your tests:&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  31:&lt;/span&gt;     &lt;span style="color: #006080"&gt;'&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  32:&lt;/span&gt;     '&lt;/span&gt;Use ClassInitialize to run code before running the first test &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; the &lt;span style="color: #0000ff"&gt;class&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  33:&lt;/span&gt;     &lt;span style="color: #006080"&gt;'&amp;lt;ClassInitialize()&amp;gt;  _&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  34:&lt;/span&gt;     '&lt;/span&gt;Public Shared Sub MyClassInitialize(ByVal testContext As TestContext)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  35:&lt;/span&gt;     &lt;span style="color: #006080"&gt;'End Sub&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  36:&lt;/span&gt;     '&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  37:&lt;/span&gt;     &lt;span style="color: #006080"&gt;'Use ClassCleanup to run code after all tests in a class have run&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  38:&lt;/span&gt;     '&lt;/span&gt;&amp;lt;ClassCleanup()&amp;gt;  _&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  39:&lt;/span&gt;     &lt;span style="color: #006080"&gt;'Public Shared Sub MyClassCleanup()&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  40:&lt;/span&gt;     '&lt;/span&gt;End Sub&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  41:&lt;/span&gt;     &lt;span style="color: #006080"&gt;'&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  42:&lt;/span&gt;     '&lt;/span&gt;Use TestInitialize to run code before running each test&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  43:&lt;/span&gt;     &lt;span style="color: #006080"&gt;'&amp;lt;TestInitialize()&amp;gt;  _&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  44:&lt;/span&gt;     '&lt;/span&gt;Public Sub MyTestInitialize()&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  45:&lt;/span&gt;     &lt;span style="color: #006080"&gt;'End Sub&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  46:&lt;/span&gt;     '&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  47:&lt;/span&gt;     &lt;span style="color: #006080"&gt;'Use TestCleanup to run code after each test has run&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  48:&lt;/span&gt;     '&lt;/span&gt;&amp;lt;TestCleanup()&amp;gt;  _&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  49:&lt;/span&gt;     &lt;span style="color: #006080"&gt;'Public Sub MyTestCleanup()&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  50:&lt;/span&gt;     '&lt;/span&gt;End Sub&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  51:&lt;/span&gt;     &lt;span style="color: #006080"&gt;'&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  52:&lt;/span&gt; #End Region&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  53:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  54:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  55:&lt;/span&gt;     '&lt;/span&gt;&lt;span style="color: #006080"&gt;''&lt;/span&gt;&amp;lt;summary&amp;gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  56:&lt;/span&gt;     &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;span style="color: #006080"&gt;'A test for Transform&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  57:&lt;/span&gt;     '&lt;/span&gt;&lt;span style="color: #006080"&gt;''&lt;/span&gt;&amp;lt;/summary&amp;gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  58:&lt;/span&gt;     &amp;lt;TestMethod()&amp;gt; _&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  59:&lt;/span&gt;     Public Sub TransformTestGeneral()&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  60:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  61:&lt;/span&gt;         Dim mSourceTable As New DataTable(&lt;span style="color: #006080"&gt;"TestPivotTable"&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  62:&lt;/span&gt;         Dim mKeyColumn As New DataColumn(&lt;span style="color: #006080"&gt;"Key"&lt;/span&gt;, System.Type.GetType(&lt;span style="color: #006080"&gt;"System.DateTime"&lt;/span&gt;))&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  63:&lt;/span&gt;         Dim mVariableColumn As New DataColumn(&lt;span style="color: #006080"&gt;"Variable"&lt;/span&gt;, System.Type.GetType(&lt;span style="color: #006080"&gt;"System.DateTime"&lt;/span&gt;))&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  64:&lt;/span&gt;         Dim mAggregateColumn As New DataColumn(&lt;span style="color: #006080"&gt;"Aggregate"&lt;/span&gt;, System.Type.GetType(&lt;span style="color: #006080"&gt;"System.Int32"&lt;/span&gt;))&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  65:&lt;/span&gt;         Dim mDataRow As DataRow&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  66:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  67:&lt;/span&gt;         mSourceTable.Columns.Add(mKeyColumn)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  68:&lt;/span&gt;         mSourceTable.Columns.Add(mVariableColumn)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  69:&lt;/span&gt;         mSourceTable.Columns.Add(mAggregateColumn)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  70:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  71:&lt;/span&gt;         &lt;span style="color: #006080"&gt;' Row #1&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  72:&lt;/span&gt;         mDataRow = mSourceTable.NewRow&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  73:&lt;/span&gt;         mDataRow("Key") = "1/1/2008"&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  74:&lt;/span&gt;         mDataRow("Variable") = "1/1/2008"&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  75:&lt;/span&gt;         mDataRow("Aggregate") = 1&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  76:&lt;/span&gt;         mSourceTable.Rows.Add(mDataRow)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  77:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  78:&lt;/span&gt;         mDataRow = mSourceTable.NewRow&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  79:&lt;/span&gt;         mDataRow("Key") = "1/1/2008"&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  80:&lt;/span&gt;         mDataRow("Variable") = "1/2/2008"&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  81:&lt;/span&gt;         mDataRow("Aggregate") = 2&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  82:&lt;/span&gt;         mSourceTable.Rows.Add(mDataRow)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  83:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  84:&lt;/span&gt;         mDataRow = mSourceTable.NewRow&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  85:&lt;/span&gt;         mDataRow("Key") = "1/1/2008"&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  86:&lt;/span&gt;         mDataRow("Variable") = "1/3/2008"&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  87:&lt;/span&gt;         mDataRow("Aggregate") = 3&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  88:&lt;/span&gt;         mSourceTable.Rows.Add(mDataRow)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  89:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  90:&lt;/span&gt;         '&lt;/span&gt; Row #2&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  91:&lt;/span&gt;         mDataRow = mSourceTable.NewRow&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  92:&lt;/span&gt;         mDataRow(&lt;span style="color: #006080"&gt;"Key"&lt;/span&gt;) = &lt;span style="color: #006080"&gt;"1/2/2008"&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  93:&lt;/span&gt;         mDataRow(&lt;span style="color: #006080"&gt;"Variable"&lt;/span&gt;) = &lt;span style="color: #006080"&gt;"1/1/2008"&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  94:&lt;/span&gt;         mDataRow(&lt;span style="color: #006080"&gt;"Aggregate"&lt;/span&gt;) = 1&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  95:&lt;/span&gt;         mSourceTable.Rows.Add(mDataRow)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  96:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  97:&lt;/span&gt;         mDataRow = mSourceTable.NewRow&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  98:&lt;/span&gt;         mDataRow(&lt;span style="color: #006080"&gt;"Key"&lt;/span&gt;) = &lt;span style="color: #006080"&gt;"1/2/2008"&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  99:&lt;/span&gt;         mDataRow(&lt;span style="color: #006080"&gt;"Variable"&lt;/span&gt;) = &lt;span style="color: #006080"&gt;"1/2/2008"&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 100:&lt;/span&gt;         mDataRow(&lt;span style="color: #006080"&gt;"Aggregate"&lt;/span&gt;) = 2&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 101:&lt;/span&gt;         mSourceTable.Rows.Add(mDataRow)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 102:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 103:&lt;/span&gt;         mDataRow = mSourceTable.NewRow&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 104:&lt;/span&gt;         mDataRow(&lt;span style="color: #006080"&gt;"Key"&lt;/span&gt;) = &lt;span style="color: #006080"&gt;"1/2/2008"&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 105:&lt;/span&gt;         mDataRow(&lt;span style="color: #006080"&gt;"Variable"&lt;/span&gt;) = &lt;span style="color: #006080"&gt;"1/3/2008"&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 106:&lt;/span&gt;         mDataRow(&lt;span style="color: #006080"&gt;"Aggregate"&lt;/span&gt;) = 3&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 107:&lt;/span&gt;         mSourceTable.Rows.Add(mDataRow)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 108:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 109:&lt;/span&gt;         &lt;span style="color: #006080"&gt;' Row #3&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 110:&lt;/span&gt;         mDataRow = mSourceTable.NewRow&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 111:&lt;/span&gt;         mDataRow("Key") = "1/3/2008"&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 112:&lt;/span&gt;         mDataRow("Variable") = "1/1/2008"&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 113:&lt;/span&gt;         mDataRow("Aggregate") = 1&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 114:&lt;/span&gt;         mSourceTable.Rows.Add(mDataRow)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 115:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 116:&lt;/span&gt;         mDataRow = mSourceTable.NewRow&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 117:&lt;/span&gt;         mDataRow("Key") = "1/3/2008"&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 118:&lt;/span&gt;         mDataRow("Variable") = "1/2/2008"&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 119:&lt;/span&gt;         mDataRow("Aggregate") = 2&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 120:&lt;/span&gt;         mSourceTable.Rows.Add(mDataRow)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 121:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 122:&lt;/span&gt;         mDataRow = mSourceTable.NewRow&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 123:&lt;/span&gt;         mDataRow("Key") = "1/3/2008"&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 124:&lt;/span&gt;         mDataRow("Variable") = "1/3/2008"&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 125:&lt;/span&gt;         mDataRow("Aggregate") = 3&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 126:&lt;/span&gt;         mSourceTable.Rows.Add(mDataRow)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 127:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 128:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 129:&lt;/span&gt;         Dim target As PivotTable = New PivotTable(mSourceTable, mKeyColumn, mVariableColumn, mAggregateColumn)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 130:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 131:&lt;/span&gt;         Dim actual As DataTable&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 132:&lt;/span&gt;         actual = target.Transform&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 133:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 134:&lt;/span&gt;         Assert.AreEqual(3, actual.Rows.Count, "Should have 3 rows")&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 135:&lt;/span&gt;         Assert.AreEqual(4, actual.Columns.Count, "Should have 4 columns")&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 136:&lt;/span&gt;         Assert.AreEqual(2, actual.Rows(1)(2), "Value in Column 1 2 should be ""2""")&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 137:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 138:&lt;/span&gt;         '&lt;/span&gt;Assert.Inconclusive(&lt;span style="color: #006080"&gt;"Verify the correctness of this test method."&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 139:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 140:&lt;/span&gt;     End Sub&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 141:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 142:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 143:&lt;/span&gt;     &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;span style="color: #006080"&gt;'&amp;lt;summary&amp;gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 144:&lt;/span&gt;     '&lt;/span&gt;&lt;span style="color: #006080"&gt;''&lt;/span&gt; Test to see when a column &lt;span style="color: #0000ff"&gt;is&lt;/span&gt; added that the correct ordinal &lt;span style="color: #0000ff"&gt;is&lt;/span&gt; set.&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 145:&lt;/span&gt;     &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;span style="color: #006080"&gt;' If Column 2 is added before 3 does it show as 2 or 3.&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 146:&lt;/span&gt;     '&lt;/span&gt;&lt;span style="color: #006080"&gt;''&lt;/span&gt; Correct outcome should be 1,2,3&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 147:&lt;/span&gt;     &lt;span style="color: #006080"&gt;''&lt;/span&gt;&lt;span style="color: #006080"&gt;'&amp;lt;/summary&amp;gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 148:&lt;/span&gt;     &amp;lt;TestMethod()&amp;gt; _&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 149:&lt;/span&gt;     Public Sub TransformTestColumnAddingOrder()&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 150:&lt;/span&gt;         Dim mSourceTable As New DataTable("TestPivotTable")&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 151:&lt;/span&gt;         Dim mKeyColumn As New DataColumn("Key", System.Type.GetType("System.DateTime"))&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 152:&lt;/span&gt;         Dim mVariableColumn As New DataColumn("Variable", System.Type.GetType("System.String"))&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 153:&lt;/span&gt;         Dim mAggregateColumn As New DataColumn("Aggregate", System.Type.GetType("System.Int32"))&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 154:&lt;/span&gt;         Dim mDataRow As DataRow&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 155:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 156:&lt;/span&gt;         mSourceTable.Columns.Add(mKeyColumn)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 157:&lt;/span&gt;         mSourceTable.Columns.Add(mVariableColumn)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 158:&lt;/span&gt;         mSourceTable.Columns.Add(mAggregateColumn)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 159:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 160:&lt;/span&gt;         '&lt;/span&gt; Row #1&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 161:&lt;/span&gt;         mDataRow = mSourceTable.NewRow&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 162:&lt;/span&gt;         mDataRow(&lt;span style="color: #006080"&gt;"Key"&lt;/span&gt;) = &lt;span style="color: #006080"&gt;"1/1/2008"&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 163:&lt;/span&gt;         mDataRow(&lt;span style="color: #006080"&gt;"Variable"&lt;/span&gt;) = &lt;span style="color: #006080"&gt;"Column1"&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 164:&lt;/span&gt;         mDataRow(&lt;span style="color: #006080"&gt;"Aggregate"&lt;/span&gt;) = 1&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 165:&lt;/span&gt;         mSourceTable.Rows.Add(mDataRow)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 166:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 167:&lt;/span&gt;         &lt;span style="color: #006080"&gt;' Row #2&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 168:&lt;/span&gt;         mDataRow = mSourceTable.NewRow&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 169:&lt;/span&gt;         mDataRow("Key") = "1/2/2008"&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 170:&lt;/span&gt;         mDataRow("Variable") = "Column1"&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 171:&lt;/span&gt;         mDataRow("Aggregate") = 1&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 172:&lt;/span&gt;         mSourceTable.Rows.Add(mDataRow)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 173:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 174:&lt;/span&gt;         mDataRow = mSourceTable.NewRow&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 175:&lt;/span&gt;         mDataRow("Key") = "1/2/2008"&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 176:&lt;/span&gt;         mDataRow("Variable") = "Column3"&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 177:&lt;/span&gt;         mDataRow("Aggregate") = 2&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 178:&lt;/span&gt;         mSourceTable.Rows.Add(mDataRow)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 179:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 180:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 181:&lt;/span&gt;         '&lt;/span&gt; Row #3&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 182:&lt;/span&gt;         mDataRow = mSourceTable.NewRow&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 183:&lt;/span&gt;         mDataRow(&lt;span style="color: #006080"&gt;"Key"&lt;/span&gt;) = &lt;span style="color: #006080"&gt;"1/3/2008"&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 184:&lt;/span&gt;         mDataRow(&lt;span style="color: #006080"&gt;"Variable"&lt;/span&gt;) = &lt;span style="color: #006080"&gt;"Column1"&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 185:&lt;/span&gt;         mDataRow(&lt;span style="color: #006080"&gt;"Aggregate"&lt;/span&gt;) = 1&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 186:&lt;/span&gt;         mSourceTable.Rows.Add(mDataRow)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 187:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 188:&lt;/span&gt;         mDataRow = mSourceTable.NewRow&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 189:&lt;/span&gt;         mDataRow(&lt;span style="color: #006080"&gt;"Key"&lt;/span&gt;) = &lt;span style="color: #006080"&gt;"1/3/2008"&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 190:&lt;/span&gt;         mDataRow(&lt;span style="color: #006080"&gt;"Variable"&lt;/span&gt;) = &lt;span style="color: #006080"&gt;"Column2"&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 191:&lt;/span&gt;         mDataRow(&lt;span style="color: #006080"&gt;"Aggregate"&lt;/span&gt;) = 2&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 192:&lt;/span&gt;         mSourceTable.Rows.Add(mDataRow)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 193:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 194:&lt;/span&gt;         mDataRow = mSourceTable.NewRow&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 195:&lt;/span&gt;         mDataRow(&lt;span style="color: #006080"&gt;"Key"&lt;/span&gt;) = &lt;span style="color: #006080"&gt;"1/3/2008"&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 196:&lt;/span&gt;         mDataRow(&lt;span style="color: #006080"&gt;"Variable"&lt;/span&gt;) = &lt;span style="color: #006080"&gt;"Column3"&lt;/span&gt;&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 197:&lt;/span&gt;         mDataRow(&lt;span style="color: #006080"&gt;"Aggregate"&lt;/span&gt;) = 3&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 198:&lt;/span&gt;         mSourceTable.Rows.Add(mDataRow)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 199:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 200:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 201:&lt;/span&gt;         Dim target As PivotTable = New PivotTable(mSourceTable, mKeyColumn, mVariableColumn, mAggregateColumn)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 202:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 203:&lt;/span&gt;         Dim actual As DataTable&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 204:&lt;/span&gt;         actual = target.Transform&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 205:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 206:&lt;/span&gt;         Assert.AreEqual(3, actual.Rows.Count, &lt;span style="color: #006080"&gt;"Should have 3 rows"&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 207:&lt;/span&gt;         Assert.AreEqual(4, actual.Columns.Count, &lt;span style="color: #006080"&gt;"Should have 4 columns"&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 208:&lt;/span&gt;         Assert.AreEqual(2, actual.Rows(1)(3), &lt;span style="color: #006080"&gt;"Value in Column 1 2 should be "&lt;/span&gt;&lt;span style="color: #006080"&gt;"2"&lt;/span&gt;&lt;span style="color: #006080"&gt;""&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 209:&lt;/span&gt;         Assert.AreEqual(&lt;span style="color: #006080"&gt;"Column1"&lt;/span&gt;, actual.Columns(1).ColumnName, &lt;span style="color: #006080"&gt;"Column 1 should be named Column 1"&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 210:&lt;/span&gt;         Assert.AreEqual(&lt;span style="color: #006080"&gt;"Column2"&lt;/span&gt;, actual.Columns(2).ColumnName, &lt;span style="color: #006080"&gt;"Column 2 should be named Column 2"&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 211:&lt;/span&gt;         Assert.AreEqual(&lt;span style="color: #006080"&gt;"Column3"&lt;/span&gt;, actual.Columns(3).ColumnName, &lt;span style="color: #006080"&gt;"Column 3 should be named Column 3"&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 212:&lt;/span&gt;     End Sub&lt;/pre&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 213:&lt;/span&gt; End Class&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://bryan.reynoldslive.com/post/Datatable-PivotCrosstab.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://bryan.reynoldslive.com/post/Datatable-PivotCrosstab.aspx&amp;amp;title=Datatable Pivot/Crosstab" target="_blank" title="DZone It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://bryan.reynoldslive.com/post/Datatable-PivotCrosstab.aspx" target="_blank" title="StumbleUpon"&gt;&lt;img src="/themes/socialbookmarks/Circle/stumbleupon_24.png" style="border: 0;" alt="StumbleUpon" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://technorati.com/ping?url=http://bryan.reynoldslive.com/" target="_blank" title="Technorati"&gt;&lt;img src="/themes/socialbookmarks/Circle/technorati_24.png" style="border: 0;" alt="Technorati" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://reddit.com/submit?url=http://bryan.reynoldslive.com/post/Datatable-PivotCrosstab.aspx&amp;amp;title=Datatable Pivot/Crosstab" target="_blank" title="Reddit"&gt;&lt;img src="/themes/socialbookmarks/Circle/reddit_24.png" style="border: 0;" alt="Reddit" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://bryan.reynoldslive.com/post/Datatable-PivotCrosstab.aspx&amp;amp;title=Datatable Pivot/Crosstab" target="_blank" title="Del.icio.us"&gt;&lt;img src="/themes/socialbookmarks/Circle/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http://bryan.reynoldslive.com/post/Datatable-PivotCrosstab.aspx" target="_blank"title="NewsVine"&gt;&lt;img src="/themes/socialbookmarks/Circle/newsvine_24.png" style="border: 0;" alt="NewsVine" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://furl.net" target="_blank" title="Furl"&gt;&lt;img src="/themes/socialbookmarks/Circle/furl_24.png" style="border: 0;" alt="Furl" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://blinklist.com/submit/" target="_blank" title="BlinkList"&gt;&lt;img src="/themes/socialbookmarks/Circle/blinklist_24.png" style="border: 0;" alt="BlinkList" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://bryan.reynoldslive.com/post/Datatable-PivotCrosstab.aspx</link>
      <author>Bryan</author>
      <comments>http://bryan.reynoldslive.com/post/Datatable-PivotCrosstab.aspx#comment</comments>
      <guid>http://bryan.reynoldslive.com/post.aspx?id=ec2d9435-f0d0-4ae5-b460-dec912ff460f</guid>
      <pubDate>Wed, 09 Jan 2008 08:43:00 -0700</pubDate>
      <dc:publisher>Bryan</dc:publisher>
      <pingback:server>http://bryan.reynoldslive.com/pingback.axd</pingback:server>
      <pingback:target>http://bryan.reynoldslive.com/post.aspx?id=ec2d9435-f0d0-4ae5-b460-dec912ff460f</pingback:target>
      <slash:comments>428</slash:comments>
      <trackback:ping>http://bryan.reynoldslive.com/trackback.axd?id=ec2d9435-f0d0-4ae5-b460-dec912ff460f</trackback:ping>
      <wfw:comment>http://bryan.reynoldslive.com/post/Datatable-PivotCrosstab.aspx#comment</wfw:comment>
      <wfw:commentRss>http://bryan.reynoldslive.com/syndication.axd?post=ec2d9435-f0d0-4ae5-b460-dec912ff460f</wfw:commentRss>
    </item>
    <item>
      <title>Pictures from my trip up the 101</title>
      <description>&lt;p align="left"&gt;
Starting from Orange, California my wife and I took at trip up the cost through Oregon to Washington to hear some Jazz.&amp;nbsp; Not really, it was for the adventure of it all.&amp;nbsp; If you have not had a chance to take this drive or explore California with its diverse micro climates you are missing out.&amp;nbsp; 
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;br /&gt;
For all of you who have taking this trip!&amp;nbsp; A special bonus prize for you who can guess where these pictures were taken! 
&lt;/p&gt;
&lt;div align="left"&gt;
&lt;div id="scid:887EC618-8FBE-DEAD-BEEF-2339AF2EC721:a0017ae5-e65a-4b0b-aea1-2a0dbd647919" class="wlWriterSmartContent" style="display: inline; margin: 0px; padding: 0px"&gt;
&lt;a rel="thumbnail" href="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/Picturesfrommytripupthe101_8436/017-8x6.JPG"&gt;&lt;img src="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/Picturesfrommytripupthe101_8436/017.JPG" border="0" alt="" width="266" height="335" /&gt;&lt;/a&gt; 
&lt;/div&gt;
&lt;div id="scid:887EC618-8FBE-DEAD-BEEF-2339AF2EC721:9621c0ab-fba3-49b2-8043-c12a7ff41f79" class="wlWriterSmartContent" style="display: inline; margin: 0px; padding: 0px"&gt;
&lt;a rel="thumbnail" href="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/Picturesfrommytripupthe101_8436/030-8x6.JPG"&gt;&lt;img src="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/Picturesfrommytripupthe101_8436/030.JPG" border="0" alt="" width="266" height="335" /&gt;&lt;/a&gt; 
&lt;/div&gt;
&lt;div id="scid:887EC618-8FBE-DEAD-BEEF-2339AF2EC721:18566d1f-7443-4a47-a4f0-f40b9d581307" class="wlWriterSmartContent" style="display: inline; margin: 0px; padding: 0px"&gt;
&lt;a rel="thumbnail" href="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/Picturesfrommytripupthe101_8436/004-8x6.JPG"&gt;&lt;img src="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/Picturesfrommytripupthe101_8436/004.JPG" border="0" alt="" width="266" height="335" /&gt;&lt;/a&gt; 
&lt;/div&gt;
&lt;/div&gt;
&lt;div align="left"&gt;
&lt;div id="scid:887EC618-8FBE-DEAD-BEEF-2339AF2EC721:e8de7c90-4fe5-496d-b42c-3293ce9a58d4" class="wlWriterSmartContent" style="display: inline; margin: 0px; padding: 0px"&gt;
&lt;a rel="thumbnail" href="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/Picturesfrommytripupthe101_8436/031-8x6.JPG"&gt;&lt;img src="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/Picturesfrommytripupthe101_8436/031.JPG" border="0" alt="" width="266" height="335" /&gt;&lt;/a&gt; 
&lt;/div&gt;
&lt;div id="scid:887EC618-8FBE-DEAD-BEEF-2339AF2EC721:a9610563-d836-4380-b2a9-9a7e1eeb38ef" class="wlWriterSmartContent" style="display: inline; margin: 0px; padding: 0px"&gt;
&lt;a rel="thumbnail" href="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/Picturesfrommytripupthe101_8436/003-8x6.JPG"&gt;&lt;img src="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/Picturesfrommytripupthe101_8436/003.JPG" border="0" alt="" width="266" height="335" /&gt;&lt;/a&gt; 
&lt;/div&gt;
&lt;div id="scid:887EC618-8FBE-DEAD-BEEF-2339AF2EC721:5c2f9adf-3961-471e-abc5-f03761df640b" class="wlWriterSmartContent" style="display: inline; margin: 0px; padding: 0px"&gt;
&lt;a rel="thumbnail" href="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/Picturesfrommytripupthe101_8436/025-8x6.JPG"&gt;&lt;img src="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/Picturesfrommytripupthe101_8436/025_2.JPG" border="0" alt="" width="266" height="335" /&gt;&lt;/a&gt; 
&lt;/div&gt;
&lt;div id="scid:887EC618-8FBE-DEAD-BEEF-2339AF2EC721:d7e5f0b4-b13d-473a-a9b2-3404327c36fa" class="wlWriterSmartContent" style="display: inline; margin: 0px; padding: 0px"&gt;
&lt;a rel="thumbnail" href="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/Picturesfrommytripupthe101_8436/024-8x6.JPG"&gt;&lt;img src="http://bryan.reynoldslive.com/image.axd?picture=WindowsLiveWriter/Picturesfrommytripupthe101_8436/024.JPG" border="0" alt="" width="266" height="335" /&gt;&lt;/a&gt; 
&lt;/div&gt;
&lt;/div&gt;
&lt;p align="left"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p align="left"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p align="left"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p align="left"&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://bryan.reynoldslive.com/post/Pictures-from-my-trip-up-the-101.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://bryan.reynoldslive.com/post/Pictures-from-my-trip-up-the-101.aspx&amp;amp;title=Pictures from my trip up the 101" target="_blank" title="DZone It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://bryan.reynoldslive.com/post/Pictures-from-my-trip-up-the-101.aspx" target="_blank" title="StumbleUpon"&gt;&lt;img src="/themes/socialbookmarks/Circle/stumbleupon_24.png" style="border: 0;" alt="StumbleUpon" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://technorati.com/ping?url=http://bryan.reynoldslive.com/" target="_blank" title="Technorati"&gt;&lt;img src="/themes/socialbookmarks/Circle/technorati_24.png" style="border: 0;" alt="Technorati" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://reddit.com/submit?url=http://bryan.reynoldslive.com/post/Pictures-from-my-trip-up-the-101.aspx&amp;amp;title=Pictures from my trip up the 101" target="_blank" title="Reddit"&gt;&lt;img src="/themes/socialbookmarks/Circle/reddit_24.png" style="border: 0;" alt="Reddit" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://bryan.reynoldslive.com/post/Pictures-from-my-trip-up-the-101.aspx&amp;amp;title=Pictures from my trip up the 101" target="_blank" title="Del.icio.us"&gt;&lt;img src="/themes/socialbookmarks/Circle/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http://bryan.reynoldslive.com/post/Pictures-from-my-trip-up-the-101.aspx" target="_blank"title="NewsVine"&gt;&lt;img src="/themes/socialbookmarks/Circle/newsvine_24.png" style="border: 0;" alt="NewsVine" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://furl.net" target="_blank" title="Furl"&gt;&lt;img src="/themes/socialbookmarks/Circle/furl_24.png" style="border: 0;" alt="Furl" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://blinklist.com/submit/" target="_blank" title="BlinkList"&gt;&lt;img src="/themes/socialbookmarks/Circle/blinklist_24.png" style="border: 0;" alt="BlinkList" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://bryan.reynoldslive.com/post/Pictures-from-my-trip-up-the-101.aspx</link>
      <author>Bryan</author>
      <comments>http://bryan.reynoldslive.com/post/Pictures-from-my-trip-up-the-101.aspx#comment</comments>
      <guid>http://bryan.reynoldslive.com/post.aspx?id=51b7a0b3-ce51-4475-b1e4-ec16a44cd486</guid>
      <pubDate>Mon, 31 Dec 2007 09:17:00 -0700</pubDate>
      <category>General</category>
      <dc:publisher>Bryan</dc:publisher>
      <pingback:server>http://bryan.reynoldslive.com/pingback.axd</pingback:server>
      <pingback:target>http://bryan.reynoldslive.com/post.aspx?id=51b7a0b3-ce51-4475-b1e4-ec16a44cd486</pingback:target>
      <slash:comments>150</slash:comments>
      <trackback:ping>http://bryan.reynoldslive.com/trackback.axd?id=51b7a0b3-ce51-4475-b1e4-ec16a44cd486</trackback:ping>
      <wfw:comment>http://bryan.reynoldslive.com/post/Pictures-from-my-trip-up-the-101.aspx#comment</wfw:comment>
      <wfw:commentRss>http://bryan.reynoldslive.com/syndication.axd?post=51b7a0b3-ce51-4475-b1e4-ec16a44cd486</wfw:commentRss>
    </item>
    <item>
      <title>DDD, TDD, ALT.NET</title>
      <description>&lt;p align="left"&gt;
Karl Seguin an application developer for @ Fuel Industries Ottawa, Ontario has written a great set of articles designed to help developers not familiar with DDD, TDD, ALT.NET and more. &lt;br /&gt;
&lt;br /&gt;
A great set of articles: 
&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;
	&lt;div align="left"&gt;
	&lt;a href="http://codebetter.com/blogs/karlseguin/archive/2007/11/26/foundations-of-programming-part-1-introduction.aspx" target="_blank" title="Part I" class="externallink"&gt;Part I&lt;/a&gt; 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div align="left"&gt;
	&lt;a href="http://codebetter.com/blogs/karlseguin/archive/2007/11/29/foundations-of-programming-pt-2-domain-domain-domain.aspx" target="_blank" title="Part II" class="externallink"&gt;Part II&lt;/a&gt; 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div align="left"&gt;
	&lt;a href="http://codebetter.com/blogs/karlseguin/archive/2007/12/05/foundations-of-programming-part-3-persistence.aspx" target="_blank" title="Part III" class="externallink"&gt;Part III&lt;/a&gt; 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div align="left"&gt;
	&lt;a href="http://codebetter.com/blogs/karlseguin/archive/2007/12/10/foundations-of-programming-pt-4-dependency-injection.aspx" target="_blank" title="Part IV" class="externallink"&gt;Part IV&lt;/a&gt; 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div align="left"&gt;
	&lt;a href="http://codebetter.com/blogs/karlseguin/archive/2007/12/20/foundations-of-programming-part-5-unit-testing.aspx" target="_blank" title="Part V"&gt;Part V&lt;/a&gt; 
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div align="left"&gt;
	Part VI (Skipped)
	&lt;/div&gt;
	&lt;/li&gt;
	&lt;li&gt;
	&lt;div align="left"&gt;
	&lt;a href="http://codebetter.com/blogs/karlseguin/archive/2007/12/28/foundations-of-programming-pt-7-sorta-activerecord.aspx"&gt;Part VII&lt;/a&gt;
	&lt;/div&gt;
	&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://bryan.reynoldslive.com/post/DDD2c-TDD2c-ALTNET.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://bryan.reynoldslive.com/post/DDD2c-TDD2c-ALTNET.aspx&amp;amp;title=DDD, TDD, ALT.NET" target="_blank" title="DZone It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://bryan.reynoldslive.com/post/DDD2c-TDD2c-ALTNET.aspx" target="_blank" title="StumbleUpon"&gt;&lt;img src="/themes/socialbookmarks/Circle/stumbleupon_24.png" style="border: 0;" alt="StumbleUpon" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://technorati.com/ping?url=http://bryan.reynoldslive.com/" target="_blank" title="Technorati"&gt;&lt;img src="/themes/socialbookmarks/Circle/technorati_24.png" style="border: 0;" alt="Technorati" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://reddit.com/submit?url=http://bryan.reynoldslive.com/post/DDD2c-TDD2c-ALTNET.aspx&amp;amp;title=DDD, TDD, ALT.NET" target="_blank" title="Reddit"&gt;&lt;img src="/themes/socialbookmarks/Circle/reddit_24.png" style="border: 0;" alt="Reddit" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://bryan.reynoldslive.com/post/DDD2c-TDD2c-ALTNET.aspx&amp;amp;title=DDD, TDD, ALT.NET" target="_blank" title="Del.icio.us"&gt;&lt;img src="/themes/socialbookmarks/Circle/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http://bryan.reynoldslive.com/post/DDD2c-TDD2c-ALTNET.aspx" target="_blank"title="NewsVine"&gt;&lt;img src="/themes/socialbookmarks/Circle/newsvine_24.png" style="border: 0;" alt="NewsVine" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://furl.net" target="_blank" title="Furl"&gt;&lt;img src="/themes/socialbookmarks/Circle/furl_24.png" style="border: 0;" alt="Furl" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://blinklist.com/submit/" target="_blank" title="BlinkList"&gt;&lt;img src="/themes/socialbookmarks/Circle/blinklist_24.png" style="border: 0;" alt="BlinkList" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://bryan.reynoldslive.com/post/DDD2c-TDD2c-ALTNET.aspx</link>
      <author>Bryan</author>
      <comments>http://bryan.reynoldslive.com/post/DDD2c-TDD2c-ALTNET.aspx#comment</comments>
      <guid>http://bryan.reynoldslive.com/post.aspx?id=af8829ce-31b1-424e-9e8a-5b0f6e6920b7</guid>
      <pubDate>Fri, 28 Dec 2007 12:24:00 -0700</pubDate>
      <category>Agile</category>
      <category>ALT.NET</category>
      <dc:publisher>Bryan</dc:publisher>
      <pingback:server>http://bryan.reynoldslive.com/pingback.axd</pingback:server>
      <pingback:target>http://bryan.reynoldslive.com/post.aspx?id=af8829ce-31b1-424e-9e8a-5b0f6e6920b7</pingback:target>
      <slash:comments>91</slash:comments>
      <trackback:ping>http://bryan.reynoldslive.com/trackback.axd?id=af8829ce-31b1-424e-9e8a-5b0f6e6920b7</trackback:ping>
      <wfw:comment>http://bryan.reynoldslive.com/post/DDD2c-TDD2c-ALTNET.aspx#comment</wfw:comment>
      <wfw:commentRss>http://bryan.reynoldslive.com/syndication.axd?post=af8829ce-31b1-424e-9e8a-5b0f6e6920b7</wfw:commentRss>
    </item>
    <item>
      <title>Ken Schwaber Agile development</title>
      <description>&lt;p align="left"&gt;
&lt;font size="2"&gt;Ken Schwaber co-developed the Agile process, Scrum. He is a founder of the Agile Alliance and Scrum.&lt;/font&gt; 
&lt;/p&gt;
&lt;p align="left"&gt;
Great video for people who want an introduction to Agile and Scrum. 
&lt;/p&gt;
&lt;p align="left"&gt;
&lt;a href="http://video.google.com/videoplay?docid=-7230144396191025011&amp;amp;q=Google+Tech+Talks&amp;amp;hl=en" title="Scrum Video"&gt;Scrum et al.&lt;/a&gt; 
&lt;/p&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://bryan.reynoldslive.com/post/Great-video-with-Ken-Schwaber-regarding-Agile-development.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://bryan.reynoldslive.com/post/Great-video-with-Ken-Schwaber-regarding-Agile-development.aspx&amp;amp;title=Ken Schwaber Agile development" target="_blank" title="DZone It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://bryan.reynoldslive.com/post/Great-video-with-Ken-Schwaber-regarding-Agile-development.aspx" target="_blank" title="StumbleUpon"&gt;&lt;img src="/themes/socialbookmarks/Circle/stumbleupon_24.png" style="border: 0;" alt="StumbleUpon" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://technorati.com/ping?url=http://bryan.reynoldslive.com/" target="_blank" title="Technorati"&gt;&lt;img src="/themes/socialbookmarks/Circle/technorati_24.png" style="border: 0;" alt="Technorati" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://reddit.com/submit?url=http://bryan.reynoldslive.com/post/Great-video-with-Ken-Schwaber-regarding-Agile-development.aspx&amp;amp;title=Ken Schwaber Agile development" target="_blank" title="Reddit"&gt;&lt;img src="/themes/socialbookmarks/Circle/reddit_24.png" style="border: 0;" alt="Reddit" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://bryan.reynoldslive.com/post/Great-video-with-Ken-Schwaber-regarding-Agile-development.aspx&amp;amp;title=Ken Schwaber Agile development" target="_blank" title="Del.icio.us"&gt;&lt;img src="/themes/socialbookmarks/Circle/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http://bryan.reynoldslive.com/post/Great-video-with-Ken-Schwaber-regarding-Agile-development.aspx" target="_blank"title="NewsVine"&gt;&lt;img src="/themes/socialbookmarks/Circle/newsvine_24.png" style="border: 0;" alt="NewsVine" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://furl.net" target="_blank" title="Furl"&gt;&lt;img src="/themes/socialbookmarks/Circle/furl_24.png" style="border: 0;" alt="Furl" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://blinklist.com/submit/" target="_blank" title="BlinkList"&gt;&lt;img src="/themes/socialbookmarks/Circle/blinklist_24.png" style="border: 0;" alt="BlinkList" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://bryan.reynoldslive.com/post/Great-video-with-Ken-Schwaber-regarding-Agile-development.aspx</link>
      <author>Bryan</author>
      <comments>http://bryan.reynoldslive.com/post/Great-video-with-Ken-Schwaber-regarding-Agile-development.aspx#comment</comments>
      <guid>http://bryan.reynoldslive.com/post.aspx?id=d949696c-d952-4e9e-ba67-ac47d0235a38</guid>
      <pubDate>Sat, 22 Dec 2007 00:12:00 -0700</pubDate>
      <category>ALT.NET</category>
      <category>Agile</category>
      <category>TDD</category>
      <dc:publisher>Bryan</dc:publisher>
      <pingback:server>http://bryan.reynoldslive.com/pingback.axd</pingback:server>
      <pingback:target>http://bryan.reynoldslive.com/post.aspx?id=d949696c-d952-4e9e-ba67-ac47d0235a38</pingback:target>
      <slash:comments>21</slash:comments>
      <trackback:ping>http://bryan.reynoldslive.com/trackback.axd?id=d949696c-d952-4e9e-ba67-ac47d0235a38</trackback:ping>
      <wfw:comment>http://bryan.reynoldslive.com/post/Great-video-with-Ken-Schwaber-regarding-Agile-development.aspx#comment</wfw:comment>
      <wfw:commentRss>http://bryan.reynoldslive.com/syndication.axd?post=d949696c-d952-4e9e-ba67-ac47d0235a38</wfw:commentRss>
    </item>
    <item>
      <title>How-To: New ASP.NET 3.5 Extensions Video Screencasts</title>
      <description>&lt;p style="margin: 0in 0in 10pt" class="MsoNormal" align="left"&gt;
&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Scott Hanselman&amp;#39;s Just posted some new videos on ASP.NET 3.5 Extensions.&lt;span&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal" align="left"&gt;
&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span&gt;&lt;a href="http://www.hanselman.com/blog/HowToNewASPNET35ExtensionsVideoScreencasts.aspx" title="Click Here"&gt;Click Here&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt; 
&lt;/p&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://bryan.reynoldslive.com/post/How-To-New-ASPNET-35-Extensions-Video-Screencasts.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://bryan.reynoldslive.com/post/How-To-New-ASPNET-35-Extensions-Video-Screencasts.aspx&amp;amp;title=How-To: New ASP.NET 3.5 Extensions Video Screencasts" target="_blank" title="DZone It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://bryan.reynoldslive.com/post/How-To-New-ASPNET-35-Extensions-Video-Screencasts.aspx" target="_blank" title="StumbleUpon"&gt;&lt;img src="/themes/socialbookmarks/Circle/stumbleupon_24.png" style="border: 0;" alt="StumbleUpon" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://technorati.com/ping?url=http://bryan.reynoldslive.com/" target="_blank" title="Technorati"&gt;&lt;img src="/themes/socialbookmarks/Circle/technorati_24.png" style="border: 0;" alt="Technorati" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://reddit.com/submit?url=http://bryan.reynoldslive.com/post/How-To-New-ASPNET-35-Extensions-Video-Screencasts.aspx&amp;amp;title=How-To: New ASP.NET 3.5 Extensions Video Screencasts" target="_blank" title="Reddit"&gt;&lt;img src="/themes/socialbookmarks/Circle/reddit_24.png" style="border: 0;" alt="Reddit" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://bryan.reynoldslive.com/post/How-To-New-ASPNET-35-Extensions-Video-Screencasts.aspx&amp;amp;title=How-To: New ASP.NET 3.5 Extensions Video Screencasts" target="_blank" title="Del.icio.us"&gt;&lt;img src="/themes/socialbookmarks/Circle/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http://bryan.reynoldslive.com/post/How-To-New-ASPNET-35-Extensions-Video-Screencasts.aspx" target="_blank"title="NewsVine"&gt;&lt;img src="/themes/socialbookmarks/Circle/newsvine_24.png" style="border: 0;" alt="NewsVine" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://furl.net" target="_blank" title="Furl"&gt;&lt;img src="/themes/socialbookmarks/Circle/furl_24.png" style="border: 0;" alt="Furl" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://blinklist.com/submit/" target="_blank" title="BlinkList"&gt;&lt;img src="/themes/socialbookmarks/Circle/blinklist_24.png" style="border: 0;" alt="BlinkList" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://bryan.reynoldslive.com/post/How-To-New-ASPNET-35-Extensions-Video-Screencasts.aspx</link>
      <author>Bryan</author>
      <comments>http://bryan.reynoldslive.com/post/How-To-New-ASPNET-35-Extensions-Video-Screencasts.aspx#comment</comments>
      <guid>http://bryan.reynoldslive.com/post.aspx?id=f312d244-86a3-4d2f-9ba5-7c2b9b46b3e5</guid>
      <pubDate>Fri, 21 Dec 2007 14:22:00 -0700</pubDate>
      <category>AJAX</category>
      <category>ASP.NET</category>
      <category>LINQ</category>
      <category>MVC</category>
      <dc:publisher>Bryan</dc:publisher>
      <pingback:server>http://bryan.reynoldslive.com/pingback.axd</pingback:server>
      <pingback:target>http://bryan.reynoldslive.com/post.aspx?id=f312d244-86a3-4d2f-9ba5-7c2b9b46b3e5</pingback:target>
      <slash:comments>42</slash:comments>
      <trackback:ping>http://bryan.reynoldslive.com/trackback.axd?id=f312d244-86a3-4d2f-9ba5-7c2b9b46b3e5</trackback:ping>
      <wfw:comment>http://bryan.reynoldslive.com/post/How-To-New-ASPNET-35-Extensions-Video-Screencasts.aspx#comment</wfw:comment>
      <wfw:commentRss>http://bryan.reynoldslive.com/syndication.axd?post=f312d244-86a3-4d2f-9ba5-7c2b9b46b3e5</wfw:commentRss>
    </item>
    <item>
      <title>Happy Halloween!</title>
      <description>&lt;p style="margin: 0in 0in 10pt" class="MsoNormal" align="left"&gt;
&lt;font face="Calibri" size="3"&gt;Some exciting news!&lt;/font&gt; 
&lt;/p&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal" align="left"&gt;
&lt;font face="Calibri" size="3"&gt;Sean Cummings, Jeff Skvorc, and I have formed a new company called &lt;a href="http://www.BayTechConsulting.com/" title="Microsoft Solution Provider"&gt;BayTech&lt;/a&gt;!&lt;/font&gt; 
&lt;/p&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal" align="left"&gt;
&lt;font face="Calibri" size="3"&gt;I have known these guys for some time now and I am very excited about our future prospects.&lt;/font&gt; 
&lt;/p&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal" align="left"&gt;
&lt;font face="Calibri" size="3"&gt;I will be filling everyone in on&amp;nbsp;what our services are and more about what we are doing soon.&lt;/font&gt; 
&lt;/p&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal" align="left"&gt;
&lt;font face="Calibri" size="3"&gt;Wish us luck!&lt;/font&gt; 
&lt;/p&gt;
&lt;p style="margin: 0in 0in 10pt" class="MsoNormal" align="left"&gt;
&lt;font face="Calibri" size="3"&gt;Bryan Reynolds&lt;/font&gt; 
&lt;/p&gt;
&lt;div class="socialBookmarksContainer"&gt;&lt;a rel="nofollow" href="http://digg.com/submit/?url=http://bryan.reynoldslive.com/post/Happy-Halloween!.aspx" target="_blank" title="Digg It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/digg_24.png" style="border: 0;" alt="Digg It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.dzone.com/links/add.html?url=http://bryan.reynoldslive.com/post/Happy-Halloween!.aspx&amp;amp;title=Happy Halloween!" target="_blank" title="DZone It!"&gt;&lt;img src="/themes/socialbookmarks/Circle/dzone_24.png" style="border: 0;" alt="DZone It!" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.stumbleupon.com/submit?url=http://bryan.reynoldslive.com/post/Happy-Halloween!.aspx" target="_blank" title="StumbleUpon"&gt;&lt;img src="/themes/socialbookmarks/Circle/stumbleupon_24.png" style="border: 0;" alt="StumbleUpon" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://technorati.com/ping?url=http://bryan.reynoldslive.com/" target="_blank" title="Technorati"&gt;&lt;img src="/themes/socialbookmarks/Circle/technorati_24.png" style="border: 0;" alt="Technorati" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://reddit.com/submit?url=http://bryan.reynoldslive.com/post/Happy-Halloween!.aspx&amp;amp;title=Happy Halloween!" target="_blank" title="Reddit"&gt;&lt;img src="/themes/socialbookmarks/Circle/reddit_24.png" style="border: 0;" alt="Reddit" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://del.icio.us/post?url=http://bryan.reynoldslive.com/post/Happy-Halloween!.aspx&amp;amp;title=Happy Halloween!" target="_blank" title="Del.icio.us"&gt;&lt;img src="/themes/socialbookmarks/Circle/delicious_24.png" style="border: 0;" alt="Del.icio.us" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http://bryan.reynoldslive.com/post/Happy-Halloween!.aspx" target="_blank"title="NewsVine"&gt;&lt;img src="/themes/socialbookmarks/Circle/newsvine_24.png" style="border: 0;" alt="NewsVine" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://furl.net" target="_blank" title="Furl"&gt;&lt;img src="/themes/socialbookmarks/Circle/furl_24.png" style="border: 0;" alt="Furl" /&gt;&lt;/a&gt;&lt;a rel="nofollow" href="http://blinklist.com/submit/" target="_blank" title="BlinkList"&gt;&lt;img src="/themes/socialbookmarks/Circle/blinklist_24.png" style="border: 0;" alt="BlinkList" /&gt;&lt;/a&gt;&lt;/div&gt;</description>
      <link>http://bryan.reynoldslive.com/post/Happy-Halloween!.aspx</link>
      <author>Bryan</author>
      <comments>http://bryan.reynoldslive.com/post/Happy-Halloween!.aspx#comment</comments>
      <guid>http://bryan.reynoldslive.com/post.aspx?id=b88293e3-cd47-4fcc-905c-22fb62825455</guid>
      <pubDate>Wed, 31 Oct 2007 16:42:00 -0700</pubDate>
      <category>General</category>
      <dc:publisher>Bryan</dc:publisher>
      <pingback:server>http://bryan.reynoldslive.com/pingback.axd</pingback:server>
      <pingback:target>http://bryan.reynoldslive.com/post.aspx?id=b88293e3-cd47-4fcc-905c-22fb62825455</pingback:target>
      <slash:comments>128</slash:comments>
      <trackback:ping>http://bryan.reynoldslive.com/trackback.axd?id=b88293e3-cd47-4fcc-905c-22fb62825455</trackback:ping>
      <wfw:comment>http://bryan.reynoldslive.com/post/Happy-Halloween!.aspx#comment</wfw:comment>
      <wfw:commentRss>http://bryan.reynoldslive.com/syndication.axd?post=b88293e3-cd47-4fcc-905c-22fb62825455</wfw:commentRss>
    </item>
  </channel>
</rss>