<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-9317295</id><updated>2012-01-01T23:41:05.214+08:00</updated><category term='Moq'/><category term='Lookup'/><category term='asp.net'/><category term='jQuery'/><category term='MVC'/><category term='CSS'/><category term='Unit Test'/><category term='Ninject'/><category term='Entity Framework'/><category term='Drill down'/><category term='razor'/><title type='text'>Everyday Coder</title><subtitle type='html'>Choi Ho Chong's Blog on Coding</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default?start-index=101&amp;max-results=100'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>104</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9317295.post-5769081817030314245</id><published>2012-01-01T23:41:00.001+08:00</published><updated>2012-01-01T23:41:05.409+08:00</updated><title type='text'>Surrounding a ValidationSummary with a box via CSS</title><content type='html'>&lt;p&gt;By default Html.ValidationSummary() produces HTML like this:&lt;/p&gt;  &lt;pre&gt;&lt;code&gt;&amp;lt;span class=&amp;quot;validation-summary-errors&amp;quot;&amp;gt;There were some errors...&amp;lt;/span&amp;gt; &amp;lt;ul class=&amp;quot;validation-summary-errors&amp;quot;&amp;gt;    &amp;lt;li&amp;gt;First Name too long&amp;lt;/li&amp;gt;    &amp;lt;li&amp;gt;Invalid Email Address&amp;lt;/li&amp;gt; &amp;lt;/ul&amp;gt; &lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;I&amp;#39;d like to select the entire validation summary and add a bounding  box around it via CSS, so I am adding a CSS class like this: &lt;/p&gt;  &lt;pre&gt;&lt;code&gt;.validation-summary-errors{ background-color:#D9FFB2; border: 1px solid #5CBA30; color:#000000; margin-top:15px; margin-bottom:15px; } &lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;Now the problem is that this draws separate boxes around the  validation summary message and each error message. Certainly not what I  had in mind. &lt;/p&gt;  I can add a div around the summary like this, but this will result in an empty red box if there are no validation errors, so this is not the way:   &lt;pre&gt;&lt;code&gt;  &amp;lt;div class=&amp;quot;my-validation-summary&amp;quot;&amp;gt;         &amp;lt;h2&amp;gt;             &amp;lt;%=Model.Message%&amp;gt;         &amp;lt;/h2&amp;gt;         &amp;lt;%= Html.ValidationSummary(&amp;quot;There were some errors...&amp;quot;)%&amp;gt;     &amp;lt;/div&amp;gt; &lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;I can think of several ways to solve this:&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;Add a bounding div conditionally with server-side tags&lt;/li&gt;&lt;li&gt;Add a bounding div via jQuery&lt;/li&gt;&lt;li&gt;Write my own HtmlHelper wrapper that prints a CSS-friendly ValidationSummary&lt;/li&gt;&lt;/ul&gt;  &lt;p&gt;However, all of this looks quite awkward for solving such a simple  task. There must be a better way to do this. Perhaps some other way of  writing the CSS class so I don&amp;#39;t get an empty box when there is no  validation summary?&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt; Just to clarify, I am calling the html helper like this: &lt;/p&gt;  &lt;pre&gt;&lt;code&gt;&amp;lt;%=Html.ValidationSummary(&amp;quot;There were some errors...&amp;quot;) %&amp;gt; &lt;/code&gt;&lt;/pre&gt;  &lt;p&gt;&lt;strong&gt;Edit 2:&lt;/strong&gt; The scope of this question was to see  whether I have overlooked something dead-easy and obvious. It seems I  haven&amp;#39;t, so I&amp;#39;ll simply add my own HtmlHelper function that fits my  needs. I am voting to close my own question. &lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://stackoverflow.com/questions/940335/surrounding-a-validationsummary-with-a-box-via-css"&gt;Continue to read more...&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-5769081817030314245?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/5769081817030314245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=5769081817030314245' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/5769081817030314245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/5769081817030314245'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2012/01/surrounding-validationsummary-with-box.html' title='Surrounding a ValidationSummary with a box via CSS'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-7435355495177142701</id><published>2012-01-01T09:13:00.001+08:00</published><updated>2012-01-01T09:13:32.538+08:00</updated><title type='text'>ASP.NET MVC 3 Good Looking jQuery Validation</title><content type='html'>&lt;div class="post_subdetail"&gt; 		Posted @ 3/3/2011 3:51:36 PM 		development 	&lt;/div&gt; 	   	&lt;p&gt;I have always been fascinated with the the validation engine from &lt;a href="http://www.position-absolute.com/"&gt;http://www.position-absolute.com/&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.pieterg.com/Media/15" alt="alt text"&gt;&lt;/p&gt;  &lt;p&gt;Our example will be a simple SignUp form, which will require a user to complete all the fields before validation is passed.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://www.pieterg.com/Media/17" alt="alt text"&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 1:&lt;/strong&gt; Get the required bits for the Validation Engine here&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Create a new &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC 3 Application and pick the Razor View Engine.&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://www.pieterg.com/Post/ASPNETMVC3GoodLookingjQueryValidation"&gt;Continue to read more...&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-7435355495177142701?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/7435355495177142701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=7435355495177142701' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/7435355495177142701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/7435355495177142701'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2012/01/aspnet-mvc-3-good-looking-jquery.html' title='ASP.NET MVC 3 Good Looking jQuery Validation'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-8353295436281867279</id><published>2012-01-01T09:10:00.001+08:00</published><updated>2012-01-01T09:10:39.887+08:00</updated><title type='text'>How data annotations for ASP.NET MVC validation work</title><content type='html'>&lt;div class="metadata"&gt;             &lt;div class="published"&gt;Mar 14 2011 12:18 PM&lt;/div&gt;         &lt;/div&gt;               &lt;p&gt;Data validation is one of the most important aspects of  developing applications for the web. However, validation is also  something that can get messy pretty quickly, as developers often stick  validation code anywhere and everywhere. However, if you keep a clear  separation of concerns by using the MVC pattern and couple that with  data annotations in the model, then your validation code becomes much  simpler to write, maintain, and test. The added bonus: simple code  that&amp;#39;s well written &amp;amp; tested is code that&amp;#39;s just going to work.&lt;/p&gt; &lt;h3&gt;&lt;span style="font-weight:bold"&gt;What are data annotations?&lt;/span&gt;&lt;/h3&gt; &lt;p&gt;Data annotations are attribute classes that live in the &lt;strong&gt;System.ComponentModel.DataAnnotations&lt;/strong&gt;  namespace that you can use to apply to (decorate) classes or properties  to enforce pre-defined validation rules. These annotations are  available across various Visual Studio 2010 project types including  &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC, Web Forms, &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; Apps &amp;amp; Web Sites, Dynamic Data &amp;amp;  even non &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; projects like Silverlight &amp;amp; WPF. The same holds  true for the data models; you can use these annotations with POCOs  (plain old CLR objects), EF models, Linq2SQL models, etc... The bottom  line is that you can use data annotations anywhere.&lt;/p&gt; &lt;p&gt;There are several out of the box data annotations to choose from:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Required &lt;/li&gt;&lt;li&gt;Regular Expression &lt;/li&gt;&lt;li&gt;Range &lt;/li&gt;&lt;li&gt;ZipCode &lt;/li&gt;&lt;li&gt;DisplayName &lt;/li&gt;&lt;li&gt;DisplayFormat &lt;/li&gt;&lt;li&gt;Scaffold &lt;/li&gt;&lt;li&gt;DataType &lt;/li&gt;&lt;li&gt;StringLength &lt;/li&gt;&lt;li&gt;A few more... &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Although having this set of built in validations is great, it is a  limited set. Since every business has lots of rules that don&amp;#39;t neatly  fit into this pre-defined set of attributes, what do you do when you  need to use your own logic? It&amp;#39;s quite easy, really - just derive from  any of the inheritable (non sealed) attribute classes in the &lt;strong&gt;System.ComponentModel.DataAnnotations&lt;/strong&gt; namespace, then code your business rules in the derived class methods.&lt;/p&gt; &lt;p&gt;Between the built-in validators and your own custom validation code,  you&amp;#39;re all set with maintainable and clean validation. However, server  side data sanitization &amp;amp; validation is also equally important. An  upcoming blog post will cover creating custom &amp;amp; server side  validation. In the meantime, Brad Wilson from the &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; team has some  great &lt;a href="http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-ajax.html" target="_blank"&gt;blog posts&lt;/a&gt; on &lt;a href="http://bradwilson.typepad.com/blog/2010/10/mvc3-unobtrusive-validation.html" target="_blank"&gt;unobtrusive validation&lt;/a&gt; along with a a great &lt;a title="http://bradwilson.typepad.com/blog/2010/07/service-location-pt1-introduction.html" href="http://bradwilson.typepad.com/blog/2010/07/service-location-pt1-introduction.html" target="_blank"&gt;series&lt;/a&gt; of posts on MVC.&lt;/p&gt;  &lt;p&gt;And it all starts in the data model...&lt;/p&gt; &lt;h3&gt;&lt;span style="font-weight:bold"&gt;Applying data annotations to the model.&lt;/span&gt;&lt;/h3&gt; &lt;p&gt;Suppose a data entry clerk needs to frequently update baked products  with baked and expiration dates, amounts, prices, etc... To accomplish  this in code, start with a basic POCO class to represent a product and  will serve as the data model to meet the needs of this scenario. You&amp;#39;ll  need to do more than just create the class and its members though, and  that&amp;#39;s where annotations come into play.&lt;/p&gt; &lt;p&gt;Data annotations serve as a way to enforce these common validation  scenarios without having to write much code, and more importantly,  without writing repetitive code. Annotations live in one place - the  model, rather than a code behind, web page, controller, or view. This  helps prevent data validation code from turning into Spaghetti# code&lt;sup&gt;[1]&lt;/sup&gt; scattered about your project.&lt;/p&gt; &lt;p&gt;Take a look at the following Product class, complete with a few basic data annotations:&lt;/p&gt; &lt;pre&gt;&lt;span style="font-family:Consolas"&gt;&lt;span&gt;&lt;span style="color:#0000ff"&gt;&lt;span style="font-size:12pt"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12pt"&gt; &lt;span&gt;&lt;span style="color:#0000ff"&gt;class&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#2b91af"&gt;Product&lt;/span&gt;&lt;/span&gt; &lt;br&gt; {&lt;br&gt;    &lt;span&gt;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#0000ff"&gt;int&lt;/span&gt;&lt;/span&gt; Id { &lt;span&gt;&lt;span style="color:#0000ff"&gt;get&lt;/span&gt;&lt;/span&gt;; &lt;span&gt;&lt;span style="color:#0000ff"&gt;set&lt;/span&gt;&lt;/span&gt;; }&lt;br&gt;  &lt;br&gt;    [&lt;span&gt;&lt;span style="color:#2b91af"&gt;DisplayName&lt;/span&gt;&lt;/span&gt;(&lt;span&gt;&lt;span style="color:#a31515"&gt;&amp;quot;Delicious Treat&amp;quot;&lt;/span&gt;&lt;/span&gt;)]&lt;br&gt;    [&lt;span&gt;&lt;span style="color:#2b91af"&gt;Required&lt;/span&gt;&lt;/span&gt;(ErrorMessage = &lt;span&gt;&lt;span style="color:#a31515"&gt;&amp;quot;The product name field is required.&amp;quot;&lt;/span&gt;&lt;/span&gt;)]&lt;br&gt;     &lt;span&gt;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#0000ff"&gt;string&lt;/span&gt;&lt;/span&gt; Name { &lt;span&gt;&lt;span style="color:#0000ff"&gt;get&lt;/span&gt;&lt;/span&gt;; &lt;span&gt;&lt;span style="color:#0000ff"&gt;set&lt;/span&gt;&lt;/span&gt;; }&lt;br&gt;         &lt;br&gt;    [&lt;span&gt;&lt;span style="color:#2b91af"&gt;Required&lt;/span&gt;&lt;/span&gt;(ErrorMessage = &lt;span&gt;&lt;span style="color:#a31515"&gt;&amp;quot;The product description field is required.&amp;quot;&lt;/span&gt;&lt;/span&gt;)]&lt;br&gt;    &lt;span&gt;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#0000ff"&gt;string&lt;/span&gt;&lt;/span&gt; Description { &lt;span&gt;&lt;span style="color:#0000ff"&gt;get&lt;/span&gt;&lt;/span&gt;; &lt;span&gt;&lt;span style="color:#0000ff"&gt;set&lt;/span&gt;&lt;/span&gt;; }&lt;br&gt;         &lt;br&gt;    [&lt;span&gt;&lt;span style="color:#2b91af"&gt;DisplayName&lt;/span&gt;&lt;/span&gt;(&lt;span&gt;&lt;span style="color:#a31515"&gt;&amp;quot;Sale Price&amp;quot;&lt;/span&gt;&lt;/span&gt;)]&lt;br&gt;    [&lt;span&gt;&lt;span style="color:#2b91af"&gt;Required&lt;/span&gt;&lt;/span&gt;(ErrorMessage = &lt;span&gt;&lt;span style="color:#a31515"&gt;&amp;quot;The Sale Price field is required.&amp;quot;&lt;/span&gt;&lt;/span&gt;)]&lt;br&gt;     &lt;span&gt;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#0000ff"&gt;decimal&lt;/span&gt;&lt;/span&gt; Price { &lt;span&gt;&lt;span style="color:#0000ff"&gt;get&lt;/span&gt;&lt;/span&gt;; &lt;span&gt;&lt;span style="color:#0000ff"&gt;set&lt;/span&gt;&lt;/span&gt;; }&lt;br&gt;  &lt;br&gt;    [&lt;span&gt;&lt;span style="color:#2b91af"&gt;DisplayName&lt;/span&gt;&lt;/span&gt;(&lt;span&gt;&lt;span style="color:#a31515"&gt;&amp;quot;Freshly Baked on&amp;quot;&lt;/span&gt;&lt;/span&gt;)]&lt;br&gt;    [&lt;span&gt;&lt;span style="color:#2b91af"&gt;Required&lt;/span&gt;&lt;/span&gt;(ErrorMessage = &lt;span&gt;&lt;span style="color:#a31515"&gt;&amp;quot;The Freshly Baked On field is required.&amp;quot;&lt;/span&gt;&lt;/span&gt;)]     &lt;br&gt;     &lt;span&gt;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#2b91af"&gt;DateTime&lt;/span&gt;&lt;/span&gt; CreationDate { &lt;span&gt;&lt;span style="color:#0000ff"&gt;get&lt;/span&gt;&lt;/span&gt;; &lt;span&gt;&lt;span style="color:#0000ff"&gt;set&lt;/span&gt;&lt;/span&gt;; }&lt;br&gt;  &lt;br&gt;    [&lt;span&gt;&lt;span style="color:#2b91af"&gt;DisplayName&lt;/span&gt;&lt;/span&gt;(&lt;span&gt;&lt;span style="color:#a31515"&gt;&amp;quot;Don&amp;#39;t Sell After&amp;quot;&lt;/span&gt;&lt;/span&gt;)]&lt;br&gt;    [&lt;span&gt;&lt;span style="color:#2b91af"&gt;Required&lt;/span&gt;&lt;/span&gt;(ErrorMessage = &lt;span&gt;&lt;span style="color:#a31515"&gt;&amp;quot;The Expiration Date field is required.&amp;quot;&lt;/span&gt;&lt;/span&gt;)]&lt;br&gt;     &lt;span&gt;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#2b91af"&gt;DateTime&lt;/span&gt;&lt;/span&gt; ExpirationDate { &lt;span&gt;&lt;span style="color:#0000ff"&gt;get&lt;/span&gt;&lt;/span&gt;; &lt;span&gt;&lt;span style="color:#0000ff"&gt;set&lt;/span&gt;&lt;/span&gt;; }&lt;br&gt;  &lt;br&gt;    [&lt;span&gt;&lt;span style="color:#2b91af"&gt;DisplayName&lt;/span&gt;&lt;/span&gt;(&lt;span&gt;&lt;span style="color:#a31515"&gt;&amp;quot;Qty Available&amp;quot;&lt;/span&gt;&lt;/span&gt;)]&lt;br&gt;    [&lt;span&gt;&lt;span style="color:#2b91af"&gt;Required&lt;/span&gt;&lt;/span&gt;(ErrorMessage = &lt;span&gt;&lt;span style="color:#a31515"&gt;&amp;quot;The Qty Available field is required.&amp;quot;&lt;/span&gt;&lt;/span&gt;)]&lt;br&gt;     [&lt;span&gt;&lt;span style="color:#2b91af"&gt;Range&lt;/span&gt;&lt;/span&gt;(0,120)]&lt;br&gt;    &lt;span&gt;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#0000ff"&gt;int&lt;/span&gt;&lt;/span&gt; QtyOnHand { &lt;span&gt;&lt;span style="color:#0000ff"&gt;get&lt;/span&gt;&lt;/span&gt;; &lt;span&gt;&lt;span style="color:#0000ff"&gt;set&lt;/span&gt;&lt;/span&gt;; }&lt;br&gt;  &lt;br&gt;    [&lt;span&gt;&lt;span style="color:#2b91af"&gt;DisplayName&lt;/span&gt;&lt;/span&gt;(&lt;span&gt;&lt;span style="color:#a31515"&gt;&amp;quot;Product Image&amp;quot;&lt;/span&gt;&lt;/span&gt;)]&lt;br&gt;    &lt;span&gt;&lt;span style="color:#0000ff"&gt;public&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span style="color:#0000ff"&gt;string&lt;/span&gt;&lt;/span&gt; ImageName { &lt;span&gt;&lt;span style="color:#0000ff"&gt;get&lt;/span&gt;&lt;/span&gt;; &lt;span&gt;&lt;span style="color:#0000ff"&gt;set&lt;/span&gt;&lt;/span&gt;; }&lt;br&gt; }&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://rachelappel.com/asp-net-mvc/how-data-annotations-for-asp-net-mvc-validation-work/"&gt;Continue to read more...&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-8353295436281867279?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/8353295436281867279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=8353295436281867279' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/8353295436281867279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/8353295436281867279'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2012/01/how-data-annotations-for-aspnet-mvc.html' title='How data annotations for ASP.NET MVC validation work'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-5633106262765226863</id><published>2011-12-21T16:27:00.001+08:00</published><updated>2011-12-21T16:27:15.763+08:00</updated><title type='text'>System.Data.Services.Client.DataServiceResponse 204 when deleting an entity</title><content type='html'>When below code is run&lt;br&gt;&lt;pre style="font-family:Consolas;font-size:15;color:black;background:#eaeaea"&gt;   DeleteObject(entityToDelete);    &lt;span style="color:blue"&gt;var&lt;/span&gt; response = SaveChanges();&lt;/pre&gt;sometimes (perhaps the Delete method was called by a javascript) the response.BatchStatusCode will be -1, but the response.StatusCode will be 204 (that is a successful status).  It is very strange, however the DeleteObject command runs successful and the data is correctly deleted from the database.&lt;br&gt; &lt;br&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc907912.aspx"&gt;Continue to read more...&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-5633106262765226863?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/5633106262765226863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=5633106262765226863' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/5633106262765226863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/5633106262765226863'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/12/systemdataservicesclientdataserviceresp.html' title='System.Data.Services.Client.DataServiceResponse 204 when deleting an entity'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-8989106465108432854</id><published>2011-12-20T17:42:00.001+08:00</published><updated>2011-12-20T17:42:45.923+08:00</updated><title type='text'>How to get most out of Windows Azure Tables</title><content type='html'>&lt;h3&gt;Introduction&lt;/h3&gt; &lt;p&gt;Windows Azure Storage is a scalable and durable cloud storage system  in which applications can store data and access it from anywhere and at  any time. Windows Azure Storage provides a rich set of data  abstractions:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Windows Azure Blob – provides storage for large data items like file and allows you to associate metadata with it.&lt;/li&gt;&lt;li&gt;Windows Azure Drives – provides a durable NTFS volume for applications running in Windows Azure cloud.&lt;/li&gt; &lt;li&gt;Windows Azure Table – provides structured storage for maintaining service state.&lt;/li&gt;&lt;li&gt;Windows Azure Queue – provides asynchronous work dispatch to enable service communication.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;This post will concentrate on Windows Azure Table, which supports  massively scalable tables in the cloud. It can contain billions of  entities and terabytes of data and the system will efficiently scale out  automatically to meet the table's traffic needs. However, the scale you  can achieve depends on the schema you choose and the application's  access patterns. One of the goals of this post is to cover best  practices, tips to follow and pitfalls to avoid that will allow your  application to get the most out of the Table Storage.&lt;/p&gt; &lt;h3&gt;&lt;a name="_Toc200362517"&gt;&lt;/a&gt;&lt;a name="_Toc195982972"&gt;&lt;/a&gt;&lt;a name="_Toc276237430"&gt;&lt;/a&gt;&lt;a name="_Toc231144060"&gt;&lt;/a&gt;&lt;a name="_Toc215250559"&gt;&lt;/a&gt;&lt;a name="_Toc215656941"&gt;&lt;/a&gt;Table Data Model&lt;/h3&gt; &lt;p&gt;To those who are new to Windows Azure Table, we would like to start  off with a quick description of the data model since it is a  non-relational storage system; a few concepts are different from a  conventional database system.&lt;/p&gt; &lt;p&gt;To store data in Windows Azure Storage, you would first need to get an account by signing up &lt;span style="text-decoration:underline"&gt;&lt;a href="https://windows.azure.com/Cloud/Launch/GetStarted.aspx"&gt;here&lt;/a&gt;&lt;/span&gt;  with your live id. Once you have completed registration, you can create  storage and hosted services. The storage service creation process will  request a storage account name and this name becomes part of the host  name you would use to access Windows Azure Storage. The host name for  accessing Windows Azure Table is  &amp;lt;accountName&amp;gt;.&lt;a href="http://table.core.windows.net"&gt;table.core.windows.net&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;While creating the account you also get to choose the geo location in  which the data will be stored. We recommend that you collocate it with  your hosted services. This is important for a couple of reasons – 1)  applications will have fast network access to your data, and 2) the  bandwidth usage in the same geo location is not charged.&lt;/p&gt; &lt;p&gt;Once you have created a storage service account, you will receive two  512 bit secret keys called primary and secondary access keys. Any one  of these secret keys is then used to authenticate user requests to the  storage system by creating a HMAC SHA256 signature for the request. The  signature is passed with each request to authenticate the user requests.  The reason for the two access keys is that it allows you to regenerate  keys by rotating between primary and secondary access keys in your  existing live applications.&lt;/p&gt; &lt;p&gt;Using this storage account, you can create tables that store  structured data. A Windows Azure table is analogous to a table in  conventional database system in that it is a container for storing  structured data. But an important differentiating factor is that it does  not have a schema associated with it. If a fixed schema is required for  an application, the application will have to enforce it at the  application layer. A table is scoped by the storage account and a single  account can have multiple tables.&lt;/p&gt; &lt;p&gt;The basic data item stored in a table is called entity. An entity is a  collection of properties that are name value pairs. Each entity has 3  fixed properties called PartitionKey, RowKey and Timestamp. In addition  to these, a user can store up to 252 additional properties in an entity.  If we were to map this to concepts in a conventional database system,  an entity is analogous to a row and property is analogous to a column.  Figure 1 show the above described concepts in a picture and more details  can be found in our documentation "&lt;a href="http://msdn.microsoft.com/en-us/library/dd179338.aspx"&gt;Understanding the Table Service Data Model&lt;/a&gt;".&lt;/p&gt; &lt;p&gt; &lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-36-55-metablogapi/4061.image_5F00_56983309.png"&gt;&lt;img style="display: inline; border-width: 0px;" title="image" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-01-36-55-metablogapi/8015.image_5F00_thumb_5F00_07B76DAA.png" height="364" width="484" border="0"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a name="_Ref271958258"&gt;&lt;/a&gt;Figure 1 Table Storage Concepts&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://blogs.msdn.com/b/windowsazurestorage/archive/2010/11/06/how-to-get-most-out-of-windows-azure-tables.aspx"&gt;Continue to read more...&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-8989106465108432854?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/8989106465108432854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=8989106465108432854' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/8989106465108432854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/8989106465108432854'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/12/how-to-get-most-out-of-windows-azure.html' title='How to get most out of Windows Azure Tables'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-5769383919476256395</id><published>2011-12-20T16:48:00.001+08:00</published><updated>2011-12-20T16:48:24.882+08:00</updated><title type='text'>ASP MVC – Delete confirmation with Ajax &amp; jQuery UI Dialog</title><content type='html'>&lt;p&gt;In this post I will show you how I implemented a delete confirmation implementation for MVC using the &lt;a href="http://jqueryui.com/demos/dialog/" target="_blank"&gt;jQuery UI Dialog&lt;/a&gt;  control. I have done this by adding virtually no customization to the  templates generated ASP.Net MVC, and aiming the functionality to be as  reusable as possible.&lt;/p&gt; &lt;h2&gt;Our Objective&lt;/h2&gt; &lt;p&gt;When a user clicks the "Delete" button on a list (or elsewhere), we  are going to show a confirmation dialog. If the user confirms, the  record will be deleted. If he/she cancels, no action will be taken. In  essence, this is what we are trying to do:&lt;/p&gt; &lt;p&gt;&lt;img src="http://ricardocovo.files.wordpress.com/2010/09/090210_1543_aspmvcdelet12.png?w=640" alt=""&gt;&lt;/p&gt; &lt;h2&gt;&lt;span id="more-44"&gt;&lt;/span&gt;Requirements&lt;/h2&gt; &lt;p&gt;To implement this solution you will need to have the &lt;a href="http://jquery.com/" target="_blank"&gt;jQuery&lt;/a&gt; and &lt;a href="http://jqueryui.com/" target="_blank"&gt;jQueryUI&lt;/a&gt; libraries.&lt;/p&gt; &lt;h2&gt;Approach&lt;/h2&gt; &lt;h4&gt;1. Modify the repeater.&lt;/h4&gt; We will start by reviewing the code for a strongly-typed...&lt;br&gt;&lt;br&gt;&lt;a href="http://ricardocovo.wordpress.com/2010/09/02/asp-mvc-delete-confirmation-with-ajax-jquery-ui-dialog/"&gt;Continue to read more...&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-5769383919476256395?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/5769383919476256395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=5769383919476256395' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/5769383919476256395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/5769383919476256395'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/12/asp-mvc-delete-confirmation-with-ajax.html' title='ASP MVC – Delete confirmation with Ajax &amp; jQuery UI Dialog'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-6149603247905547422</id><published>2011-12-16T16:00:00.001+08:00</published><updated>2011-12-16T16:00:04.321+08:00</updated><title type='text'>How to use Moq to mock a MembershipUser?</title><content type='html'>&lt;p style="margin-top:0px;margin-right:0px;margin-bottom:1em;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font-size:14px;vertical-align:baseline;background-image:initial;background-color:rgb(255,255,255);clear:both;word-wrap:break-word;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;line-height:18px;text-align:left"&gt; I am having problems with moq again and not sure what I did wrong this time.&lt;/p&gt;&lt;p style="margin-top:0px;margin-right:0px;margin-bottom:1em;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font-size:14px;vertical-align:baseline;background-image:initial;background-color:rgb(255,255,255);clear:both;word-wrap:break-word;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;line-height:18px;text-align:left"&gt; So I am going through the debugger step by step and I notice even though in my Mock I set&lt;/p&gt;&lt;p style="margin-top:0px;margin-right:0px;margin-bottom:1em;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font-size:14px;vertical-align:baseline;background-image:initial;background-color:rgb(255,255,255);clear:both;word-wrap:break-word;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;line-height:18px;text-align:left"&gt; ResetPassword to return &amp;quot;hey it does not seem to&lt;/p&gt;&lt;p style="margin-top:0px;margin-right:0px;margin-bottom:1em;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font-size:14px;vertical-align:baseline;background-image:initial;background-color:rgb(255,255,255);clear:both;word-wrap:break-word;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;line-height:18px;text-align:left"&gt; Here is part of my unit test:&lt;/p&gt;&lt;pre class="lang-cs prettyprint" style="margin-top:0px;margin-bottom:10px;padding-top:5px;padding-right:5px;padding-bottom:5px;padding-left:5px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font-size:14px;vertical-align:baseline;background-image:initial;background-color:rgb(255,255,255);font-family:Consolas,Menlo,Monaco,&amp;#39;Lucida Console&amp;#39;,&amp;#39;Liberation Mono&amp;#39;,&amp;#39;DejaVu Sans Mono&amp;#39;,&amp;#39;Bitstream Vera Sans Mono&amp;#39;,&amp;#39;Courier New&amp;#39;,monospace,serif;overflow-x:auto;overflow-y:auto;width:auto;max-height:600px;line-height:18px;text-align:left"&gt; &lt;code style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,&amp;#39;Lucida Console&amp;#39;,&amp;#39;Liberation Mono&amp;#39;,&amp;#39;DejaVu Sans Mono&amp;#39;,&amp;#39;Bitstream Vera Sans Mono&amp;#39;,&amp;#39;Courier New&amp;#39;,monospace,serif"&gt;&lt;span class="kwd" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(0,0,139)"&gt;var&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt; membershipMock &lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;=&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt; &lt;/span&gt;&lt;span class="kwd" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(0,0,139)"&gt;new&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt; &lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;Mock&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;&amp;lt;&lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;MembershipProvider&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;&amp;gt;();&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;&lt;br&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt;           &lt;/span&gt;&lt;span class="kwd" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(0,0,139)"&gt;var&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt; user &lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;=&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt; &lt;/span&gt;&lt;span class="kwd" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(0,0,139)"&gt;new&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt; &lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;Mock&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;&amp;lt;&lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;MembershipUser&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;&amp;gt;();&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;&lt;br&gt; &lt;br&gt;           user&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;SetupGet&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;(&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;x &lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt; x&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;Email&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;).&lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;Returns&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;(&lt;/span&gt;&lt;span class="str" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(128,0,0)"&gt;&amp;quot;Email&amp;quot;&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;);&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;&lt;br&gt;            user&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;Setup&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;(&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;x &lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt; x&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;ResetPassword&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;(&lt;/span&gt;&lt;span class="str" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(128,0,0)"&gt;&amp;quot;test&amp;quot;&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;)).&lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;Returns&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;(&lt;/span&gt;&lt;span class="str" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(128,0,0)"&gt;&amp;quot;hey&amp;quot;&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;);&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;&lt;br&gt; &lt;br&gt;           membershipMock&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;Setup&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;(&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;m &lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt; m&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;GetUser&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;(&lt;/span&gt;&lt;span class="str" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(128,0,0)"&gt;&amp;quot;chobo2&amp;quot;&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;,&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt; &lt;/span&gt;&lt;span class="kwd" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(0,0,139)"&gt;false&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;)).&lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;Returns&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;(&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;user&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;Object&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;);&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;&lt;br&gt; &lt;br&gt;&lt;br&gt;&lt;br&gt;           authentication&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;Authenticate&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;Provider&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt; &lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;=&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt; membershipMock&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;Object&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;;&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;&lt;br&gt; &lt;br&gt;           &lt;/span&gt;&lt;span class="com" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:gray"&gt;// Act&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;&lt;br&gt; &lt;br&gt;           &lt;/span&gt;&lt;span class="kwd" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(0,0,139)"&gt;var&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt; actual &lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;=&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt; authentication&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;PasswordRecoveryStep2&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;(&lt;/span&gt;&lt;span class="str" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(128,0,0)"&gt;&amp;quot;chobo2&amp;quot;&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;,&lt;/span&gt;&lt;span class="str" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(128,0,0)"&gt;&amp;quot;2z&amp;quot;&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;);&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;&lt;br&gt; &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style="margin-top:0px;margin-right:0px;margin-bottom:1em;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font-size:14px;vertical-align:baseline;background-image:initial;background-color:rgb(255,255,255);clear:both;word-wrap:break-word;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;line-height:18px;text-align:left"&gt; My code&lt;/p&gt;&lt;pre class="lang-cs prettyprint" style="margin-top:0px;margin-bottom:10px;padding-top:5px;padding-right:5px;padding-bottom:5px;padding-left:5px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font-size:14px;vertical-align:baseline;background-image:initial;background-color:rgb(255,255,255);font-family:Consolas,Menlo,Monaco,&amp;#39;Lucida Console&amp;#39;,&amp;#39;Liberation Mono&amp;#39;,&amp;#39;DejaVu Sans Mono&amp;#39;,&amp;#39;Bitstream Vera Sans Mono&amp;#39;,&amp;#39;Courier New&amp;#39;,monospace,serif;overflow-x:auto;overflow-y:auto;width:auto;max-height:600px;line-height:18px;text-align:left"&gt; &lt;code style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:rgb(238,238,238);font-family:Consolas,Menlo,Monaco,&amp;#39;Lucida Console&amp;#39;,&amp;#39;Liberation Mono&amp;#39;,&amp;#39;DejaVu Sans Mono&amp;#39;,&amp;#39;Bitstream Vera Sans Mono&amp;#39;,&amp;#39;Courier New&amp;#39;,monospace,serif"&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;  &lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;MembershipUser&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt; userName &lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;=&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt; &lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;Provider&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;GetUser&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;(&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;user&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;,&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt; &lt;/span&gt;&lt;span class="kwd" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(0,0,139)"&gt;false&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;);&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;&lt;br&gt; &lt;br&gt;                &lt;/span&gt;&lt;span class="kwd" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(0,0,139)"&gt;string&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt; newPassword &lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;=&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt; userName&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;ResetPassword&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;(&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;securityAnswer&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;);&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;&lt;br&gt; &lt;br&gt; &lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;Mail&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;To&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt; &lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;=&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt; userName&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent;color:rgb(43,145,175)"&gt;Email&lt;/span&gt;&lt;span class="pun" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;;&lt;/span&gt;&lt;span class="pln" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;vertical-align:baseline;background-image:initial;background-color:transparent"&gt;&lt;br&gt; &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style="margin-top:0px;margin-right:0px;margin-bottom:1em;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font-size:14px;vertical-align:baseline;background-image:initial;background-color:rgb(255,255,255);clear:both;word-wrap:break-word;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;line-height:18px;text-align:left"&gt; Provider is a property that gets set with the mockup object as you and see. The email part gets filled fine. Just ResetPassword does not return what it should. It just give me null.&lt;/p&gt;&lt;p style="margin-top:0px;margin-right:0px;margin-bottom:1em;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font-size:14px;vertical-align:baseline;background-image:initial;background-color:rgb(255,255,255);clear:both;word-wrap:break-word;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;line-height:18px;text-align:left"&gt; Thanks&lt;/p&gt;&lt;p style="margin-top:0px;margin-right:0px;margin-bottom:1em;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;border-top-width:0px;border-right-width:0px;border-bottom-width:0px;border-left-width:0px;border-style:initial;border-color:initial;font-size:14px;vertical-align:baseline;background-image:initial;background-color:rgb(255,255,255);clear:both;word-wrap:break-word;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;line-height:18px;text-align:left"&gt; &lt;br&gt;&lt;/p&gt;&lt;div&gt;&lt;a href="http://stackoverflow.com/questions/1054871/what-am-i-doing-wrong-this-time-with-moq"&gt;Continue to read more...&lt;/a&gt;&lt;br&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-6149603247905547422?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/6149603247905547422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=6149603247905547422' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/6149603247905547422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/6149603247905547422'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/12/how-to-use-moq-to-mock-membershipuser.html' title='How to use Moq to mock a MembershipUser?'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-6813870438237152404</id><published>2011-12-15T15:11:00.001+08:00</published><updated>2011-12-15T15:11:12.954+08:00</updated><title type='text'>Validating with a Service Layer (C#)</title><content type='html'>&lt;div class="details"&gt;By Stephen Walther&lt;span class="separator"&gt;|&lt;/span&gt;March 2, 2009&lt;/div&gt;&lt;div class="important important-box-article"&gt;&lt;p&gt;Learn  how to move your validation logic out of your controller actions and  into a separate service layer. In this tutorial, Stephen Walther  explains how you can maintain a sharp separation of concerns by  isolating your service layer from your controller layer.&lt;/p&gt;&lt;/div&gt;&lt;p&gt;The  goal of this tutorial is to describe one method of performing  validation in an &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC application. In this tutorial, you learn  how to move your validation logic out of your controllers and into a  separate service layer.&lt;/p&gt; &lt;h2&gt;Separating Concerns&lt;/h2&gt; &lt;p&gt;When you build an &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC application, you should not place your  database logic inside your controller actions. Mixing your database and  controller logic makes your application more difficult to maintain over  time. The recommendation is that you place all of your database logic in  a separate repository layer.&lt;/p&gt; &lt;p&gt;For example, Listing 1 contains a simple repository named the  ProductRepository. The product repository contains all of the data  access code for the application. The listing also includes the  IProductRepository interface that the product repository implements.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Listing 1 -- Models\ProductRepository.cs&lt;/strong&gt;&lt;/p&gt; &lt;pre class="code_block prettyprint"&gt;&lt;span class="kwd"&gt;using&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;System&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;Collections&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;Generic&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt; &lt;/span&gt;&lt;span class="kwd"&gt;using&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;System&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;Linq&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span class="kwd"&gt;namespace&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;MvcApplication1&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;Models&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt; &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;    &lt;/span&gt;&lt;span class="kwd"&gt;public&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;class&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;ProductRepository&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="pun"&gt;:&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;MvcApplication1&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;Models&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;IProductRepository&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;     &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;        &lt;/span&gt;&lt;span class="kwd"&gt;private&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;ProductDBEntities&lt;/span&gt;&lt;span class="pln"&gt; _entities &lt;/span&gt;&lt;span class="pun"&gt;=&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;new&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;ProductDBEntities&lt;/span&gt;&lt;span class="pun"&gt;();&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt; &lt;br&gt;&lt;br&gt;        &lt;/span&gt;&lt;span class="kwd"&gt;public&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;IEnumerable&lt;/span&gt;&lt;span class="pun"&gt;&amp;lt;&lt;/span&gt;&lt;span class="typ"&gt;Product&lt;/span&gt;&lt;span class="pun"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;ListProducts&lt;/span&gt;&lt;span class="pun"&gt;()&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;         &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;            &lt;/span&gt;&lt;span class="kwd"&gt;return&lt;/span&gt;&lt;span class="pln"&gt; _entities&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;ProductSet&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;ToList&lt;/span&gt;&lt;span class="pun"&gt;();&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;         &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;        &lt;/span&gt;&lt;span class="kwd"&gt;public&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;bool&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;CreateProduct&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="typ"&gt;Product&lt;/span&gt;&lt;span class="pln"&gt; productToCreate&lt;/span&gt;&lt;span class="pun"&gt;)&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;         &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;            &lt;/span&gt;&lt;span class="kwd"&gt;try&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;            &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;                _entities&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;AddToProductSet&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="pln"&gt;productToCreate&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;                 _entities&lt;/span&gt;&lt;span class="pun"&gt;.&lt;/span&gt;&lt;span class="typ"&gt;SaveChanges&lt;/span&gt;&lt;span class="pun"&gt;();&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;                &lt;/span&gt;&lt;span class="kwd"&gt;return&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;true&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;             &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;            &lt;/span&gt;&lt;span class="kwd"&gt;catch&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;            &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;                &lt;/span&gt;&lt;span class="kwd"&gt;return&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;false&lt;/span&gt;&lt;span class="pun"&gt;;&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;             &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;        &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;    &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;&lt;br&gt;    &lt;/span&gt;&lt;span class="kwd"&gt;public&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="kwd"&gt;interface&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;IProductRepository&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;     &lt;/span&gt;&lt;span class="pun"&gt;{&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;        &lt;/span&gt;&lt;span class="kwd"&gt;bool&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;CreateProduct&lt;/span&gt;&lt;span class="pun"&gt;(&lt;/span&gt;&lt;span class="typ"&gt;Product&lt;/span&gt;&lt;span class="pln"&gt; productToCreate&lt;/span&gt;&lt;span class="pun"&gt;);&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;         &lt;/span&gt;&lt;span class="typ"&gt;IEnumerable&lt;/span&gt;&lt;span class="pun"&gt;&amp;lt;&lt;/span&gt;&lt;span class="typ"&gt;Product&lt;/span&gt;&lt;span class="pun"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pln"&gt; &lt;/span&gt;&lt;span class="typ"&gt;ListProducts&lt;/span&gt;&lt;span class="pun"&gt;();&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;     &lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;span class="pun"&gt;}&lt;/span&gt;&lt;span class="pln"&gt;&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/pre&gt; &lt;p&gt;The controller in Listing 2 uses the repository layer in both its  Index() and Create() actions. Notice that this controller does not  contain any database logic. Creating a repository layer enables you to  maintain a clean separation of concerns. Controllers are responsible for  application flow control logic and the repository is responsible for  data access logic.&lt;/p&gt;&lt;br&gt;&lt;a href="http://www.asp.net/mvc/tutorials/older-versions/models-%28data%29/validating-with-a-service-layer-cs"&gt;Continue to read more...&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-6813870438237152404?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/6813870438237152404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=6813870438237152404' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/6813870438237152404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/6813870438237152404'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/12/validating-with-service-layer-c.html' title='Validating with a Service Layer (C#)'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-350401237466365924</id><published>2011-12-14T15:15:00.001+08:00</published><updated>2011-12-14T15:15:54.613+08:00</updated><title type='text'>MVC 3 and Remote Validation</title><content type='html'>                                              &lt;h2&gt;&lt;/h2&gt;         &lt;p&gt;             &lt;/p&gt;&lt;div style="float:right;margin:5px 15px 5px 0;padding:2px"&gt;&lt;a href="http://twitter.com/share" class="twitter-share-button"&gt;Tweet&lt;/a&gt;&lt;/div&gt;&lt;p&gt;I must admit, I&amp;#39;ve been a bit of a slow starter when it comes to &lt;strong&gt;Asp.net MVC 3&lt;/strong&gt;. I am an avid fan of &lt;strong&gt;MVC 2&lt;/strong&gt; and haven&amp;#39;t really taken the time to look at &lt;strong&gt;MVC 3&lt;/strong&gt;  until now. Wow - I am impressed though! There are a load of new  features that have been added and the product just feels like it is  getting better and better. &lt;/p&gt;  &lt;p align="center"&gt;&lt;img src="http://c512911.r11.cf3.rackcdn.com/RemoteValidation/asp-net-mvc-3.gif" alt="MVC 3" title=""&gt;&lt;/p&gt;  &lt;p&gt;While I was browsing the &lt;a href="http://www.asp.net/mvc/mvc3"&gt;Asp.net MVC 3 Home page&lt;/a&gt; and reading through the feature list, one of the things that caught my eye was the new &lt;strong&gt;Remote Validation&lt;/strong&gt;  support that has been added.  Remote Validation is the ability to call a custom server-side validation  method via the client-side. This is very handy if you want real time  validation without posting your form to validate the fields and see the  results. &lt;/p&gt;  &lt;p&gt;One very useful real world example where you could apply &lt;strong&gt;Remote Validation&lt;/strong&gt;,  is the ability to check if a Username already exists when registering a  user. Another example could also be checking if a password meets a  certain complexity requirement. &lt;/p&gt;  &lt;p&gt;Let&amp;#39;s take a look at the example of checking if a username exists.&lt;/p&gt;  &lt;p&gt;Firstly create the Model that we are going to use and validate. You need to add the RemoteAttribute above the UserName field. The  parameters that are passed in are the ActionName and the Controller  Name. This is where our custom validation method is going to reside.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://c512911.r11.cf3.rackcdn.com/RemoteValidation/MVC-Model.png" alt="MVC Model" title=""&gt;&lt;/p&gt;  &lt;p&gt;Then add the View that you would like to validate.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://c512911.r11.cf3.rackcdn.com/RemoteValidation/MVC-View.png" alt="MVC View" title=""&gt;&lt;/p&gt;&lt;br&gt;&lt;a href="http://deanhume.com/Home/BlogPost/mvc-3-and-remote-validation/51"&gt;Continue reading...&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-350401237466365924?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/350401237466365924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=350401237466365924' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/350401237466365924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/350401237466365924'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/12/mvc-3-and-remote-validation.html' title='MVC 3 and Remote Validation'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-4328043786126474127</id><published>2011-12-14T14:32:00.001+08:00</published><updated>2011-12-14T14:32:36.850+08:00</updated><title type='text'>How to: Implement Remote Validation in ASP.NET MVC</title><content type='html'>&lt;div class="introduction"&gt;&lt;p&gt;&lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC 3 provides a mechanism that can  make a remote server call in order to validate a form field without  posting the entire form to the server. This is useful when you have a  field that cannot be validated on the client and is therefore likely to  fail validation when the form is submitted. For example, many Web sites  require you to register using a unique user ID. For popular sites, it  can take several attempts to find a user ID that is not already taken,  and the user&amp;#39;s input is not considered valid until all fields are valid,  including the user ID. Being able to validate remotely saves the user  from having to submit the form several times before finding an available  ID.&lt;/p&gt;&lt;p&gt;The following illustration shows a new-user form that is  displaying an error message that indicates that the requested ID is not  available. The ID that users enter is validated as soon as they leave  the &lt;span class="label"&gt;User Name&lt;/span&gt; text box (that is, when the text box loses focus). Validation does not require a full postback.&lt;/p&gt;&lt;img id="NDP_RemoteUID" alt="Remote UID Validation" src="http://i.msdn.microsoft.com/dynimg/IC382123.png" title="Remote UID Validation"&gt;&lt;p&gt; As  an example of remote validation, this topic shows how to implement a  form similar to the one in the previous illustration. The example can  serve as a starting point to create your application-specific remote  validation.&lt;/p&gt;&lt;p&gt;A Visual Studio starter project and a completed solution project are available to accompany this topic: &lt;a href="http://go.microsoft.com/fwlink/?linkid=207672"&gt;Download&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;h3 class="procedureSubHeading"&gt; Creating the Starter Project&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;p&gt;Create a new &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC 3 project with Razor syntax by following the instructions in &lt;a href="http://www.asp.net/mvc/tutorials/creating-a-mvc-3-application-with-razor-and-unobtrusive-javascript"&gt;Creating a MVC 3 Application with Razor and Unobtrusive JavaScript&lt;/a&gt;. Alternatively, open the &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC Web application starter project that is included in the download listed earlier. &lt;/p&gt; &lt;/li&gt;&lt;li&gt;&lt;p&gt;Run the application and click the &lt;span class="label"&gt;Create New&lt;/span&gt; link.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg508808%28v=vs.98%29.aspx"&gt;Continue to read more...&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-4328043786126474127?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/4328043786126474127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=4328043786126474127' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/4328043786126474127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/4328043786126474127'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/12/how-to-implement-remote-validation-in.html' title='How to: Implement Remote Validation in ASP.NET MVC'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-2620034742913847801</id><published>2011-12-14T11:29:00.001+08:00</published><updated>2011-12-14T11:29:04.468+08:00</updated><title type='text'>ASP.NET MVC Service vs Repository</title><content type='html'>What is the difference between a service layer and a repository?  I have  worked through a lot of demo MVC apps and most of them have just  repositories.  And some have a mixture of both.  When do you use just  repositories and when do you use services / or both?&lt;br&gt;&lt;br&gt;&lt;a href="http://stackoverflow.com/questions/4368134/asp-net-mvc-service-vs-repository"&gt;Continue to read more...&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-2620034742913847801?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/2620034742913847801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=2620034742913847801' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/2620034742913847801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/2620034742913847801'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/12/aspnet-mvc-service-vs-repository.html' title='ASP.NET MVC Service vs Repository'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-3825130071790837722</id><published>2011-12-13T17:41:00.001+08:00</published><updated>2011-12-13T17:41:26.775+08:00</updated><title type='text'>Class-Level Model Validation with EF Code First and ASP.NET MVC 3</title><content type='html'>&lt;font face="arial"&gt;&lt;p&gt;Earlier this week the data team &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/08/announcing-entity-framework-code-first-ctp5-release.aspx" target="_blank"&gt;released the CTP5 build&lt;/a&gt; of the new Entity Framework Code-First library.  &lt;/p&gt;     &lt;p&gt;In my &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/08/announcing-entity-framework-code-first-ctp5-release.aspx" target="_blank"&gt;blog post&lt;/a&gt;  a few days ago I talked about a few of the improvements introduced with  the new CTP5 build.  Automatic support for enforcing DataAnnotation  validation attributes on models was one of the improvements I  discussed.  It provides a pretty easy way to enable property-level  validation logic within your model layer.&lt;/p&gt;    &lt;p&gt;You can apply  validation attributes like [Required], [Range], and [RegularExpression] –  all of which are built-into .NET 4 – to your model classes in order to  enforce that the model properties are valid before they are persisted to  a database.  You can also create your own custom validation attributes  (like this cool &lt;a href="http://benjii.me/2010/11/credit-card-validator-attribute-for-asp-net-mvc-3/" target="_blank"&gt;[CreditCard] validator&lt;/a&gt;)  and have them be automatically enforced by EF Code First as well.  This  provides a really easy way to validate property values on your models.   I showed some code samples of this in action in my &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/08/announcing-entity-framework-code-first-ctp5-release.aspx" target="_blank"&gt;previous post&lt;/a&gt;.&lt;/p&gt;    &lt;h3&gt;&lt;u&gt;Class-Level Model Validation using IValidatableObject&lt;/u&gt;&lt;/h3&gt;     &lt;p&gt;DataAnnotation attributes provides an easy way to validate individual property values on your model classes.  &lt;/p&gt;    &lt;p&gt;Several people have asked - "Does EF Code First also support a way to implement &lt;em&gt;class-level&lt;/em&gt; validation methods on model objects, for validation rules than need to &lt;em&gt;span multiple property values&lt;/em&gt;?"  It does – and one easy way you can enable this is by implementing the IValidatableObject interface on your model classes.&lt;/p&gt;     &lt;p&gt;&lt;u&gt;IValidatableObject.Validate() Method&lt;/u&gt;&lt;/p&gt;    &lt;p&gt;Below  is an example of using the IValidatableObject interface (which is  built-into .NET 4 within the System.ComponentModel.DataAnnotations  namespace) to implement two custom validation rules on a Product model  class.  The two rules ensure that:&lt;/p&gt;    &lt;ul&gt;&lt;li&gt;New units can't be ordered if the Product is in a discontinued state &lt;/li&gt;&lt;li&gt;New units can't be ordered if there are already more than 100 units in stock &lt;/li&gt;&lt;/ul&gt;    &lt;p&gt; We  will enforce these business rules by implementing the  IValidatableObject interface on our Product class, and by implementing  its Validate() method like so:&lt;/p&gt;    &lt;p&gt;&lt;a href="http://weblogs.asp.net/blogs/scottgu/image_3D493906.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" alt="image" src="http://weblogs.asp.net/blogs/scottgu/image_thumb_223069F8.png" border="0" height="399" width="808"&gt;&lt;/a&gt; &lt;/p&gt; &lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2010/12/10/class-level-model-validation-with-ef-code-first-and-asp-net-mvc-3.aspx"&gt;Continue to read more...&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-3825130071790837722?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/3825130071790837722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=3825130071790837722' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/3825130071790837722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/3825130071790837722'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/12/class-level-model-validation-with-ef.html' title='Class-Level Model Validation with EF Code First and ASP.NET MVC 3'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-1302055990771488428</id><published>2011-11-03T17:46:00.001+08:00</published><updated>2011-11-03T17:46:43.882+08:00</updated><title type='text'>Implementing the Repository and Unit of Work Patterns in an ASP.NET MVC Application</title><content type='html'>&lt;p&gt;The repository and unit of work patterns are intended to create an  abstraction layer between the data access layer and the business logic  layer of an application. Implementing these patterns can help insulate  your application from changes in the data store and can facilitate  automated unit testing or test-driven development (TDD).&lt;/p&gt; &lt;p&gt;In this tutorial you&amp;#39;ll implement a repository class for each entity type. For the &lt;code&gt;Student&lt;/code&gt;  entity type you&amp;#39;ll create a repository interface and a repository  class. When you instantiate the repository in your controller, you&amp;#39;ll  use the interface so that the controller will accept a reference to any  object that implements the repository interface. When the controller  runs under a web server, it receives a repository that works with the  Entity Framework. When the controller runs under a unit test class, it  receives a repository that works with data stored in a way that you can  easily manipulate for testing, such as an in-memory collection.&lt;/p&gt; &lt;p&gt;Later in the tutorial you&amp;#39;ll use multiple repositories and a unit of work class for the &lt;code&gt;Course&lt;/code&gt; and &lt;code&gt;Department&lt;/code&gt; entity types in the &lt;code&gt;Course&lt;/code&gt;  controller. The unit of work class coordinates the work of multiple  repositories by creating a single database context class shared by all  of them. If you wanted to be able to perform automated unit testing,  you&amp;#39;d create and use interfaces for these classes in the same way you  did for the &lt;code&gt;Student&lt;/code&gt; repository. However, to keep the tutorial simple, you&amp;#39;ll create and use these classes without interfaces.&lt;/p&gt; &lt;p&gt;The following illustration shows one way to conceptualize the  relationships between the controller and context classes compared to not  using the repository or unit of work pattern at all.&lt;/p&gt; &lt;p&gt;&lt;img src="http://i1.asp.net/umbraco-media/897796/Windows-Live-Writer_8c4963ba1fa3_CE3B_Repository_pattern_diagram_1df790d3-bdf2-4c11-9098-946ddd9cd884.png" alt="Repository_pattern_diagram" style="background-image: none; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" border="0" height="615" width="635"&gt;&lt;/p&gt; &lt;br&gt;&lt;a href="http://www.asp.net/entity-framework/tutorials/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application"&gt;Continue to read more...&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-1302055990771488428?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/1302055990771488428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=1302055990771488428' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/1302055990771488428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/1302055990771488428'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/11/implementing-repository-and-unit-of.html' title='Implementing the Repository and Unit of Work Patterns in an ASP.NET MVC Application'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-947498323200905874</id><published>2011-11-03T12:09:00.001+08:00</published><updated>2011-11-03T12:13:28.541+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lookup'/><category scheme='http://www.blogger.com/atom/ns#' term='Drill down'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><title type='text'>Modal popup search window to replace dropdown control ASP.NET</title><content type='html'>&lt;div class="post-text"&gt;I'm looking for the simplest way of popping a modal search  window on top of an &lt;a href="http://asp.net/"&gt;ASP.NET&lt;/a&gt; 3.5 application to look up values for a  field. I've got a screen for users to add courses; users need to be able  to choose an instructor by searching for instructors in a popup.&lt;br /&gt;So - the popup would have a textbox and a gridview with results;  clicking the "choose" button in a result would populate the instructor  field on the calling form.&lt;br /&gt;What's the simplest way to achieve this?&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://stackoverflow.com/questions/836934/modal-popup-search-window-to-replace-dropdown-control-asp-net"&gt;Continue to read more...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-947498323200905874?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/947498323200905874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=947498323200905874' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/947498323200905874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/947498323200905874'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/11/modal-popup-search-window-to-replace.html' title='Modal popup search window to replace dropdown control ASP.NET'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-6993029639044466733</id><published>2011-10-17T18:01:00.001+08:00</published><updated>2011-10-17T18:01:17.986+08:00</updated><title type='text'>asp.net mvc azure “Error accessing the data store!”</title><content type='html'>&lt;p&gt;I&amp;#39;ve started using the AspProviders code to store my session data in my table storage.&lt;/p&gt;  &lt;p&gt;I&amp;#39;m sporadically getting the following error:&lt;/p&gt;&lt;p&gt;  &lt;/p&gt;&lt;blockquote&gt;  &lt;p&gt;Description: Exception of type &amp;#39;System.Web.HttpException&amp;#39; was thrown.  INNER_EXCEPTION:Error accessing the data store! INNER_EXCEPTION:An  error occurred while processing this request. INNER_EXCEPTION:  &lt;code&gt;ConditionNotMet&lt;/code&gt;  The condition specified using HTTP conditional header(s) is not met.  RequestId:0c4239cc-41fb-42c5-98c5-7e9cc22096af  Time:2010-10-15T04:28:07.0726801Z  StackTrace: System.Web.SessionState.SessionStateModule.EndAcquireState(IAsyncResult  ar) System.Web.HttpApplication.AsyncEventExecutionStep.OnAsyncEventCompletion(IAsyncResult  ar) INNER_EXCEPTION: Microsoft.Samples.ServiceHosting.AspProviders.TableStorageSessionStateProvider.ReleaseItemExclusive(HttpContext  context, String id, Object lockId) in  \Azure\AspProviders\TableStorageSessionStateProvider.cs:line 484 System.Web.SessionState.SessionStateModule.GetSessionStateItem() System.Web.SessionState.SessionStateModule.PollLockedSessionCallback(Object  state) INNER_EXCEPTION: Microsoft.WindowsAzure.StorageClient.Tasks.Task&lt;code&gt;1.get_Result() Microsoft.WindowsAzure.StorageClient.Tasks.Task&lt;/code&gt;1.ExecuteAndWait() Microsoft.WindowsAzure.StorageClient.TaskImplHelper.ExecuteImplWithRetry[T](Func`2  impl, RetryPolicy policy) Microsoft.Samples.ServiceHosting.AspProviders.TableStorageSessionStateProvider.ReleaseItemExclusive(TableServiceContext  svc, SessionRow session, Object lockId) in  \Azure\AspProviders\TableStorageSessionStateProvider.cs:line 603 Microsoft.Samples.ServiceHosting.AspProviders.TableStorageSessionStateProvider.ReleaseItemExclusive(HttpContext  context, String id, Object lockId) in  \Azure\AspProviders\TableStorageSessionStateProvider.cs:line 480  INNER_EXCEPTION: System.Data.Services.Client.DataServiceContext.SaveResult.d__1e.MoveNext() &lt;/p&gt;&lt;/blockquote&gt;  &lt;p&gt;Anyone run into this?  The only useful information I&amp;#39;ve found is this, which I&amp;#39;m hesitant to do:&lt;/p&gt;&lt;br&gt;&lt;br&gt;&lt;a href="http://stackoverflow.com/questions/3940891/asp-net-mvc-azure-error-accessing-the-data-store/3952346#3952346"&gt;Continue to read more...&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-6993029639044466733?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/6993029639044466733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=6993029639044466733' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/6993029639044466733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/6993029639044466733'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/10/aspnet-mvc-azure-error-accessing-data.html' title='asp.net mvc azure “Error accessing the data store!”'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-166638104939891196</id><published>2011-10-13T15:22:00.001+08:00</published><updated>2011-10-13T15:22:36.453+08:00</updated><title type='text'>Agile Project Management for Everybody</title><content type='html'>&lt;p id="ctl00_ContentPlaceHolder_ctl11_Deck" class="deck"&gt;For teams using  an agile software development methodology, Team Foundation Server 2010  offers new tools to help you easily visualize the backlog, the workload  per iteration and the workload per developer. Jeff Levinson guides you  through the new features.&lt;/p&gt;                  &lt;ul id="ctl00_ContentPlaceHolder_ctl11_ByAuthor" class="byline"&gt;&lt;li class="author"&gt;By &lt;a href="http://visualstudiomagazine.com/forms/emailtoauthor.aspx?AuthorItem=%7BD294BA9B-9C8A-4975-97C0-80C414473363%7D&amp;amp;ArticleItem=%7B9EB1FAA9-C0CF-4A90-A6BE-813C75AE7CC1%7D"&gt;Jeff Levinson &lt;/a&gt;&lt;/li&gt; &lt;li class="date"&gt;03/30/2010&lt;/li&gt;&lt;/ul&gt;          		  &lt;p&gt;For those teams using an agile software development methodology, Team  Foundation Server 2010 offers new tools to help you easily visualize  the backlog, workload per iteration and workload per developer. Teams  can quickly and easily break down the work and make adjustments as  needed and get feedback immediately. Using Microsoft Excel to manipulate  the data and TFS to store and report on the data, the new tools will  help teams be faster and more accurate in their planning stages and  helps them better keep track of their progress during iterations.&lt;/p&gt;    &lt;p&gt;Team Foundation Server 2010 includes two Excel workbooks to help you  with project management: the Product Planning workbook and the Iteration  Backlog workbook. These files are part of the MSF for Agile 5.0 process  template. They are located on the SharePoint site and so are accessible  from the Team Explorer Documents node and are specifically found in  Shared Documents (Product Planning) and Shared Documents\Iteration 1  (Iteration Backlog). The templates these are based on are both stored in  Samples and Templates\Project Management on the SharePoint site. I&amp;#39;ll  discuss the usage of these templates towards the end of the article.&lt;/p&gt; &lt;div class="ad"&gt;  &lt;noscript&gt;  &lt;/noscript&gt; &lt;/div&gt; &lt;br&gt;   &lt;p&gt;The process for using the workbooks is shown in Figure 1.&lt;/p&gt;    &lt;table width="305" align="center" border="0" cellpadding="2" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt;  &lt;td width="305" align="center"&gt;&lt;b&gt;&lt;a href="http://visualstudiomagazine.com/articles/2010/03/30/%7E/media/ECG/visualstudiomagazine/Images/2010/03/10%2003%2030%20ivl%20Agile%201.ashx"&gt;&lt;img src="http://visualstudiomagazine.com/articles/2010/03/30/%7E/media/ECG/visualstudiomagazine/Images/2010/03/10%2003%2030%20ivl%20Agile%201_sm.ashx" alt="" height="200" width="200"&gt;&lt;/a&gt; &lt;br&gt;[Click on image for larger view.] &lt;/b&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr valign="right"&gt; &lt;td class="a11i" height="31" valign="top"&gt;&lt;b&gt;&lt;i&gt;Figure 1. &lt;/i&gt;&lt;/b&gt;&lt;i&gt;The process for using workbooks&lt;/i&gt;.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;     &lt;b&gt;Product Planning&lt;/b&gt; &lt;br&gt;  The process starts with Product Planning, where teams will enter  requirements into their product backlog. As part of this process the  Product Owner attaches a priority to each requirement (the Stack Rank)  and the team discusses the difficulty of each item in relative terms  using a technique such as Planning Poker and fills in those values  (Story Points). Note that story points can be anything -- they can even  be hours if the team wants and agrees to it. However, we generally try  to steer teams away from this because it is too easy for teams to pad  their &amp;quot;estimates.&amp;quot; Figure 2 shows the Product Planning Product Backlog  page.  &lt;p&gt; &lt;/p&gt;&lt;table width="305" align="center" border="0" cellpadding="2" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt;  &lt;td width="305" align="center"&gt;&lt;b&gt;&lt;a href="http://visualstudiomagazine.com/articles/2010/03/30/%7E/media/ECG/visualstudiomagazine/Images/2010/03/10%2003%2030%20ivl%20Agile%202.ashx"&gt;&lt;img src="http://visualstudiomagazine.com/articles/2010/03/30/%7E/media/ECG/visualstudiomagazine/Images/2010/03/10%2003%2030%20ivl%20Agile%202_sm.ashx" alt="" height="145" width="200"&gt; &lt;br&gt;[Click on image for larger view.] &lt;/a&gt;&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr valign="right"&gt; &lt;td class="a11i" height="31" valign="top"&gt;&lt;b&gt;&lt;i&gt;Figure 2.&lt;/i&gt;&lt;/b&gt; The Product Planning Backlog page.&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;This worksheet lets teams order the requirements by the stack rank so  they can easily ensure that the highest priority items are worked  first. Note also that these are all User Stories -- there are no task  breakdowns at this point, because the assumption is that the team does  not have enough information to do a granular breakdown.&lt;/p&gt;    &lt;p&gt;Figure 3 shows the relative work for each iteration. As teams make  changes on the Product Backlog tab, this graph will update  automatically.&lt;/p&gt;    &lt;table width="305" align="center" border="0" cellpadding="2" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr&gt;  &lt;td width="305" align="center"&gt;&lt;b&gt;&lt;a href="http://visualstudiomagazine.com/articles/2010/03/30/%7E/media/ECG/visualstudiomagazine/Images/2010/03/10%2003%2030%20ivl%20Agile%203.ashx"&gt;&lt;img src="http://visualstudiomagazine.com/articles/2010/03/30/%7E/media/ECG/visualstudiomagazine/Images/2010/03/10%2003%2030%20ivl%20Agile%203_sm.ashx" alt="" height="145" width="200"&gt; &lt;br&gt;[Click on image for larger view.] &lt;/a&gt;&lt;/b&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr valign="right"&gt; &lt;td class="a11i" height="31" valign="top"&gt;&lt;b&gt;&lt;i&gt;Figure 3.&lt;/i&gt;&lt;/b&gt; The relative work per iteration updates as teams change the Product Backlog data.&lt;/td&gt; &lt;/tr&gt; &lt;/tbody&gt;&lt;/table&gt;     &lt;p&gt;One thing to note here is Iteration 1. There are only nine days in  this iteration, as opposed to 10 in the other iterations. This is  because there is one day off for Easter. The Interruptions tab contains  the holidays that effect the overall planning.&lt;/p&gt;&lt;br&gt;&lt;a href="http://visualstudiomagazine.com/articles/2010/03/30/agile-project-management-for-everybody.aspx"&gt;Continue to read more...&lt;/a&gt;&lt;br&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-166638104939891196?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/166638104939891196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=166638104939891196' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/166638104939891196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/166638104939891196'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/10/agile-project-management-for-everybody.html' title='Agile Project Management for Everybody'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-7447745263181377011</id><published>2011-09-19T15:41:00.001+08:00</published><updated>2011-09-19T15:41:09.886+08:00</updated><title type='text'>How to localize a DropDownList and to keep a selected item?</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(49, 60, 70); font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; background-color: rgb(250, 250, 250); "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "&gt; Hi everyone,&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "&gt;  &lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "&gt;  I&amp;#39;m now searching for two days, I can&amp;#39;t find any solution. Lets say I have three projects :&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "&gt; - MyNS.Site&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "&gt; - MyNS.Common.Enums&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "&gt; - MyNS.MVC &lt;br&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "&gt; In MyNS.Common.Enums I have enums which list dropdownlists items and which are used elswhere, but no matter. This is an example :&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "&gt; --------------------------------------------------------------------------------------&lt;/p&gt;&lt;pre class="prettyprint" style="margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 1em; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); display: block; line-height: 1.2em; min-height: 35px; overflow-x: auto; overflow-y: auto; white-space: pre; width: 798px; font-family: Consolas, &amp;#39;Courier New&amp;#39;, Courier, monospace; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(136, 136, 136); border-right-color: rgb(136, 136, 136); border-bottom-color: rgb(136, 136, 136); border-left-color: rgb(136, 136, 136); "&gt; &lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;namespace&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;MyNS&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;Common&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;Enums&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt; &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;{&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;   &lt;/span&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;public&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;enum&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;Types&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;:&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;int&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;   &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;{&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;     &lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;Electric&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;=&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="lit" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 102, 102); background-position: initial initial; background-repeat: initial initial; "&gt;100&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;,&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;     &lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;Gas&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;=&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="lit" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 102, 102); background-position: initial initial; background-repeat: initial initial; "&gt;101&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;,&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;     &lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;Fuel&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;=&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="lit" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 102, 102); background-position: initial initial; background-repeat: initial initial; "&gt;102&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;   &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;}&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt; &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;}&lt;/span&gt;&lt;/pre&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "&gt; --------------------------------------------------------------------------------------&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "&gt; I extended the dropdownlist helper to get a dropdownlist from enums :&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "&gt; --------------------------------------------------------------------------------------&lt;/p&gt;&lt;pre class="prettyprint" style="margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 0px; padding-top: 2px; padding-right: 2px; padding-bottom: 2px; padding-left: 2px; border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 1em; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); display: block; line-height: 1.2em; min-height: 35px; overflow-x: auto; overflow-y: auto; white-space: pre; width: 798px; font-family: Consolas, &amp;#39;Courier New&amp;#39;, Courier, monospace; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: rgb(136, 136, 136); border-right-color: rgb(136, 136, 136); border-bottom-color: rgb(136, 136, 136); border-left-color: rgb(136, 136, 136); "&gt; &lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;namespace&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;MyNS&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;Mvc&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt; &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;{&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;   &lt;/span&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;public&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;static&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;class&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;DropDownListExtensions&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;   &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;{&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;       &lt;/span&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;public&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;static&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;DropDownList&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;(&lt;/span&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;this&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;HtmlHelper&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; helper&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;,&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; name&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;,&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;Type&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; type&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;)&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;       &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;{&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;         &lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;StringBuilder&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; sb &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;=&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;StringBuilder&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;();&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;         sb&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;AppendFormat&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;(&lt;/span&gt;&lt;span class="st" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="str" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 136, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&amp;quot;&amp;amp;lt;select name=\&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="str" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 136, 0); background-position: initial initial; background-repeat: initial initial; "&gt;{0}\&lt;/span&gt;&lt;span class="st" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="str" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 136, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&amp;quot;&amp;amp;gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;,&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; name&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;);&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;         &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;(&lt;/span&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;from&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;string&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; n &lt;/span&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;in&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;Enum&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;GetNames&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;(&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;type&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;)&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;           &lt;/span&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;select&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;new&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;{&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;             &lt;/span&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;value&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;=&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;Convert&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;ToInt32&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;(&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;Enum&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;Parse&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;(&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;type&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;,&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; n&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;)),&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;             text &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;=&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; n&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;ToString&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;()&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;           &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;}).&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;ToList&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;().&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;ForEach&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;(&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;o &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;=&amp;gt;&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;{&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;             sb&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;AppendFormat&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;(&lt;/span&gt;&lt;span class="st" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="str" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 136, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&amp;quot;&amp;amp;lt;option value=\&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="str" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 136, 0); background-position: initial initial; background-repeat: initial initial; "&gt;{0}\&lt;/span&gt;&lt;span class="st" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="str" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 136, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&amp;quot;&amp;amp;gt;{1}&amp;lt;/option&amp;gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;,&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; o&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;value&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;,&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; o&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;text&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;);&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;           &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;});&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;           sb&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;Append&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;(&lt;/span&gt;&lt;span class="st" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="str" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 136, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&amp;quot;&amp;amp;lt;/select&amp;gt;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;);&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;           &lt;/span&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 136); background-position: initial initial; background-repeat: initial initial; "&gt;return&lt;/span&gt;&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; sb&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 0, 102); background-position: initial initial; background-repeat: initial initial; "&gt;ToString&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;();&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;       &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;}&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;   &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;}&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt; &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(102, 102, 0); background-position: initial initial; background-repeat: initial initial; "&gt;}&lt;/span&gt;&lt;/pre&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 13px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "&gt; --------------------------------------------------------------------------------------&lt;/p&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: rgb(68, 82, 94); font-family: Arial, Helvetica, sans-serif; font-size: 11px; line-height: 16px; background-color: rgb(255, 255, 255); "&gt;&lt;a href="http://forums.asp.net/t/1416633.aspx/1?How+to+localize+a+DropDownList+and+to+keep+a+selected+item+" title="How to localize a DropDownList and to keep a selected item?" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 11px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(3, 78, 250); text-decoration: none; background-position: initial initial; background-repeat: initial initial; "&gt;Continue to read more...&lt;/a&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-7447745263181377011?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/7447745263181377011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=7447745263181377011' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/7447745263181377011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/7447745263181377011'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/09/how-to-localize-dropdownlist-and-to.html' title='How to localize a DropDownList and to keep a selected item?'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-358579780150444946</id><published>2011-09-09T10:09:00.001+08:00</published><updated>2011-09-09T10:09:37.877+08:00</updated><title type='text'>Using ELMAH in Windows Azure with Table Storage</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Arial, Tahoma, Verdana; font-size: 12px; line-height: 18px; background-color: rgb(255, 255, 255); "&gt;&lt;div class="postauthor" style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; &lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Posted by &lt;a href="http://www.wadewegner.com/author/admin/" title="Posts by Wade" rel="author" style="color: rgb(0, 118, 163); text-decoration: underline; "&gt;Wade&lt;/a&gt; on Thursday, August 18, 2011 ·&lt;/p&gt; &lt;/div&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Arial, Tahoma, Verdana; font-size: 12px; line-height: 18px; background-color: rgb(255, 255, 255); "&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt; In this week's episode of &lt;a target="_blank" href="http://channel9.msdn.com/Shows/Cloud+Cover" style="color: rgb(0, 118, 163); text-decoration: underline; "&gt;Cloud Cover&lt;/a&gt;, &lt;a target="_blank" href="http://blog.smarx.com/" style="color: rgb(0, 118, 163); text-decoration: underline; "&gt;Steve&lt;/a&gt; and I covered Logging, Tracing, and ELMAH in Windows Azure. Steve explored the first two topics while I looked into ELMAH in Windows Azure. You should make sure and take a look at his posts – they're useful:&lt;/p&gt; &lt;ul style="list-style-type: none; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 5px; padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; "&gt;&lt;li style="list-style-type: square; list-style-position: initial; list-style-image: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 15px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; &lt;a target="_blank" href="http://blog.smarx.com/posts/lightweight-tracing-to-windows-azure-tables" style="color: rgb(0, 118, 163); text-decoration: underline; "&gt;Lightweight Tracing to Windows Azure Tables&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt; ELMAH (Error Logging Modules and Handlers) itself is extremely useful, and with a few simple modifications can provide a very effective way to handle application-wide error logging for your &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; web applications. If you aren't already familiar with ELMAH, take a look at the &lt;a target="_blank" href="http://code.google.com/p/elmah/" style="color: rgb(0, 118, 163); text-decoration: underline; "&gt;ELMAH project page&lt;/a&gt;.&lt;/p&gt; &lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;strong&gt;&lt;u&gt;&lt;font size="3"&gt;NuGet&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt; Before going any further, I thought I'd let you know that I've created a NuGet package that makes this &lt;em&gt;&lt;u&gt;extremely&lt;/u&gt;&lt;/em&gt; easy to try. You can take a look at &lt;a target="_blank" href="http://nuget.org/List/Packages/WindowsAzure.ELMAH.Tables" style="color: rgb(0, 118, 163); text-decoration: underline; "&gt;ELMAH with Windows Azure Table Storage&lt;/a&gt; on the NuGet gallery or immediately try this out with the following command:&lt;/p&gt; &lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;font size="2" face="Courier New"&gt;       Install-Package WindowsAzure.ELMAH.Tables&lt;/font&gt;&lt;/p&gt; &lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;By default this NuGet package is configured to use the local storage emulator. If you want to use your actual Windows Azure storage account you can uncomment the following line in the Web.Config file:&lt;/p&gt; &lt;pre class="code"&gt;&lt;span style="color: blue; "&gt;&amp;lt;!-- &lt;/span&gt;&lt;span style="color: green; "&gt;&amp;lt;errorLog     type=&amp;quot;WebRole1.TableErrorLog, WebRole1&amp;quot;     connectionString=&amp;quot;DefaultEndpointsProtocol=https;AccountName=YOURSTORAGEACCOUNT;       AccountKey=YOURSTORAGEKEY&amp;quot; /&amp;gt; &lt;/span&gt;&lt;span style="color: blue; "&gt;--&amp;gt; &lt;/span&gt;&lt;/pre&gt;&lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Incidentally, if you like NuGet, then you should check out Cory Fowler's post on &lt;a target="_blank" href="http://blog.syntaxc4.net/post/2011/08/01/Must-have-NuGet-Packages-for-Windows-Azure.aspx" style="color: rgb(0, 118, 163); text-decoration: underline; "&gt;must have NuGet packages for Windows Azure development&lt;/a&gt;.&lt;/p&gt; &lt;p style="padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;strong&gt;&lt;u&gt;&lt;font size="3"&gt;Demo&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="left" style="padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt; For those of you unfamiliar with ELMAH, I put together a simple demo. You can try it out on&lt;a target="_blank" href="http://elmahdemo.cloudapp.net/" style="color: rgb(0, 118, 163); text-decoration: underline; "&gt;http://elmahdemo.cloudapp.net/&lt;/a&gt;. Just enter a message (keep it clean, please!) and throw an exception.&lt;/p&gt; &lt;p align="left" style="padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;&lt;a target="_blank" href="http://images.wadewegner.com/wordpress/2011/08/ELMAHDemo.jpg" style="outline-style: none; outline-width: initial; outline-color: initial; color: rgb(0, 118, 163); text-decoration: none; "&gt;&lt;img title="ELMAHDemo" border="0" alt="ELMAHDemo" src="http://images.wadewegner.com/wordpress/2011/08/ELMAHDemo_thumb.jpg" width="600" height="348" style="border-top-style: initial; border-right-style: initial; border-bottom-style: initial; border-left-style: initial; border-width: initial; border-color: initial; background-image: none; border-bottom-width: 0px; border-bottom-color: initial; border-left-width: 0px; border-left-color: initial; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-top-color: initial; border-right-width: 0px; border-right-color: initial; padding-top: 0px; "&gt;&lt;/a&gt;&lt;/p&gt; &lt;p align="left" style="padding-top: 0px; padding-right: 0px; padding-bottom: 10px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt;Click the &lt;strong&gt;ELMAH&lt;/strong&gt; button to then load the handler. You'll see all the errors logged with a lot of great detail.&lt;/p&gt; &lt;/span&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.wadewegner.com/2011/08/using-elmah-in-windows-azure-with-table-storage/"&gt;Continue reading...&lt;/a&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-358579780150444946?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/358579780150444946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=358579780150444946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/358579780150444946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/358579780150444946'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/09/using-elmah-in-windows-azure-with-table.html' title='Using ELMAH in Windows Azure with Table Storage'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-4302102499510866758</id><published>2011-08-30T13:05:00.001+08:00</published><updated>2011-08-30T13:05:11.679+08:00</updated><title type='text'>ASP.NET MVC 3 Internationalization</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial, Georgia, &amp;#39;Lucida Grande&amp;#39;; font-size: 15px; line-height: 22px; background-color: rgb(255, 255, 255); "&gt;&lt;h1 style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 24px; "&gt; Introduction&lt;/h1&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; "&gt;If your website targets users from different parts of the world, these users might like to see your website content in their own language. Creating a multilingual website is not an easy task, but it will certainly allow your site to reach more audience. Fortunately, the .NET Framework already has components that support different languages and cultures.&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; "&gt;We will build an &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC 3 web application that contains the following features:&lt;/p&gt; &lt;ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 20px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; It can display contents in different languages.&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;It autodetects the language from the user&amp;#39;s browser.&lt;/li&gt; &lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;It allows the user to override the language of their browser.&lt;/li&gt; &lt;/ul&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; "&gt;&lt;u style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Globalization and Localization in &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt;&lt;/u&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; "&gt;Internationalization involves &lt;b style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Globalization&lt;/b&gt; and &lt;b style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Localization&lt;/b&gt;. Globalization is the process of designing applications that support different cultures. Localization is the process of customizing an application for a given culture.&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; "&gt;The format for the culture name is &amp;quot;&amp;lt;languagecode2&amp;gt;-&amp;lt;country/regioncode2&amp;gt;&amp;quot;, where &amp;lt;languagecode2&amp;gt; is the language code and &amp;lt;country/regioncode2&amp;gt; is the subculture code. Examples include es-CL for Spanish (Chile) and en-US for English (United States).&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; "&gt;&lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; keeps track of two culture values, the &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.page.culture.aspx" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: rgb(112, 165, 41); "&gt;Culture&lt;/a&gt; and &lt;a href="http://msdn.microsoft.com/en-us/library/system.web.ui.page.uiculture.aspx" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: rgb(112, 165, 41); "&gt;UICulture&lt;/a&gt;. The culture value determines the results of culture-dependent functions, such as the date, number, and currency formatting. The UICulture determines which resources are to be loaded for the page by the ResourceManager. The ResourceManager simply looks up culture-specific resources that is determined by CurrentUICulture. Every thread in .NET has CurrentCulture and CurrentUICulture objects. So &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; inspects these values when rendering culture-dependent functions. For example, if current thread&amp;#39;s culture (CurrentCulture) is set to &amp;quot;en-US&amp;quot; (English, United States), DateTime.Now.ToLongDateString() shows &amp;quot;Saturday, January 08, 2011&amp;quot;, but if CurrentCulture is set to &amp;quot;es-CL&amp;quot; (Spanish, Chile) the result will be &amp;quot;sábado, 08 de enero de 2011&amp;quot;.&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; "&gt;&lt;u style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;How to Support Different Languages in &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC 3&lt;/u&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; "&gt;There are two ways to incorporate different languages and cultures in &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC 3:&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; "&gt;&lt;/p&gt;&lt;ol style="margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 20px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; &lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;By using resource strings in all our site views. (See &lt;a href="http://afana.me/post/aspnet-mvc-internationalization-part-2.aspx" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-decoration: none; color: rgb(112, 165, 41); "&gt;part 2&lt;/a&gt;)&lt;/li&gt; &lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;By using different set of views for every language and locale.&lt;/li&gt; &lt;/ol&gt;&lt;/span&gt;&lt;div&gt;&lt;a href="http://afana.me/post/aspnet-mvc-internationalization.aspx"&gt;Continue to read more...&lt;/a&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-4302102499510866758?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/4302102499510866758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=4302102499510866758' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/4302102499510866758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/4302102499510866758'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/08/aspnet-mvc-3-internationalization.html' title='ASP.NET MVC 3 Internationalization'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-7467038600971761583</id><published>2011-08-30T11:16:00.001+08:00</published><updated>2011-08-30T11:16:47.877+08:00</updated><title type='text'>Localization in ASP.NET MVC – 3 Days Investigation, 1 Day Job</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial, sans-serif; font-size: 12px; line-height: 17px; background-color: rgb(57, 57, 57); "&gt;&lt;p style="margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: justify; "&gt; Localization is a common issue when we develop a world wide web application. The key point of making your application localizable is to separate the page content from your logic implementation. That means, when you want to display something on the page, never put them directly on the page file (or the backend logic). You should give the content a key which can be linked to the real content for the proper language setting.&lt;/p&gt; &lt;p style="margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: justify; "&gt;Last week I was implementing the localization on my &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC application. This is my first time to do it so I spent about 3 days for investigation, trying and come up with a final solution which only needs 1 day's job. So let's take a look on what I have done.&lt;/p&gt; &lt;p style="margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: justify; "&gt; &lt;/p&gt;&lt;h2 style="color: rgb(255, 255, 255); font: normal normal normal 1.8em/normal verdana, Arial, sans-serif; letter-spacing: -1px; background: inherit; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "&gt; Localization supported by &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC&lt;/h2&gt;&lt;p style="margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: justify; "&gt; &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC was built on top of the &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; runtime so all feature provided by &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; can be used in MVC without any wheaks such as caching, session state and localization. In the traditional &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; web form ages we were using the resource files to store the content of the application with different cultures and using the ResourceManager class to retrieve them which can be generated by Visual Studio automatically. In &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC they works well.&lt;/p&gt; &lt;p style="margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: justify; "&gt;Let's create a standard &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC application for an example. The website was in English and we can see all content are hard-written in the view pages and the controller classes.&lt;/p&gt; &lt;p style="margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: justify; "&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/shaunxu/WindowsLiveWriter/Localiza.NETMVC3DaysInvestigation1DayJob_C3EF/image_2.png" style="background: inherit; text-decoration: underline; background: inherit; "&gt;&lt;font class="Apple-style-span" color="#000000"&gt;&lt;img title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/shaunxu/WindowsLiveWriter/Localiza.NETMVC3DaysInvestigation1DayJob_C3EF/image_thumb.png" width="549" height="192" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; float: none; padding-top: 0px; padding-right: 10px; padding-bottom: 5px; padding-left: 0px; display: block; margin-left: auto; margin-right: auto; "&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;p style="margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: justify; "&gt;Now what I need to do is to put all contents out of from the pages and the controllers. &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; gives us a special folder named App_GlobalResources which contains the resource files for the content of all cultures. Just right-click the project in the solution explorer window and create the folder under the Add &amp;gt; Add &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; Folders menu.&lt;/p&gt; &lt;p style="margin-top: 5px; margin-right: 0px; margin-bottom: 5px; margin-left: 0px; color: rgb(231, 231, 231); padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; text-align: justify; "&gt;&lt;br&gt;&lt;/p&gt;&lt;/span&gt;&lt;div&gt; &lt;a href="http://geekswithblogs.net/shaunxu/archive/2010/05/06/localization-in-asp.net-mvc-ndash-3-days-investigation-1-day.aspx"&gt;Continue to read more...&lt;/a&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-7467038600971761583?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/7467038600971761583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=7467038600971761583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/7467038600971761583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/7467038600971761583'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/08/localization-in-aspnet-mvc-3-days.html' title='Localization in ASP.NET MVC – 3 Days Investigation, 1 Day Job'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-5694313261443148997</id><published>2011-08-08T21:59:00.001+08:00</published><updated>2011-08-08T21:59:57.545+08:00</updated><title type='text'>ASP.NET MVC : Injecting &amp; Mocking an IRepository</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 13px; background-color: rgb(255, 255, 255); "&gt;If you are already familiar with &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC, you have probably seen the &lt;a href="http://martinfowler.com/eaaCatalog/repository.html" style="text-decoration: none; color: rgb(69, 129, 142); "&gt;repository pattern&lt;/a&gt;in a few examples (such as &lt;a href="http://nerddinnerbook.s3.amazonaws.com/Intro.htm" style="text-decoration: none; color: rgb(69, 129, 142); "&gt;NerdDinner&lt;/a&gt;), maybe you even use it in your own app.&lt;br&gt; &lt;br&gt;One of the most frequent way to hot-plug a Repository class into a controller is to use the Strategy Pattern. But while an application evolves, you might want to centrally manage your wiring within a provider, that&amp;#39;s what Dependency Injectors are for.&lt;br&gt; However lots of Dependency Injectors - or IoC containers at large - such as Unity or Castle Windsor contain a plethora of features and often rely heavily on XML configuration, making them overkill for smaller projects. &lt;br&gt; &lt;a href="http://www.ninject.org/" style="text-decoration: none; color: rgb(69, 129, 142); "&gt;Ninject&lt;/a&gt; makes it relatively effortless to set up a DI. It just reached version 2.0.&lt;br&gt;&lt;br&gt;In this post we will see how to:&lt;br&gt; &lt;ul style="padding-top: 0px; padding-right: 2.5em; padding-bottom: 0px; padding-left: 2.5em; margin-top: 0.5em; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; line-height: 1.4; list-style-type: disc; list-style-position: initial; list-style-image: initial; "&gt; &lt;li style="padding-top: 0.25em; padding-right: 0px; padding-bottom: 0.25em; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 0px; text-indent: 0px; color: rgb(0, 0, 0); border-top-width: initial; border-top-style: none; border-top-color: initial; border-bottom-width: 1px; border-bottom-style: none; border-bottom-color: transparent; border-right-style: none; border-left-style: none; border-width: initial; border-color: initial; "&gt; Quickly inject a Repository in a controller with Ninject&lt;/li&gt;&lt;li style="padding-top: 0.25em; padding-right: 0px; padding-bottom: 0.25em; padding-left: 0px; margin-top: 0px; margin-right: 0px; margin-bottom: 0.25em; margin-left: 0px; text-indent: 0px; color: rgb(0, 0, 0); border-top-width: 0px; border-top-style: none; border-top-color: transparent; border-bottom-width: initial; border-bottom-style: none; border-bottom-color: initial; border-right-style: none; border-left-style: none; border-width: initial; border-color: initial; "&gt; Mock the IRepository interface in your tests with the Ninject.Moq plugin&lt;/li&gt;&lt;/ul&gt;&lt;br&gt;&lt;strong&gt;Get the bits&lt;/strong&gt;&lt;br&gt;&lt;br&gt;Here&amp;#39;s where to get these dependencies:&lt;br&gt;&lt;a href="http://code.google.com/p/moq/downloads/list" style="text-decoration: none; color: rgb(69, 129, 142); "&gt;Moq&lt;/a&gt;&lt;br&gt; &lt;a href="http://ninject.org/download" style="text-decoration: none; color: rgb(69, 129, 142); "&gt;Ninject2 (with Ninject.Web.Mvc)&lt;/a&gt;&lt;br&gt;&lt;a href="http://github.com/enkari/ninject.moq" style="text-decoration: none; color: rgb(69, 129, 142); "&gt;Ninject.Moq plugin&lt;/a&gt; (download and build)&lt;br&gt; &lt;br&gt;&lt;strong&gt;Creating a Simple Repository&lt;/strong&gt;&lt;br&gt;&lt;br&gt;Let&amp;#39;s start a quick MVC app with a Repository.&lt;br&gt;The Winter Olympics provide us with a simple Model composed of the following types:&lt;br&gt;&lt;br&gt;&lt;a href="http://4.bp.blogspot.com/_sMzr7iNm7bs/S46ThH_XOmI/AAAAAAAAAX0/NvwZQcbP4GM/s1600-h/ClassDiagram.png" style="text-decoration: none; color: rgb(69, 129, 142); "&gt;&lt;img src="http://4.bp.blogspot.com/_sMzr7iNm7bs/S46ThH_XOmI/AAAAAAAAAX0/NvwZQcbP4GM/s400/ClassDiagram.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5444451196827286114" style="border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-width: initial; border-color: initial; position: relative; padding-top: 8px; padding-right: 8px; padding-bottom: 8px; padding-left: 8px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); border-top-width: 1px; border-right-width: 1px; border-bottom-width: 1px; border-left-width: 1px; border-top-color: rgb(195, 195, 195); border-right-color: rgb(195, 195, 195); border-bottom-color: rgb(195, 195, 195); border-left-color: rgb(195, 195, 195); -webkit-box-shadow: rgba(0, 0, 0, 0.199219) 0px 0px 0px; box-shadow: rgba(0, 0, 0, 0.199219) 0px 0px 0px; border-top-left-radius: 0px 0px; border-top-right-radius: 0px 0px; border-bottom-right-radius: 0px 0px; border-bottom-left-radius: 0px 0px; display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 400px; height: 365px; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;/a&gt;&lt;br&gt; &lt;br&gt;&lt;/span&gt;&lt;br&gt;&lt;div&gt;&lt;a href="http://www.teebot.be/2010/03/aspnet-mvc-and-ninject-repository.html"&gt;Continue to read more...&lt;/a&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-5694313261443148997?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/5694313261443148997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=5694313261443148997' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/5694313261443148997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/5694313261443148997'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/08/aspnet-mvc-injecting-mocking.html' title='ASP.NET MVC : Injecting &amp; Mocking an IRepository'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_sMzr7iNm7bs/S46ThH_XOmI/AAAAAAAAAX0/NvwZQcbP4GM/s72-c/ClassDiagram.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-7103425548854108046</id><published>2011-08-08T21:43:00.001+08:00</published><updated>2011-08-08T21:43:29.982+08:00</updated><title type='text'>Official Ninject MVC extension gets support for MVC3</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(85, 85, 85); font-family: Verdana, &amp;#39;BitStream vera Sans&amp;#39;, Helvetica, sans-serif; font-size: 12px; line-height: 17px; background-color: rgb(255, 255, 255); "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; MVC3 added support for Dependency Injection frameworks. To take advantage of these features I did a completely new implementation of the Ninject.Web.Mvc extension. Unlike other existing MVC3 implementations for Ninject, this extension goes further than just adding a IDependencyResolver for Ninject. It has tightly Ninject integrated support for various things such as Filters and Validators.&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;This post assumes that you have a basic knowledge about MVC, Ninject and Dependency Injection in general.&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span id="more-2004" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Let's get started&lt;/strong&gt;&lt;br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; First you have to get a complied version of the extension. You either have to get the sources or the binaries from &lt;a title="Github" href="https://github.com/ninject/ninject.web.mvc" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(41, 112, 166); text-decoration: none; "&gt;Github&lt;/a&gt;. The binaries are also available from the &lt;a title="Build Server" href="http://teamcity.codebetter.com/project.html;jsessionid=C76A073D55F76616A42B3713B1AECCAA?projectId=project3&amp;amp;tab=projectOverview" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(41, 112, 166); text-decoration: none; "&gt;build server&lt;/a&gt;. The sources also come with a sample project that demonstrates all features.&lt;/p&gt; &lt;/span&gt;&lt;div&gt;&lt;a href="http://www.planetgeek.ch/2010/11/13/official-ninject-mvc-extension-gets-support-for-mvc3/"&gt;Continue to read more...&lt;/a&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-7103425548854108046?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/7103425548854108046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=7103425548854108046' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/7103425548854108046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/7103425548854108046'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/08/official-ninject-mvc-extension-gets.html' title='Official Ninject MVC extension gets support for MVC3'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-186618898400242670</id><published>2011-08-03T17:35:00.001+08:00</published><updated>2011-08-03T17:35:42.991+08:00</updated><title type='text'>Azure TableStorageMembershipProvider does not work with hashed passwords, cannot login</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: &amp;#39;Segoe UI&amp;#39;, &amp;#39;Lucida Grande&amp;#39;, Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 16px; background-color: rgb(255, 255, 255); "&gt;&lt;p style="border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; text-decoration: none; "&gt; When passwordFormat=&amp;quot;Hashed&amp;quot; logging in does not work.  Changing passwordFormat=&amp;quot;Clear&amp;quot; allowed me to login using Forms based authentication with the Membership API.&lt;/p&gt;&lt;p style="border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; text-decoration: none; "&gt; I am using a stand-alone &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; website pointing to my Azure storage account.  The Membership provider is the TableStorageMembershipProvider provided by Microsoft (&lt;a href="http://code.msdn.microsoft.com/windowsazuresamples" style="border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 102, 221); cursor: pointer; text-decoration: none; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; "&gt;http://code.msdn.microsoft.com/windowsazuresamples&lt;/a&gt;).&lt;/p&gt; &lt;p style="border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; text-decoration: none; "&gt; Has anyone else run into this problem?  Did anyone find any solutions?  I would rather not store my passwords as clear text.&lt;/p&gt;&lt;p style="border-style: initial; border-color: initial; font-style: inherit; font-family: inherit; margin-top: 1em; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; outline-width: 0px; outline-style: initial; outline-color: initial; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; list-style-type: none; text-decoration: none; "&gt; &lt;br&gt;&lt;/p&gt;&lt;/span&gt;&lt;div&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/windowsazuresecurity/thread/40225f10-b0fa-4b2b-975d-9bbcca76dde4/"&gt;Continue to read more...&lt;/a&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-186618898400242670?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/186618898400242670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=186618898400242670' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/186618898400242670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/186618898400242670'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/08/azure-tablestoragemembershipprovider.html' title='Azure TableStorageMembershipProvider does not work with hashed passwords, cannot login'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-6079586034293484655</id><published>2011-08-01T16:36:00.001+08:00</published><updated>2011-08-01T16:36:51.533+08:00</updated><title type='text'>How to Unit Test Code that uses AppSettings from Web.config</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 11px; line-height: 16px; "&gt;&lt;p&gt;I've said this so many times, writing unit &lt;span class="searchword" style="background-color: yellow; "&gt;test&lt;/span&gt;s is easy if the code was written well in the first place.  And when I say "written well", what I really mean is "written to be &lt;span class="searchword" style="background-color: yellow; "&gt;test&lt;/span&gt;able".&lt;/p&gt; &lt;p&gt;So here is the situation:  I have a simple service that does some logging, most of the details are not important.  But in the LogDebug() method, the code checks the &lt;span class="searchword" style="background-color: yellow; "&gt;web.config&lt;/span&gt; file to see if the debug logging is enabled.  That too in itself is pretty simple stuff.  Typically it would look like this:&lt;/p&gt; &lt;pre class="code"&gt;&lt;span style="color: blue; "&gt;bool &lt;/span&gt;configDebugMode = &lt;span style="color: blue; "&gt;bool&lt;/span&gt;.Parse(&lt;span style="color: rgb(43, 145, 175); "&gt;WebConfigurationManager&lt;/span&gt;.AppSettings[&lt;span style="color: rgb(163, 21, 21); "&gt;&amp;quot;Logging.Debug&amp;quot;&lt;/span&gt;]);&lt;/pre&gt; &lt;p&gt;&lt;i&gt;&lt;b&gt;EDIT: &lt;/b&gt;I should point out what I mean when I say below that &lt;span class="searchword" style="background-color: yellow; "&gt;test&lt;/span&gt;ing this code isn&amp;#39;t very easy. Sure, &lt;span class="searchword" style="background-color: yellow; "&gt;test&lt;/span&gt;ing it is easy if I only want to &lt;span class="searchword" style="background-color: yellow; "&gt;test&lt;/span&gt; one value from the &lt;span class="searchword" style="background-color: yellow; "&gt;web.config&lt;/span&gt; file, such as &amp;#39;true&amp;#39;. But in this situation, I want to &lt;span class="searchword" style="background-color: yellow; "&gt;test&lt;/span&gt; when the config file value is &amp;#39;true&amp;#39;, and also when it is &amp;#39;false&amp;#39;.&lt;/i&gt;&lt;/p&gt; &lt;p&gt;But &lt;span class="searchword" style="background-color: yellow; "&gt;test&lt;/span&gt;ing that isn't very easy at all.  You'd have to do some crazy stuff with multiple config files or something.  But if the code was written differently, it's very easy to &lt;span class="searchword" style="background-color: yellow; "&gt;test&lt;/span&gt;.  The key is to wrap the call to WebConfigurationManager in another class that implements and interface, then use &lt;a href="http://www.blog.ingenuitynow.net/ct.ashx?id=ac7d1789-cba7-4461-bfcc-85e4fa308840&amp;amp;url=http%3a%2f%2fmsdn.microsoft.com%2fen-us%2fmagazine%2fcc163739.aspx" target="_blank" style="font-weight: bold; text-decoration: none; color: rgb(105, 105, 105); "&gt;dependency injection&lt;/a&gt;.  And with the class designed like that, you can use a simple &lt;a href="http://www.blog.ingenuitynow.net/ct.ashx?id=ac7d1789-cba7-4461-bfcc-85e4fa308840&amp;amp;url=http%3a%2f%2fen.wikipedia.org%2fwiki%2fMock_object" target="_blank" style="font-weight: bold; text-decoration: none; color: rgb(105, 105, 105); "&gt;mock&lt;/a&gt; to make the &lt;span class="searchword" style="background-color: yellow; "&gt;test&lt;/span&gt;ing simpler.  It's really easy, here is how I'm doing it.&lt;/p&gt; &lt;p&gt;First I define an interface, I'm calling it IConfigurationManager: &lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: blue; "&gt;public interface &lt;/span&gt;&lt;span style="color: rgb(43, 145, 175); "&gt;IConfigurationManager &lt;/span&gt;{     &lt;span style="color: blue; "&gt;string &lt;/span&gt;GetAppSetting(&lt;span style="color: blue; "&gt;string &lt;/span&gt;key);     &lt;span style="color: rgb(43, 145, 175); "&gt;ConnectionStringSettings &lt;/span&gt;GetConnectionString(&lt;span style="color: blue; "&gt;string &lt;/span&gt;key); }&lt;/pre&gt;&lt;p&gt;&lt;a href="http://www.blog.ingenuitynow.net/ct.ashx?id=ac7d1789-cba7-4461-bfcc-85e4fa308840&amp;amp;url=http%3a%2f%2f11011.net%2fsoftware%2fvspaste" style="font-weight: bold; text-decoration: none; color: rgb(105, 105, 105); "&gt;&lt;/a&gt;The interface has two simple methods so I can use it to get AppSettings and ConnectionStrings.  Could be I'll need to add some more methods later but I don't need them yet.  Next I implement the interface in a concrete class that can get the values from the &lt;span class="searchword" style="background-color: yellow; "&gt;web.config&lt;/span&gt;.  This too is really simple.  I'm calling this class WebConfigConfigurationManager.  That may sound weird and redundant but it tells me that it is a ConfigurationManager that gets values from WebConfig.  If I need an implementation that pulls values from a db I could make another one called DbConfigurationManager.  Here is the c&lt;/p&gt; &lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;/span&gt;&lt;div&gt;&lt;a href="http://www.blog.ingenuitynow.net/How+To+Unit+Test+Code+That+Uses+AppSettings+From+WebConfig.aspx"&gt;Continue to read more...&lt;/a&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-6079586034293484655?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/6079586034293484655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=6079586034293484655' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/6079586034293484655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/6079586034293484655'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/08/how-to-unit-test-code-that-uses.html' title='How to Unit Test Code that uses AppSettings from Web.config'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-2320949107654621955</id><published>2011-07-26T22:57:00.000+08:00</published><updated>2011-07-26T22:57:42.720+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><category scheme='http://www.blogger.com/atom/ns#' term='Unit Test'/><category scheme='http://www.blogger.com/atom/ns#' term='Ninject'/><category scheme='http://www.blogger.com/atom/ns#' term='Moq'/><title type='text'>MVC 3 + Ninject + Moq + Unit Test Step By Step</title><content type='html'>In the following example, I'll show you how to use Ninject on a simple ASP.Net MVC applicatoin, and I'll write a Unit Test for the Home Controller with Moq.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The MVC Applicatoin&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Let's start with a plain MVC 3 applicaiton&lt;br /&gt;&lt;br /&gt;Start Visual Studio 2010 and then create a new project, select ASP.NET MVC 3 Web Application.&lt;br /&gt;In the Name and Solution Name text box, enter "SimpleNinjectDemo" then press OK.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Mud4HeTSbso/Ti546BQTSfI/AAAAAAAAR4I/RCnJXzzAvn8/s1600/10+New+Project.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="441" src="http://2.bp.blogspot.com/-Mud4HeTSbso/Ti546BQTSfI/AAAAAAAAR4I/RCnJXzzAvn8/s640/10+New+Project.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Next, select "Internet Application", View Engine should be Razor, remember to check "Create a unit test project". &amp;nbsp;Click OK to continue.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-8QXhDsvx02k/Ti56saUoUuI/AAAAAAAAR40/wVCmS1Nb7G0/s1600/20+New+Project+screen+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="584" src="http://2.bp.blogspot.com/-8QXhDsvx02k/Ti56saUoUuI/AAAAAAAAR40/wVCmS1Nb7G0/s640/20+New+Project+screen+2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;At this point, the newly created project should have file structure look like below picture&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-3pehq39s8kU/Ti59rWBuD2I/AAAAAAAAR5g/AACRNFAsXl4/s1600/30+Solution+Explorer+of+newly+created+project.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-3pehq39s8kU/Ti59rWBuD2I/AAAAAAAAR5g/AACRNFAsXl4/s1600/30+Solution+Explorer+of+newly+created+project.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Now add a "Services" folder to SimpleNinjectDemo project, like below&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-cN03JcnO7is/Ti5-oIVMq3I/AAAAAAAAR50/W2zjWFs2IM4/s1600/40+Services+folder+added.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-cN03JcnO7is/Ti5-oIVMq3I/AAAAAAAAR50/W2zjWFs2IM4/s1600/40+Services+folder+added.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Inside the Services folder, let us add an interface for messaging called IMessagingService. &amp;nbsp;We will be using the messaging service in our home controller that will be creating in the next couple of steps.&lt;br /&gt;&lt;br /&gt;Add an interface called IMessagingService.cs under Services folder&lt;br /&gt;&lt;pre class="c#" name="code"&gt;namespace SimpleNinjectDemo.Services&lt;br /&gt;{&lt;br /&gt;    public interface IMessagingService&lt;br /&gt;    {&lt;br /&gt;        string HelloWorld();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now let's create the actual messaging service that is about to hook up to the previous IMessagingService interface. Add a class called MessagingService.cs under Services folder&lt;br /&gt;&lt;pre class="c#" name="code"&gt;namespace SimpleNinjectDemo.Services&lt;br /&gt;{&lt;br /&gt;    public class MessagingService : IMessagingService&lt;br /&gt;    {&lt;br /&gt;       public string HelloWorld()&lt;br /&gt;       {&lt;br /&gt;           return "Hello World";&lt;br /&gt;       }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;At this point, the project folder should look like this&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-4sCuspFzFYI/Ti6CiMjbrsI/AAAAAAAAR6M/BmXgahvNTGA/s1600/50+structure+after+Interface+added.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-4sCuspFzFYI/Ti6CiMjbrsI/AAAAAAAAR6M/BmXgahvNTGA/s1600/50+structure+after+Interface+added.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;With the Messaging Service in place, we can now start working on the controller to consume the service&lt;br /&gt;Let's modify the HomeController as below&lt;br /&gt;&lt;pre class="c#" name="code"&gt;using System.Web.Mvc;&lt;br /&gt;using SimpleNinjectDemo.Services;&lt;br /&gt;&lt;br /&gt;namespace NinjectSimpleDemo.Controllers&lt;br /&gt;{&lt;br /&gt;    public class HomeController : Controller&lt;br /&gt;    {&lt;br /&gt;        private IMessagingService MessagingService { get; set; }&lt;br /&gt;&lt;br /&gt;        public HomeController(IMessagingService messagingService)&lt;br /&gt;        {&lt;br /&gt;            this.MessagingService = messagingService;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public ActionResult Index()&lt;br /&gt;        {&lt;br /&gt;            ViewBag.Message = MessagingService.HelloWorld();&lt;br /&gt;&lt;br /&gt;            return View();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public ActionResult About()&lt;br /&gt;        {&lt;br /&gt;            return View();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;Ninject comes to rescue&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;As you can see, we added a constructor which has a parameter implementing IMessagingService.  This technique is called Dependency Injection.&lt;br /&gt;&lt;br /&gt;Ok, enough talk, let's compile and run the application to see what's the effect.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-jrll-M1ZuJo/Ti6Gbr_L2PI/AAAAAAAAR6g/ViggJY61CMw/s1600/60+error+demo%252C+no+parameterless+constructor+defined+for+this+object.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-jrll-M1ZuJo/Ti6Gbr_L2PI/AAAAAAAAR6g/ViggJY61CMw/s1600/60+error+demo%252C+no+parameterless+constructor+defined+for+this+object.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Oops, the newly introduced HomeController constructor needs a MessagingService object as parameter, what should I do to create and pass it into HomeController?&lt;br /&gt;&lt;br /&gt;... It's easy, here comes Ninject, it can help to solve the above problem in few lines of code.&lt;br /&gt;&lt;br /&gt;Let's install Ninject.MVC3 using NuGet package installer.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-HtuGArr68Nw/Ti6IekawqpI/AAAAAAAAR60/0qfjOoeuaAM/s1600/70+Installing+Ninject.MVC3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://3.bp.blogspot.com/-HtuGArr68Nw/Ti6IekawqpI/AAAAAAAAR60/0qfjOoeuaAM/s640/70+Installing+Ninject.MVC3.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;After Ninject.MVC3 installed, you'll notice the project will have a new folder App_Start and a file NinjectMVC3.cs under it&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-bsafacvx-z0/Ti6K9wvpaTI/AAAAAAAAR7M/qL83NcFjWj4/s1600/80+Ninject.MVC3+new+folder+and+file.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-bsafacvx-z0/Ti6K9wvpaTI/AAAAAAAAR7M/qL83NcFjWj4/s1600/80+Ninject.MVC3+new+folder+and+file.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;This file acts as the setup file for Ninject, it takes care of all bindings and start up. Now let's modify NinjectMVC3.cs to hook up the HomeController's constructor with the MessagingService.  &lt;br /&gt;&lt;br /&gt;Add below line to RegisterServices function.&lt;br /&gt;&lt;pre class="c#" name="code"&gt;private static void RegisterServices(IKernel kernel)&lt;br /&gt;{&lt;br /&gt;    kernel.Bind&amp;lt;IMessagingService&amp;gt;().To&amp;lt;MessagingService&amp;gt;();&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Run the project again.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Vxkg5l1r6YU/Ti6M3mbUgsI/AAAAAAAAR7g/ozpA820uhus/s1600/90+Hello+World+app+is+working.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-Vxkg5l1r6YU/Ti6M3mbUgsI/AAAAAAAAR7g/ozpA820uhus/s1600/90+Hello+World+app+is+working.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Isn't it so simple, our Hello World project now utilize Ninject to inject the MessingingService dependency to a Controller.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Unit Test&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Let's get back to our Test project for demo Moq and Unit Test. &amp;nbsp;Because we will use Moq to setup mock to MessagingSerive, let's install it using NuGet Package Installer.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-UOXcmLGGApg/Ti7LUkOxz5I/AAAAAAAAR7w/8hO3aMsZlpc/s1600/100+Moq+Install.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://2.bp.blogspot.com/-UOXcmLGGApg/Ti7LUkOxz5I/AAAAAAAAR7w/8hO3aMsZlpc/s640/100+Moq+Install.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Now open HomeControllerTest.cs in SimpleNinjectDemo.Test project, and then remove the whole About() test, or just comment it out, we will only focus on Index() test.&lt;br /&gt;&lt;br /&gt;HomeControllerTest.cs should look like this&lt;br /&gt;&lt;pre class="c#" name="code"&gt;using System.Web.Mvc;&lt;br /&gt;using Microsoft.VisualStudio.TestTools.UnitTesting;&lt;br /&gt;using NinjectSimpleDemo.Controllers;&lt;br /&gt;&lt;br /&gt;namespace SimpleNinjectDemo.Tests.Controllers&lt;br /&gt;{&lt;br /&gt;    [TestClass]&lt;br /&gt;    public class HomeControllerTest&lt;br /&gt;    {&lt;br /&gt;        [TestMethod]&lt;br /&gt;        public void Index()&lt;br /&gt;        {&lt;br /&gt;            // Arrange&lt;br /&gt;            HomeController controller = new HomeController();&lt;br /&gt;&lt;br /&gt;            // Act&lt;br /&gt;            ViewResult result = controller.Index() as ViewResult;&lt;br /&gt;&lt;br /&gt;            // Assert&lt;br /&gt;            Assert.AreEqual("Welcome to ASP.NET MVC!", result.ViewBag.Message);&lt;br /&gt;        }&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;If you build the test project now, the compiler will return error message &lt;span class="Apple-style-span" style="color: red;"&gt;"'NinjectSimpleDemo.Controllers.HomeController' does not contain a constructor that takes 0 arguments"&lt;/span&gt;&amp;nbsp;. &amp;nbsp;It's time to call Moq for help.&lt;br /&gt;&lt;br /&gt;The HomeController now requires an object as a parameter and we will mock one for it.&lt;br /&gt;Add below code to the Arrange section&lt;br /&gt;&lt;pre class="c#" name="code"&gt;// Arrange&lt;br /&gt;var expectedResult = "Hello, Unit Test!";&lt;br /&gt;var messagingService = new Mock&amp;lt;IMessagingService&amp;gt;();&lt;br /&gt;messagingService.Setup(m =&amp;gt; m.HelloWorld()).Returns(expectedResult);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And then put messagingService.Object as the parameter of HomeController constructor&lt;br /&gt;&lt;pre class="c#" name="code"&gt;HomeController controller = new HomeController(messagingService.Object);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Lastly, modify the Assert part like below&lt;br /&gt;&lt;pre class="c#" name="code"&gt;// Assert&lt;br /&gt;Assert.AreEqual(expectedResult, result.ViewBag.Message);&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Run the Test by right click the class and then choose Run Tests&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-5vuFSF8JuIs/Ti7R_H_sH7I/AAAAAAAAR70/RmAp-EWnoh8/s1600/110+Test+pass.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="198" src="http://2.bp.blogspot.com/-5vuFSF8JuIs/Ti7R_H_sH7I/AAAAAAAAR70/RmAp-EWnoh8/s640/110+Test+pass.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Very good, the test passed successfully.&lt;br /&gt;&lt;br /&gt;This is a simple demo that combine the use of ASP.Net MVC 3, Ninject, Moq and Unit Test, for more information of each tools, please refer to their own website.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.asp.net/mvc"&gt;ASP.Net MVC&lt;/a&gt;&lt;br /&gt;&lt;a href="http://ninject.org/"&gt;Ninject (cool website)&lt;/a&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/moq/"&gt;Moq&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-2320949107654621955?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/2320949107654621955/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=2320949107654621955' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/2320949107654621955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/2320949107654621955'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/07/mvc-3-ninject-moq-unit-test-step-by.html' title='MVC 3 + Ninject + Moq + Unit Test Step By Step'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-Mud4HeTSbso/Ti546BQTSfI/AAAAAAAAR4I/RCnJXzzAvn8/s72-c/10+New+Project.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-3780633824497478167</id><published>2011-07-23T23:06:00.001+08:00</published><updated>2011-07-23T23:06:38.410+08:00</updated><title type='text'>TDD with ASP.NET MVC 3, Moq and Dependency Injection</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 15px; line-height: 20px; "&gt;&lt;span class="Apple-style-span" style="font-size: x-large; "&gt;Introduction&lt;/span&gt;&lt;br&gt; &lt;br&gt;&lt;span class="Apple-style-span" style="font-size: large; "&gt;Purpose&lt;/span&gt;&lt;br&gt;The purpose of this article is to explain what TDD is and give an example in terms of the process.&lt;br&gt;&lt;br&gt;So what does TDD stand for, well according to Wikipedia it is Test Driven Development but having read around the subject looking at blogs from Brad Wilson it should really be Test Driven Design, or as his want &lt;a href="http://bradwilson.typepad.com/blog/2009/04/its-not-tdd-its-design-by-example.html" style="text-decoration: none; color: rgb(51, 102, 153); "&gt;Design By Example&lt;/a&gt;but this doesn&amp;#39;t fit in the acronym.  I&amp;#39;ll stick with Test Driven Design.&lt;br&gt; &lt;br&gt;&lt;span class="Apple-style-span" style="font-size: large; "&gt;Approach&lt;/span&gt;&lt;br&gt;Instead of writing the controller and repository first instead I will create the test and use Visual Studio 2010 to automatically generate the classes, methods and properties as dictated by the test.&lt;br&gt; &lt;br&gt;&lt;span class="Apple-style-span" style="font-size: large; "&gt;Patterns&lt;/span&gt;&lt;br&gt;So what about patterns?  Well in this example I will use the Dependency Injection,  Repository, Mock Object Design and MVC patterns.&lt;br&gt;&lt;br&gt; &lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large; "&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large; "&gt;Project&lt;/span&gt;&lt;/div&gt;&lt;div&gt;A simple repository call that returns a list of blog entries with URLs built from the title field.&lt;/div&gt; &lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large; "&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large; "&gt;Toolset&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;To use Moq for the Mock Object Framework&lt;/b&gt;&lt;/div&gt; &lt;div&gt;Version: 4.0.10827&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Mock objects are faked objects that imitate &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/span&gt;&lt;div&gt;&lt;a href="http://danielglyde.blogspot.com/2011/07/tdd-with-aspnet-mvc-3-moq-and.html"&gt;Continue to read more...&lt;/a&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-3780633824497478167?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/3780633824497478167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=3780633824497478167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/3780633824497478167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/3780633824497478167'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/07/tdd-with-aspnet-mvc-3-moq-and.html' title='TDD with ASP.NET MVC 3, Moq and Dependency Injection'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-6364900015453076374</id><published>2011-07-22T16:36:00.001+08:00</published><updated>2011-07-22T16:36:22.097+08:00</updated><title type='text'>TDD and Dependency Injection with ASP.NET MVC</title><content type='html'>&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: &amp;#39;Trebuchet MS&amp;#39;, &amp;#39;Lucida Sans Unicode&amp;#39;, &amp;#39;Lucida Grande&amp;#39;, Lucida, Arial, Verdana, sans-serif; font-size: 13px; line-height: 20px; "&gt;&lt;p style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; font-family: calibri; font-size: 17px; line-height: 27px; "&gt; One of the guiding principles in the design of the new &lt;a title="ASP.NET MVC Page" href="http://asp.net/mvc" style="color: rgb(208, 48, 16); "&gt;ASP.NET MVC Framework&lt;/a&gt; is enabling TDD (Test Driven Development) when building a web application. If you want to follow along, this post makes use of &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC CodePlex Preview 4 which &lt;a title="ASP.NET on CodePlex" href="http://codeplex.com/aspnet" style="color: rgb(208, 48, 16); "&gt;you'll need to install&lt;/a&gt; from CodePlex. I'll try and keep this post up to date with the latest releases, but it may take me time to get around to it.&lt;/p&gt; &lt;p style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; font-family: calibri; font-size: 17px; line-height: 27px; "&gt; This post will provide a somewhat detailed walk-through of building a web application in a Test Driven manner while also demonstrating one way to integrate a &lt;a title="Inversion of Control Containers and the Dependency Injection Pattern" href="http://www.martinfowler.com/articles/injection.html" style="color: rgb(208, 48, 16); "&gt;Dependency Injection&lt;/a&gt; (DI) Framework into an &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC app. At the very end, you can download the code.&lt;/p&gt; &lt;p style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; font-family: calibri; font-size: 17px; line-height: 27px; "&gt; I chose &lt;a title="StructureMap homepage" href="http://structuremap.sourceforge.net/Default.htm" style="color: rgb(208, 48, 16); "&gt;StructureMap 2.0&lt;/a&gt; for the DI framework simply because I'm familiar with it and it requires very little code and configuration. If you're interested in an example using &lt;a title="Spring.NET" href="http://www.springframework.net/" style="color: rgb(208, 48, 16); "&gt;Spring.NET&lt;/a&gt;, check out &lt;a title="ASP.NET MVC Framework Create your own IControllerFactory" href="http://weblogs.asp.net/fredriknormen/archive/2007/11/17/asp-net-mvc-framework-create-your-own-icontrollerfactory-and-use-spring-net.aspx" style="color: rgb(208, 48, 16); "&gt;Fredrik Normen's post&lt;/a&gt;. I'll try and post code examples in the future using &lt;a title="Caste Windsor" href="http://www.castleproject.org/container/index.html" style="color: rgb(208, 48, 16); "&gt;Castle Windsor&lt;/a&gt; and &lt;a title="ObjectBuilder on CodePlex" href="http://www.codeplex.com/ObjectBuilder" style="color: rgb(208, 48, 16); "&gt;ObjectBuilder&lt;/a&gt;.&lt;/p&gt; &lt;h3 style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt; Start Me Up! &lt;em class="caption" style="font-size: 0.6em; "&gt;with apologies to The Rolling Stones&lt;/em&gt;&lt;/h3&gt;&lt;/span&gt;&lt;font class="Apple-style-span" color="#333333" face="calibri"&gt;&lt;span class="Apple-style-span" style="font-size: 17px; line-height: 27px;"&gt;&lt;br&gt; &lt;/span&gt;&lt;/font&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: &amp;#39;Trebuchet MS&amp;#39;, &amp;#39;Lucida Sans Unicode&amp;#39;, &amp;#39;Lucida Grande&amp;#39;, Lucida, Arial, Verdana, sans-serif; font-size: 13px; line-height: 20px; "&gt;&lt;p style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; font-family: calibri; font-size: 17px; line-height: 27px; "&gt; Once the CTP is released and you have it installed, open Visual Studio 2008 and select the &lt;em&gt;File&lt;/em&gt; | &lt;em&gt;New Project &lt;/em&gt;menu item. In the dialog, select the &lt;em&gt;&lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC Web Application &lt;/em&gt;project template.&lt;/p&gt; &lt;p style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; font-family: calibri; font-size: 17px; line-height: 27px; "&gt; At this point, you should see the following unit test project selection dialog.&lt;/p&gt;&lt;p style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; font-family: calibri; font-size: 17px; line-height: 27px; "&gt; &lt;img title="Select Unit Test Project" height="367" alt="Select Unit Test Project" src="http://haacked.com/images/haacked_com/WindowsLiveWriter/TDDandDependencyInjectionwithASP.NETMVC_EFA7/unit-test-project-selection_3.png" width="552" border="0" style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 5px; margin-bottom: 0px; margin-left: 5px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;/p&gt; &lt;p style="border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 15px; padding-left: 0px; font-family: calibri; font-size: 17px; line-height: 27px; "&gt; In a default installation, only the Visual Studio Unit Test project option is available. But MbUnit, xUnit.NET and others have installers available to get their test frameworks in this dialog.&lt;/p&gt;&lt;/span&gt;&lt;div&gt;&lt;a href="http://haacked.com/archive/2007/12/07/tdd-and-dependency-injection-with-asp.net-mvc.aspx"&gt;Continue to read more...&lt;/a&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-6364900015453076374?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/6364900015453076374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=6364900015453076374' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/6364900015453076374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/6364900015453076374'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/07/tdd-and-dependency-injection-with.html' title='TDD and Dependency Injection with ASP.NET MVC'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-6411240993662746158</id><published>2011-07-22T15:10:00.001+08:00</published><updated>2011-07-22T15:10:47.824+08:00</updated><title type='text'>How to Unit Test ASP.NET MVC Controllers</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 14px; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; letter-spacing: 0em; word-spacing: 0.2em; line-height: 20px; background-position: initial initial; background-repeat: initial initial; "&gt; Given one of the major advantages &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC has over traditional &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; web forms is testability, it's surprising how many code samples in books and on the web don't cover how to unit test controllers. There are also many examples of unit tests for &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC controllers that don't do enough, or do to much.&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; letter-spacing: 0em; word-spacing: 0.2em; line-height: 20px; background-position: initial initial; background-repeat: initial initial; "&gt; I want to show examples of good unit tests for &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC controllers and what to avoid so you don't end up testing more than you should.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; letter-spacing: 0em; word-spacing: 0.2em; line-height: 20px; background-position: initial initial; background-repeat: initial initial; "&gt; The code used in this post can be downloaded &lt;a href="http://cid-8a29bf85dc9538dc.skydrive.live.com/self.aspx/.Public/TestingMvcControllers.zip" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 128, 0); text-decoration: none; background-position: initial initial; background-repeat: initial initial; "&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; letter-spacing: 0em; word-spacing: 0.2em; line-height: 20px; background-position: initial initial; background-repeat: initial initial; "&gt; Let me start off by discussing what types of unit tests you should be creating for MVC controllers.&lt;/p&gt;&lt;ul style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "&gt; &lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 18px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; vertical-align: baseline; background-image: url(http://www.arrangeactassert.com/wp-content/themes/AAA/images/ul-bullet.gif); background-attachment: scroll; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: none; list-style-position: initial; list-style-image: initial; background-position: 0px 3px; background-repeat: no-repeat no-repeat; "&gt; Tests to check the correct action result is returned from a controller action. This includes information about the action result, such as the testing the correct view is returned for a view result.&lt;/li&gt;&lt;li style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 18px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; vertical-align: baseline; background-image: url(http://www.arrangeactassert.com/wp-content/themes/AAA/images/ul-bullet.gif); background-attachment: scroll; background-origin: initial; background-clip: initial; background-color: transparent; list-style-type: none; list-style-position: initial; list-style-image: initial; background-position: 0px 3px; background-repeat: no-repeat no-repeat; "&gt; Tests to check if the view model is what you expected. If you have a strongly typed view which expects class foo and you pass class bar to your view model, your code will compile, would result in a runtime error like the one shown below.&lt;/li&gt; &lt;/ul&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; letter-spacing: 0em; word-spacing: 0.2em; line-height: 20px; background-position: initial initial; background-repeat: initial initial; "&gt; &lt;img title="ASP NET MVC Runtime Error" src="http://www.arrangeactassert.com/wp-content/uploads/2009/09/ASP-NET-MVC-Runtime-Error.jpg" alt="ASP NET MVC Runtime Error" width="650" height="87" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; letter-spacing: 0em; word-spacing: 0.2em; line-height: 20px; background-position: initial initial; background-repeat: initial initial; "&gt; If you are testing anything more than this your controller is doing too much. One of the fundamental design practices for MVC controllers is too have skinny controllers. You should you should be able to view a controller method without having to scroll. This will be the focus of my next blog. On that subject you will notice examples in this post don't include action filters, I think they should be tested separately and is something for a future blog post.&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; letter-spacing: 0em; word-spacing: 0.2em; line-height: 20px; background-position: initial initial; background-repeat: initial initial; "&gt; In the unit tests examples below you will see one version using the &lt;a href="http://mvccontrib.codeplex.com/Wiki/View.aspx?title=TestHelper" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 128, 0); text-decoration: none; background-position: initial initial; background-repeat: initial initial; "&gt;MvcContrib.TestHelper&lt;/a&gt; assembly, and another without it. I can't recommend this enough because it saves you from writing as many extension methods and test helpers in tests to keep you code clean, readable and maintainable. This is even more important when it comes to doing test driven development because it allows you to concentrate on writing better unit tests without having write more lines of code than you need to.&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; letter-spacing: 0em; word-spacing: 0.2em; line-height: 20px; background-position: initial initial; background-repeat: initial initial; "&gt; Also notice how I create a variable for the expected view and route names for the unit tests not using the MvcContrib.TestHelper. Now if I decide to rename the view or route name I only have to change the code in one place.&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; letter-spacing: 0em; word-spacing: 0.2em; line-height: 20px; background-position: initial initial; background-repeat: initial initial; "&gt; If you're new to mocking frameworks and stubs, check out my &lt;a href="http://www.arrangeactassert.com/how-to-write-better-unit-tests-using-rhinomocks-and-stubs/" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 128, 0); text-decoration: none; background-position: initial initial; background-repeat: initial initial; "&gt;beginners guide to mocking frameworks&lt;/a&gt;.&lt;/p&gt; &lt;h3 class="subheading" style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 16px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; background-position: initial initial; background-repeat: initial initial; "&gt; Unit tests to check an &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; MVC controller returns the correct view&lt;/h3&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; letter-spacing: 0em; word-spacing: 0.2em; line-height: 20px; background-position: initial initial; background-repeat: initial initial; "&gt; When a controller has no conditional logic i.e. single code path that only returns a single action result, the unit test is straightforward.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; letter-spacing: 0em; word-spacing: 0.2em; line-height: 20px; background-position: initial initial; background-repeat: initial initial; "&gt; Controller Action:&lt;/p&gt;&lt;div id="highlighter_681270" class="syntaxhighlighter nogutter  " style="margin-top: 1em !important; margin-right: 0px !important; margin-bottom: 1em !important; margin-left: 0px !important; padding-top: 1px !important; padding-right: 1px !important; padding-bottom: 1px !important; padding-left: 1px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: rgb(27, 36, 38) !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: relative !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: 707px; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt; &lt;div class="lines" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt; &lt;div class="line alt1" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: rgb(27, 36, 38) !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt; &lt;table style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-collapse: collapse !important; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt; &lt;tbody style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;&lt;tr style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt; &lt;td class="content" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0.5em !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: initial !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: top !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; border-left-style: none !important; border-left-color: initial !important; color: rgb(185, 189, 182) !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt; &lt;code class="keyword" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; display: inline !important; color: rgb(91, 161, 207) !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;public&lt;/code&gt; &lt;code class="plain" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; display: inline !important; color: rgb(185, 189, 182) !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;ActionResult Index()&lt;/code&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="line alt2" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: rgb(27, 36, 38) !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt; &lt;table style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-collapse: collapse !important; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt; &lt;tbody style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;&lt;tr style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt; &lt;td class="content" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0.5em !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: initial !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: top !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; border-left-style: none !important; border-left-color: initial !important; color: rgb(185, 189, 182) !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt; &lt;code class="plain" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; display: inline !important; color: rgb(185, 189, 182) !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;{&lt;/code&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="line alt1" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: rgb(27, 36, 38) !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt; &lt;table style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-collapse: collapse !important; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt; &lt;tbody style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;&lt;tr style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt; &lt;td class="content" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0.5em !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: initial !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: top !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; border-left-style: none !important; border-left-color: initial !important; color: rgb(185, 189, 182) !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt; &lt;code class="spaces" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; display: inline !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;    &lt;/code&gt;&lt;code class="keyword" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; display: inline !important; color: rgb(91, 161, 207) !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;return&lt;/code&gt; &lt;code class="plain" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; display: inline !important; color: rgb(185, 189, 182) !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;View(&lt;/code&gt;&lt;code class="string" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; display: inline !important; color: rgb(92, 230, 56) !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;&amp;quot;Index&amp;quot;&lt;/code&gt;&lt;code class="plain" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; display: inline !important; color: rgb(185, 189, 182) !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;);&lt;/code&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="line alt2" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: rgb(27, 36, 38) !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt; &lt;table style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-collapse: collapse !important; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt; &lt;tbody style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;&lt;tr style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt; &lt;td class="content" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0.5em !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: initial !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: top !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; border-left-style: none !important; border-left-color: initial !important; color: rgb(185, 189, 182) !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt; &lt;code class="plain" style="margin-top: 0px !important; margin-right: 0px !important; margin-bottom: 0px !important; margin-left: 0px !important; padding-top: 0px !important; padding-right: 0px !important; padding-bottom: 0px !important; padding-left: 0px !important; border-top-width: 0px !important; border-right-width: 0px !important; border-bottom-width: 0px !important; border-left-width: 0px !important; border-style: initial; border-color: initial; outline-width: 0px !important; outline-style: initial !important; outline-color: initial !important; font-size: 1em !important; vertical-align: baseline !important; background-image: none !important; background-attachment: initial !important; background-origin: initial !important; background-clip: initial !important; background-color: initial !important; border-style: initial !important; border-color: initial !important; text-align: left !important; float: none !important; position: static !important; left: auto !important; top: auto !important; right: auto !important; bottom: auto !important; height: auto !important; width: auto !important; line-height: 1.1em !important; font-family: Consolas, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, Courier, monospace !important; font-weight: normal !important; font-style: normal !important; direction: ltr !important; display: inline !important; color: rgb(185, 189, 182) !important; background-position: initial initial !important; background-repeat: initial initial !important; "&gt;}&lt;/code&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; outline-width: 0px; outline-style: initial; outline-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; letter-spacing: 0em; word-spacing: 0.2em; line-height: 20px; background-position: initial initial; background-repeat: initial initial; "&gt; Unit Test:&lt;/p&gt;&lt;/span&gt;&lt;div&gt;&lt;a href="http://www.arrangeactassert.com/how-to-unit-test-asp-net-mvc-controllers/"&gt;Continue to read more...&lt;/a&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-6411240993662746158?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/6411240993662746158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=6411240993662746158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/6411240993662746158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/6411240993662746158'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/07/how-to-unit-test-aspnet-mvc-controllers.html' title='How to Unit Test ASP.NET MVC Controllers'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-940743833106051993</id><published>2011-07-19T18:01:00.001+08:00</published><updated>2011-07-19T18:01:02.142+08:00</updated><title type='text'>How to Add MVC 3.01 Project Types to the Azure Cloud Service Wizard</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: &amp;#39;Trebuchet MS&amp;#39;, Arial, sans-serif; font-size: 14px; "&gt;&lt;p style="line-height: 1.4em; text-align: justify; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt; A couple of weeks ago Microsoft released the &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=82cbd599-d29a-43e3-b78b-0f863d22811a&amp;amp;displaylang=en" style="background-image: url(http://jasonhaley.com/blog/themes/Seattle/images/img03.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; text-decoration: none; color: rgb(70, 130, 89); background-position: 0% 100%; background-repeat: repeat no-repeat; "&gt;ASP.NET MVC 3 Tools Update&lt;/a&gt; which includes new project templates for VS MVC projects – making my older post of &lt;a href="http://jasonhaley.com/blog/post/2011/03/22/How-to-Add-MVC-3-Project-Types-to-the-Azure-Cloud-Service-Wizard.aspx" style="background-image: url(http://jasonhaley.com/blog/themes/Seattle/images/img03.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; text-decoration: none; color: rgb(70, 130, 89); background-position: 0% 100%; background-repeat: repeat no-repeat; "&gt;How to Add MVC 3 Project Types to the Azure Cloud Service Wizard&lt;/a&gt; old and busted.  So this is a &lt;em&gt;refresh&lt;/em&gt; of that post.&lt;/p&gt; &lt;p style="line-height: 1.4em; text-align: justify; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;The MVC 3 Tools Update comes with 6 new project templates and ties in NuGet packages … however like before I took the easy way out (ie. didn't write my own Cloud Service Wizard).  What that means:&lt;/p&gt; &lt;ol&gt;&lt;li&gt;For the templates to work you need to have EF 4.1 installed since NuGet package syntax isn't supported by the Cloud Service Wizard (link to the EF 4.1 stand alone installer is below)&lt;/li&gt;&lt;li&gt;I did not create items for the new MVC Intranet project templates.&lt;/li&gt; &lt;/ol&gt;&lt;p style="line-height: 1.4em; text-align: justify; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;After you follow the steps below you'll get a dialog with the new project templates available for web roles when you create a new Cloud Service project, like shown below:&lt;/p&gt; &lt;p style="line-height: 1.4em; text-align: justify; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;a href="http://jasonhaley.com/images/How.01-Project-Types-to-the-Azure-Cloud-_11538/image.png" style="background-image: url(http://jasonhaley.com/blog/themes/Seattle/images/img03.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; text-decoration: none; color: rgb(70, 130, 89); background-position: 0% 100%; background-repeat: repeat no-repeat; "&gt;&lt;img title="image" border="0" alt="image" src="http://jasonhaley.com/images/How.01-Project-Types-to-the-Azure-Cloud-_11538/image_thumb.png" width="643" height="404" style="background-image: none; border-bottom-width: 0px; border-bottom-style: initial; border-bottom-color: initial; border-left-width: 0px; border-left-style: initial; border-left-color: initial; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-top-style: initial; border-top-color: initial; border-right-width: 0px; border-right-style: initial; border-right-color: initial; padding-top: 0px; "&gt;&lt;/a&gt;&lt;/p&gt; &lt;h2 style="font: normal normal bold 1.2em/normal &amp;#39;Trebuchet MS&amp;#39;, Arial, sans-serif; color: rgb(70, 130, 89); "&gt;Step 0: Get the templates&lt;/h2&gt;&lt;p style="line-height: 1.4em; text-align: justify; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt; Download the templates you need from my site:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://jasonhaley.com/files/WebRoleMvc301_aspx_cs40.zip" style="background-image: url(http://jasonhaley.com/blog/themes/Seattle/images/img03.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; text-decoration: none; color: rgb(70, 130, 89); background-position: 0% 100%; background-repeat: repeat no-repeat; "&gt;MVC 3.01 Default Template aspx View Engine&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://jasonhaley.com/files/WebRoleMvc301_Empty_aspx_cs40.zip" style="background-image: url(http://jasonhaley.com/blog/themes/Seattle/images/img03.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; text-decoration: none; color: rgb(70, 130, 89); background-position: 0% 100%; background-repeat: repeat no-repeat; "&gt;MVC 3.01 Empty Template aspx View Engine&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://jasonhaley.com/files/WebRoleMvc301_cshtml_cs40.zip" style="background-image: url(http://jasonhaley.com/blog/themes/Seattle/images/img03.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; text-decoration: none; color: rgb(70, 130, 89); background-position: 0% 100%; background-repeat: repeat no-repeat; "&gt;MVC 3.01 Default Template cshtml View Engine&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://jasonhaley.com/files/WebRoleMvc301_Empty_cshtml_cs40.zip" style="background-image: url(http://jasonhaley.com/blog/themes/Seattle/images/img03.gif); background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; text-decoration: none; color: rgb(70, 130, 89); background-position: 0% 100%; background-repeat: repeat no-repeat; "&gt;MVC 3.01 Empty Template cshtml View Engine&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;p style="line-height: 1.4em; text-align: justify; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;NOTE:  I did not include the Test Project Template&lt;/p&gt;&lt;/span&gt;&lt;div&gt;&lt;a href="http://jasonhaley.com/blog/post/2011/04/26/How-to-Add-MVC-301-Project-Types-to-the-Azure-Cloud-Service-Wizard.aspx"&gt;Continue to read more...&lt;/a&gt;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-940743833106051993?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/940743833106051993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=940743833106051993' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/940743833106051993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/940743833106051993'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/07/how-to-add-mvc-301-project-types-to.html' title='How to Add MVC 3.01 Project Types to the Azure Cloud Service Wizard'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-6585627320293406046</id><published>2011-07-15T11:00:00.001+08:00</published><updated>2011-07-15T12:15:57.116+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><category scheme='http://www.blogger.com/atom/ns#' term='jQuery'/><title type='text'>Simple Toggle with CSS &amp; jQuery</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana, Geneva, sans-serif; font-size: 12px; line-height: 24px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="margin-bottom: 1.9em; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Geneva, sans-serif; font-size: 12px; line-height: 24px;"&gt;I know there are a lot of toggle tutorials out there already, but when I was&amp;nbsp;learning the basics of jQuery and the toggle effect, I had a hard time finding resources on how to switch the "open" and "close" graphic state.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 1.9em; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Geneva, sans-serif; font-size: 12px; line-height: 24px;"&gt;After reading a few tutorials and mix and matching techniques I was able to achieve this effect, but wanted to share it with those who experienced the same frustration that I had gone through.&lt;span class="Apple-style-span" style="color: #bbbbbb;"&gt;&lt;span id="more-1723" style="outline-color: initial; outline-style: none; outline-width: initial;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="highlight" style="background-attachment: initial; background-clip: initial; background-color: #111111; background-image: initial; background-origin: initial; border-bottom-color: rgb(34, 34, 34); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(34, 34, 34); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(34, 34, 34); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(34, 34, 34); border-top-style: solid; border-top-width: 1px; color: #bbbbbb; font-size: 1.5em; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 20px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 40px; padding-left: 0px; padding-right: 0px; padding-top: 40px; text-align: center;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Geneva, sans-serif; font-size: 12px; line-height: 24px;"&gt;&lt;a class="view" href="http://www.sohtanaka.com/web-design/examples/toggle/" style="-webkit-box-shadow: rgb(29, 29, 29) 0px 1px 2px; background-attachment: initial; background-clip: initial; background-color: #99be39; background-image: url(http://stblog.tanaka.netdna-cdn.com/wp-content/themes/SohTanaka-2010/images/icon_view.png); background-origin: initial; background-position: 15px 50%; background-repeat: no-repeat no-repeat; border-top-color: rgb(178, 216, 82); border-top-style: solid; border-top-width: 1px; box-shadow: rgb(29, 29, 29) 0px 1px 2px; color: #333333; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 15px; padding-left: 50px; padding-right: 15px; padding-top: 15px; text-decoration: none; text-transform: uppercase;" target="_blank"&gt;VIEW DEMO&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: #bbbbbb; margin-bottom: 1.9em; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Geneva, sans-serif; font-size: 12px; line-height: 24px;"&gt;&lt;a href="http://www.sohtanaka.com/web-design/examples/toggle/" style="color: #c5e86a; outline-color: initial; outline-style: none; outline-width: initial;" target="_blank"&gt;&lt;img alt="Easy Toggle Tutorial - jQuery" class="center" src="http://www.sohtanaka.com/web-design/examples/toggle/sample.gif" style="background-attachment: initial; background-clip: initial; background-color: #333333; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-color: rgb(255, 255, 255); border-bottom-style: solid; border-bottom-width: 2px; border-color: initial; border-left-color: rgb(255, 255, 255); border-left-style: solid; border-left-width: 2px; border-right-color: rgb(255, 255, 255); border-right-style: solid; border-right-width: 2px; border-top-color: rgb(255, 255, 255); border-top-style: solid; border-top-width: 2px; border-width: initial; display: block; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 20px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; width: 496px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;h4 style="background-attachment: initial; background-clip: initial; background-color: initial; background-origin: initial; background-position: 0% 100%; clear: both; color: white; font-size: 1.5em; font-weight: 400; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 10px; padding-left: 0px; padding-right: 0px; padding-top: 10px; text-shadow: rgb(0, 0, 0) 1px 1px 1px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Geneva, sans-serif; font-size: 12px; line-height: 24px;"&gt;Step1. Wireframe &amp;amp; Style&lt;/span&gt;&lt;/h4&gt;&lt;div style="margin-bottom: 1.9em; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Geneva, sans-serif; font-size: 12px; line-height: 24px;"&gt;We start out with an h2 tag with a link as the "trigger" for our effect. Below our h2, we will have our container where we hold the content.&lt;br style="outline-color: initial; outline-style: none; outline-width: initial;" /&gt; &lt;small style="outline-color: initial; outline-style: none; outline-width: initial;"&gt;Note that we nest the container within another div. One of the main reasons I decided to do this was to prevent the padding from easing up and down during its action. Take a&lt;a href="http://www.sohtanaka.com/web-design/examples/toggle/bad.htm" style="outline-color: initial; outline-style: none; outline-width: initial;" target="_blank"&gt;look here&lt;/a&gt;&amp;nbsp;for a bad example of a toggle.&lt;/small&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 1.9em; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: none; outline-width: initial; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Geneva, sans-serif; font-size: 12px; line-height: 24px;"&gt;&lt;strong style="outline-color: initial; outline-style: none; outline-width: initial;"&gt;HTML&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre style="background-attachment: initial; background-clip: initial; background-color: white; background-origin: initial; background-position: 0% 0%; border-bottom-color: rgb(153, 153, 153); border-bottom-style: solid; border-bottom-width: 1px; border-left-color: rgb(153, 153, 153); border-left-style: solid; border-left-width: 1px; border-right-color: rgb(153, 153, 153); border-right-style: solid; border-right-width: 1px; border-top-color: rgb(153, 153, 153); border-top-style: solid; border-top-width: 1px; color: black; display: block; font-family: 'Courier New', Courier, monospace; font-size: 13px; line-height: 18px; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 10px; outline-color: initial; outline-style: none; outline-width: initial; overflow-x: scroll; overflow-y: hidden; padding-bottom: 17px; padding-left: 10px; padding-right: 10px; padding-top: 18px; position: relative; width: 502.99333404563407px; z-index: 50;"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Geneva, sans-serif; font-size: 12px; line-height: 24px;"&gt;&amp;lt;h2 class="trigger"&amp;gt;&amp;lt;a href="#"&amp;gt;Toggle Header&amp;lt;/a&amp;gt;&amp;lt;/h2&amp;gt; &amp;lt;div class="toggle_container"&amp;gt;  &amp;lt;div class="block"&amp;gt;   &amp;lt;h3&amp;gt;Content Header&amp;lt;/h3&amp;gt;   &lt;span style="color: #999999; outline-color: initial; outline-style: none; outline-width: initial;"&gt;&amp;lt;!--Content--&amp;gt;&lt;/span&gt;  &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;a href="http://www.sohtanaka.com/web-design/easy-toggle-jquery-tutorial/"&gt;Continue to read more...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-6585627320293406046?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/6585627320293406046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=6585627320293406046' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/6585627320293406046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/6585627320293406046'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/07/simple-toggle-with-css-jquery.html' title='Simple Toggle with CSS &amp; jQuery'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-4924171323060756539</id><published>2011-07-13T12:26:00.001+08:00</published><updated>2011-07-15T12:17:33.435+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MVC'/><title type='text'>asp.net mvc disable browser cache</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif; font-size: 13px; line-height: 12px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;table style="-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-collapse: collapse; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;tbody style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;tr style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &lt;td class="votecell" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: top; width: 60px;"&gt;&lt;div class="vote" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 13px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: center; vertical-align: baseline;"&gt;&lt;span class="vote-count-post" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #808185; display: block; font-size: 31px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="postcell" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;div class="post-text" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 5px; margin-left: 0px; margin-right: 5px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; width: 660px;"&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline; word-wrap: break-word;"&gt;&lt;b&gt;Sometimes the div in IE has problem, updatetargetid not refreshing on subsequent requests, especially on Ajax.ActionLink&lt;/b&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-size: 14px; line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-size: 14px; line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;I am looking for method to disable Browser Cache for&amp;nbsp;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;entire ASP.Net MVC Website&lt;/strong&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-size: 14px; line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;I found following method,&lt;/div&gt;&lt;pre class="default prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-height: 600px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: baseline; width: auto;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Response&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Cache&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;SetCacheability&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;(&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;System&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Web&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;HttpCacheability&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;NoCache&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;);&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Response&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Cache&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;.&lt;/span&gt;&lt;span class="typ" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #2b91af; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;SetNoStore&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;();&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-size: 14px; line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;and also meta tag method, ( It wont work for me , since some MVC Actions send partial html/json through ajax, without head,meta tag )&lt;/div&gt;&lt;pre class="default prettyprint" style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; line-height: 18px; margin-bottom: 10px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-height: 600px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: baseline; width: auto;"&gt;&lt;code style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span class="tag" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: maroon; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;lt;meta&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span class="atn" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;http-equiv&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;=&lt;/span&gt;&lt;span class="atv" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: blue; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;"PRAGMA"&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span class="atn" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: red; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;content&lt;/span&gt;&lt;span class="pun" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;=&lt;/span&gt;&lt;span class="atv" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: blue; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;"NO-CACHE"&lt;/span&gt;&lt;span class="tag" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: maroon; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&amp;gt;&lt;/span&gt;&lt;span class="pln" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: black; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-size: 14px; line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;But i am looking for simple method, to disable browser cache for entire website.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-size: 14px; line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline; word-wrap: break-word;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://stackoverflow.com/questions/1160105/asp-net-mvc-disable-browser-cache"&gt;Continue reading more...&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9317295-4924171323060756539?l=choihochong.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://choihochong.blogspot.com/feeds/4924171323060756539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=9317295&amp;postID=4924171323060756539' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/4924171323060756539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9317295/posts/default/4924171323060756539'/><link rel='alternate' type='text/html' href='http://choihochong.blogspot.com/2011/07/aspnet-mvc-disable-browser-cache.html' title='asp.net mvc disable browser cache'/><author><name>Choi Ho Chong</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9317295.post-273132022413636353</id><published>2011-07-09T17:12:00.001+08:00</published><updated>2011-07-09T17:12:17.991+08:00</updated><title type='text'>A very nice Automapper sample</title><content type='html'>&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: Arial, &amp;#39;Liberation Sans&amp;#39;, &amp;#39;DejaVu Sans&amp;#39;, sans-serif; font-size: 14px; line-height: 18px; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; clear: both; word-wrap: break-word; background-position: initial initial; background-repeat: initial initial; "&gt; I use the following approach:&lt;/p&gt;&lt;pre class="default prettyprint" style="margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(238, 238, 238); font-family: Consolas, Menlo, Monaco, &amp;#39;Lucida Console&amp;#39;, &amp;#39;Liberation Mono&amp;#39;, &amp;#39;DejaVu Sans Mono&amp;#39;, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, monospace, serif; overflow-x: auto; overflow-y: auto; width: auto; max-height: 600px; background-position: initial initial; background-repeat: initial initial; "&gt; &lt;code style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(238, 238, 238); font-family: Consolas, Menlo, Monaco, &amp;#39;Lucida Console&amp;#39;, &amp;#39;Liberation Mono&amp;#39;, &amp;#39;DejaVu Sans Mono&amp;#39;, &amp;#39;Bitstream Vera Sans Mono&amp;#39;, &amp;#39;Courier New&amp;#39;, monospace, serif; background-position: initial initial; background-repeat: initial initial; "&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;[&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;HttpPost&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;]&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt; &lt;/span&gt;&lt;span class="kwd" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 139); background-position: initial initial; background-repeat: initial initial; "&gt;public&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;ActionResult&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;Update&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;(&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;UserViewModel&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; uvm&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;)&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt; &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;{&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;     &lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;User&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; user &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;=&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; _userRepository&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;FindById&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;(&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;uvm&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;Id&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;);&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt; &lt;br&gt;    user&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;Forename&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; &lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;=&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt; uvm&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(43, 145, 175); background-position: initial initial; background-repeat: initial initial; "&gt;Forename&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;;&lt;/span&gt;&lt;span class="pln" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;&lt;br&gt;     user&lt;/span&gt;&lt;span class="pun" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; font-size: 14px; vertical-align: baseline; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: transparent; color: rgb(0, 0, 0); background-position: initial initial; background-repeat: initial initial; "&gt;.&lt;/span&gt;&lt;span class="typ" style="margin-top: 0px; margin-right: 0px; 
