<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Trikks</title>
	<atom:link href="http://trikks.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://trikks.wordpress.com</link>
	<description>Real Kung Fu</description>
	<lastBuildDate>Tue, 17 Jan 2012 16:00:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='trikks.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Trikks</title>
		<link>http://trikks.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://trikks.wordpress.com/osd.xml" title="Trikks" />
	<atom:link rel='hub' href='http://trikks.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Cannot change Language when UseCurrentUICulture is on</title>
		<link>http://trikks.wordpress.com/2012/01/17/cannot-change-language-when-usecurrentuiculture-is-on/</link>
		<comments>http://trikks.wordpress.com/2012/01/17/cannot-change-language-when-usecurrentuiculture-is-on/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 16:00:19 +0000</pubDate>
		<dc:creator>trikks</dc:creator>
				<category><![CDATA[EpiServer Commerce]]></category>

		<guid isPermaLink="false">http://trikks.wordpress.com/?p=333</guid>
		<description><![CDATA[This error occurs since you forgot to set the UseCurrentUICulture to false when instantiating the MetaDataContext object The error message looks something like this MetaDataPlusException was unhandled Cannot change Language when UseCurrentUICulture is on To solve this you simple need to set the UseCurrentUICulture to false when instantiating your MetaDataContext object, in example MetaDataContext metaDataContext [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trikks.wordpress.com&amp;blog=7671208&amp;post=333&amp;subd=trikks&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This error occurs since you forgot to set the UseCurrentUICulture to false when instantiating the MetaDataContext object</p>
<p>The error message looks something like this<br />
<code>MetaDataPlusException was unhandled<br />
Cannot change Language when UseCurrentUICulture is on</code></p>
<p>To solve this you simple need to set the UseCurrentUICulture to false when instantiating your MetaDataContext object, in example</p>
<pre>MetaDataContext metaDataContext = new MetaDataContext(connectionString)
{
    UseCurrentUICulture = false,
    Language = Capo.EPiServer.Constants.ProductCatalogConstants.DefaultLanguage
};</pre>
<p>Cheers!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trikks.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trikks.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/trikks.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/trikks.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/trikks.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/trikks.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/trikks.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/trikks.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/trikks.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/trikks.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/trikks.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/trikks.wordpress.com/333/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/trikks.wordpress.com/333/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/trikks.wordpress.com/333/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trikks.wordpress.com&amp;blog=7671208&amp;post=333&amp;subd=trikks&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trikks.wordpress.com/2012/01/17/cannot-change-language-when-usecurrentuiculture-is-on/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/90294caceec6e1e468a078d4f7f86ea1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trikks</media:title>
		</media:content>
	</item>
		<item>
		<title>EPiServer Commerce (Mediachase) Unable to cast object of type &#8216;System.DBNull&#8217; to type &#8216;System.String&#8217;. after creating a new catalog</title>
		<link>http://trikks.wordpress.com/2011/12/22/episerver-commerce-mediachase-unable-to-cast-object-of-type-system-dbnull-to-type-system-string-after-creating-a-new-catalog/</link>
		<comments>http://trikks.wordpress.com/2011/12/22/episerver-commerce-mediachase-unable-to-cast-object-of-type-system-dbnull-to-type-system-string-after-creating-a-new-catalog/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 21:03:54 +0000</pubDate>
		<dc:creator>trikks</dc:creator>
				<category><![CDATA[EpiServer Commerce]]></category>
		<category><![CDATA[Mediachase]]></category>

		<guid isPermaLink="false">http://trikks.wordpress.com/?p=317</guid>
		<description><![CDATA[This means you (or someone) where sloppy when creating a new catalog. the error may vary but check the InvalidCastException in the stacktrace for hints. In this scenario the catalog didn&#8217;t have a default language set, so removing it and adding that property when creating it solved the issue. Method to create new EPiServer Commerce [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trikks.wordpress.com&amp;blog=7671208&amp;post=317&amp;subd=trikks&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This means you (or someone) where sloppy when creating a new catalog. the error may vary but check the InvalidCastException in the stacktrace for hints.</p>
<p>In this scenario the catalog didn&#8217;t have a default language set, so removing it and adding that property when creating it solved the issue.</p>
<h2>Method to create new EPiServer Commerce Catalog</h2>
<p>Here is my method to create working catalog</p>
<pre class="csharp" style="font-family:monospace;font-size:11px;"><span style="color:#0600ff;">public</span> <span style="color:#0600ff;">static</span> <span style="color:#ff0000;">bool</span> Create<span style="color:#000000;">(</span><span style="color:#ff0000;">string</span> catalogName<span style="color:#000000;">)</span>
<span style="color:#000000;">{</span>
    <span style="color:#0600ff;">try</span>
    <span style="color:#000000;">{</span>
        CatalogDto catalogDto1 <span style="color:#008000;">=</span> CatalogContext.<span style="color:#0000ff;">Current</span>.<span style="color:#0000ff;">GetCatalogDto</span><span style="color:#000000;">(</span><span style="color:#008000;">-</span><span style="color:#ff0000;">1</span>, <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> CatalogResponseGroup<span style="color:#000000;">(</span>CatalogResponseGroup.<span style="color:#0000ff;">ResponseGroup</span>.<span style="color:#0000ff;">CatalogInfo</span><span style="color:#000000;">)</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
        CatalogDto.<span style="color:#0000ff;">CatalogRow</span> newCatalogRow <span style="color:#008000;">=</span> catalogDto1.<span style="color:#0000ff;">Catalog</span>.<span style="color:#0000ff;">NewCatalogRow</span><span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
        newCatalogRow.<span style="color:#0000ff;">Name</span> <span style="color:#008000;">=</span> catalogName<span style="color:#008000;">;</span>
        newCatalogRow.<span style="color:#0000ff;">StartDate</span> <span style="color:#008000;">=</span> DateTime.<span style="color:#0000ff;">Now</span><span style="color:#008000;">;</span>
        newCatalogRow.<span style="color:#0000ff;">EndDate</span> <span style="color:#008000;">=</span> DateTime.<span style="color:#0000ff;">Now</span>.<span style="color:#0000ff;">AddYears</span><span style="color:#000000;">(</span><span style="color:#ff0000;">20</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
        newCatalogRow.<span style="color:#0000ff;">IsActive</span> <span style="color:#008000;">=</span> true<span style="color:#008000;">;</span>
        newCatalogRow.<span style="color:#0000ff;">SortOrder</span> <span style="color:#008000;">=</span> <span style="color:#ff0000;">0</span><span style="color:#008000;">;</span>
        newCatalogRow.<span style="color:#0000ff;">ApplicationId</span> <span style="color:#008000;">=</span> AppContext.<span style="color:#0000ff;">Current</span>.<span style="color:#0000ff;">ApplicationId</span><span style="color:#008000;">;</span>
        newCatalogRow.<span style="color:#0000ff;">Created</span> <span style="color:#008000;">=</span> DateTime.<span style="color:#0000ff;">Now</span><span style="color:#008000;">;</span>
        newCatalogRow.<span style="color:#0000ff;">Modified</span> <span style="color:#008000;">=</span> DateTime.<span style="color:#0000ff;">Now</span><span style="color:#008000;">;</span>
        newCatalogRow.<span style="color:#0000ff;">IsPrimary</span> <span style="color:#008000;">=</span> false<span style="color:#008000;">;</span>
        newCatalogRow.<span style="color:#0000ff;">DefaultLanguage</span> <span style="color:#008000;">=</span> <span style="color:#666666;">"sv-SE"</span><span style="color:#008000;">;</span>

        <span style="color:#008080;font-style:italic;">// save</span>
        catalogDto1.<span style="color:#0000ff;">Catalog</span>.<span style="color:#0000ff;">AddCatalogRow</span><span style="color:#000000;">(</span>newCatalogRow<span style="color:#000000;">)</span><span style="color:#008000;">;</span>
        CatalogContext.<span style="color:#0000ff;">Current</span>.<span style="color:#0000ff;">SaveCatalog</span><span style="color:#000000;">(</span>catalogDto1<span style="color:#000000;">)</span><span style="color:#008000;">;</span>
        <span style="color:#0600ff;">return</span> true<span style="color:#008000;">;</span>
    <span style="color:#000000;">}</span>
    <span style="color:#0600ff;">catch</span>
    <span style="color:#000000;">{</span>
        <span style="color:#0600ff;">return</span> false<span style="color:#008000;">;</span>
    <span style="color:#000000;">}</span>
<span style="color:#000000;">}</span></pre>
<h2>Method to delete an EPiServer Commerce Catalog</h2>
<pre class="csharp" style="font-family:monospace;font-size:11px;"><span style="color:#0600FF;">public</span> <span style="color:#0600FF;">static</span> <span style="color:#0600FF;">void</span> Delete<span style="color:#000000;">(</span><span style="color:#FF0000;">string</span> catalogName<span style="color:#000000;">)</span>
<span style="color:#000000;">{</span>
    CatalogDto catalogs <span style="color:#008000;">=</span> CatalogContext.<span style="color:#0000FF;">Current</span>.<span style="color:#0000FF;">GetCatalogDto</span><span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
    CatalogDto.<span style="color:#0000FF;">CatalogRow</span> catalog <span style="color:#008000;">=</span> catalogs.<span style="color:#0000FF;">Catalog</span>.<span style="color:#0000FF;">FirstOrDefault</span><span style="color:#000000;">(</span>x <span style="color:#008000;">=&gt;</span> x.<span style="color:#0000FF;">Name</span>.<span style="color:#0000FF;">ToLower</span><span style="color:#000000;">(</span><span style="color:#000000;">)</span>.<span style="color:#0000FF;">Equals</span><span style="color:#000000;">(</span>catalogName.<span style="color:#0000FF;">ToLower</span><span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#000000;">)</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
    CatalogContext.<span style="color:#0000FF;">Current</span>.<span style="color:#0000FF;">DeleteCatalog</span><span style="color:#000000;">(</span>catalog.<span style="color:#0000FF;">CatalogId</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
<span style="color:#000000;">}</span></pre>
<h2>The full error</h2>
<div style="border:1px solid #ccc;">
<strong> Description: </strong>An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.</p>
<p><strong> Exception Details: </strong>System.InvalidCastException: Unable to cast object of type &#8216;System.DBNull&#8217; to type &#8216;System.String&#8217;.</p>
<p><strong>Source Error:</strong></p>
<table width="100%" bgcolor="#ffffcc">
<tbody>
<tr>
<td>An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p><strong>Stack Trace:</strong></p>
<table width="100%" bgcolor="#ffffcc">
<tbody>
<tr>
<td>
<pre>[InvalidCastException: Unable to cast object of type 'System.DBNull' to type 'System.String'.]
   Mediachase.Commerce.Catalog.Dto.CatalogRow.get_DefaultLanguage() +80

[StrongTypingException: The value for column 'DefaultLanguage' in table 'Catalog' is DBNull.]
   Mediachase.Commerce.Catalog.Dto.CatalogRow.get_DefaultLanguage() +193
   EPiServer.Business.Commerce.HttpModules.&lt;&gt;c__DisplayClass1b.&lt;GetAllCommerceLanguages&gt;b__18(CatalogRow catalogRow) +29
   System.Collections.Generic.List`1.ForEach(Action`1 action) +76
   EPiServer.Business.Commerce.HttpModules.ProductUrlRewriteModule.GetAllCommerceLanguages() +337
   EPiServer.Business.Commerce.HttpModules.ProductUrlRewriteModule.GetProductByLink(UrlBuilder url) +729
   EPiServer.Business.Commerce.HttpModules.ProductUrlRewriteModule.UrlRewriteProvider_ConvertingToInternal(Object sender, UrlRewriteEventArgs e) +147
   EPiServer.Web.UrlRewriteProvider.OnConvertingToInternal(UrlRewriteEventArgs e) +26
   EPiServer.Web.FriendlyUrlRewriteProvider.TryConvertToInternal(UrlBuilder url, LanguageApiMode apiMode, CultureInfo&amp; preferredCulture, Object&amp; internalObject) +173
   EPiServer.Web.FriendlyUrlRewriteProvider.TryConvertToInternal(UrlBuilder url, CultureInfo&amp; preferredCulture, Object&amp; internalObject) +23
   EPiServer.Web.UrlRewriteModule.HttpUrlRewriteToInternal(UrlBuilder url) +483
   EPiServer.Web.UrlRewriteModuleBase.BeginRequestEventHandler(Object sender, EventArgs e) +205
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp; completedSynchronously) +171</pre>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<hr size="1" width="100%" />
<p><strong>Version Information:</strong> Microsoft .NET Framework Version:2.0.50727.5448; ASP.NET Version:2.0.50727.5420</p>
<p>&nbsp;</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trikks.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trikks.wordpress.com/317/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/trikks.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/trikks.wordpress.com/317/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/trikks.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/trikks.wordpress.com/317/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/trikks.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/trikks.wordpress.com/317/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/trikks.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/trikks.wordpress.com/317/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/trikks.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/trikks.wordpress.com/317/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/trikks.wordpress.com/317/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/trikks.wordpress.com/317/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trikks.wordpress.com&amp;blog=7671208&amp;post=317&amp;subd=trikks&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trikks.wordpress.com/2011/12/22/episerver-commerce-mediachase-unable-to-cast-object-of-type-system-dbnull-to-type-system-string-after-creating-a-new-catalog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/90294caceec6e1e468a078d4f7f86ea1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trikks</media:title>
		</media:content>
	</item>
		<item>
		<title>Getting the previous and next record from list using linq</title>
		<link>http://trikks.wordpress.com/2011/12/01/getting-the-previous-and-next-record-from-list-using-linq/</link>
		<comments>http://trikks.wordpress.com/2011/12/01/getting-the-previous-and-next-record-from-list-using-linq/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 22:31:57 +0000</pubDate>
		<dc:creator>trikks</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://trikks.wordpress.com/?p=310</guid>
		<description><![CDATA[Generic lists, you just gotta love them, especially if using linq! Well to the point. Lets say you got a list with Guid&#8217;s of which you know one and based on that knowledge want to get either the one before or after. Guid a = new Guid("709DBFA9-88B3-4518-A32F-C21B6AAE2917"); Guid b = new Guid("B9956FC6-FD9B-4F52-B96E-C1D0C29E1E55"); Guid c = [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trikks.wordpress.com&amp;blog=7671208&amp;post=310&amp;subd=trikks&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Generic lists, you just gotta love them, especially if using linq!</p>
<p>Well to the point. Lets say you got a list with Guid&#8217;s of which you know one and based on that knowledge want to get either the one before or after.</p>
<pre class="csharp" style="font-family:monospace;font-size:11px;">Guid a <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> Guid<span style="color:#000000;">(</span><span style="color:#666666;">"709DBFA9-88B3-4518-A32F-C21B6AAE2917"</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
Guid b <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> Guid<span style="color:#000000;">(</span><span style="color:#666666;">"B9956FC6-FD9B-4F52-B96E-C1D0C29E1E55"</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
Guid c <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> Guid<span style="color:#000000;">(</span><span style="color:#666666;">"BFB9054A-AB18-4349-BCB4-19979D3486BB"</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span> <span style="color:#008080;font-style:italic;">// &lt;-- you know this one, the c guid</span>
Guid d <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> Guid<span style="color:#000000;">(</span><span style="color:#666666;">"1A8D6CAB-FD42-4517-A0EA-08D3F64DCD69"</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
Guid e <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> Guid<span style="color:#000000;">(</span><span style="color:#666666;">"02A8CA8A-5BC8-41BE-8AB8-332EF0B5407B"</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
List<span style="color:#008000;">&lt;</span>Guid<span style="color:#008000;">&gt;</span> guidList <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> List<span style="color:#008000;">&lt;</span>Guid<span style="color:#008000;">&gt;</span> <span style="color:#000000;">{</span>a, b, c, d, e<span style="color:#000000;">}</span><span style="color:#008000;">;</span></pre>
<h2>Solution</h2>
<p>Oh wow, now I need to start building indexes pushing and popping yada yada. Well no, a better way to solve this is by using linq.<br />
Getting the record after the one you search for</p>
<pre class="csharp" style="font-family:monospace;font-size:11px;"><span style="color:#0600ff;">private</span> <span style="color:#0600ff;">static</span> Guid GetNext<span style="color:#000000;">(</span>IEnumerable<span style="color:#008000;">&lt;</span>Guid<span style="color:#008000;">&gt;</span> guidList, Guid current<span style="color:#000000;">)</span>
<span style="color:#000000;">{</span>
    <span style="color:#0600ff;">return</span> guidList.<span style="color:#0000ff;">SkipWhile</span><span style="color:#000000;">(</span>i <span style="color:#008000;">=&gt;</span> <span style="color:#008000;">!</span>x.<span style="color:#0000ff;">Equals</span><span style="color:#000000;">(</span>current<span style="color:#000000;">)</span><span style="color:#000000;">)</span>.<span style="color:#0000ff;">Skip</span><span style="color:#000000;">(</span><span style="color:#ff0000;">1</span><span style="color:#000000;">)</span>.<span style="color:#0000ff;">First</span><span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
<span style="color:#000000;">}</span></pre>
<pre class="csharp" style="font-family:monospace;font-size:11px;"><span class="Apple-style-span" style="font-family:Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif;font-size:15px;font-weight:bold;line-height:19px;white-space:normal;">And to get the record before...</span></pre>
<pre class="csharp" style="font-family:monospace;font-size:11px;"><span style="color:#0600ff;">private</span> <span style="color:#0600ff;">static</span> Guid GetPrevious<span style="color:#000000;">(</span>IEnumerable<span style="color:#008000;">&lt;</span>Guid<span style="color:#008000;">&gt;</span> guidList, Guid current<span style="color:#000000;">)</span>
<span style="color:#000000;">{</span>
    <span style="color:#0600ff;">return</span> guidList.<span style="color:#0000ff;">TakeWhile</span><span style="color:#000000;">(</span>i <span style="color:#008000;">=&gt;</span> <span style="color:#008000;">!</span>x.<span style="color:#0000ff;">Equals</span><span style="color:#000000;">(</span>current<span style="color:#000000;">)</span><span style="color:#000000;">)</span>.<span style="color:#0000ff;">Last</span><span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
<span style="color:#000000;">}</span></pre>
<h2>Using Generics (you should)</h2>
<p>Whilst separated methods can be neat sometimes a lot of time and engineering can be saved using some generics instead, this means you can dynamically change the type of list you want to search for a certain record.</p>
<h3>In example</h3>
<pre class="csharp" style="font-family:monospace;font-size:11px;"><span style="color:#0600ff;">private</span> <span style="color:#0600ff;">static</span> T GetNext<span style="color:#008000;">&lt;</span>T<span style="color:#008000;">&gt;</span><span style="color:#000000;">(</span>IEnumerable<span style="color:#008000;">&lt;</span>T<span style="color:#008000;">&gt;</span> list, T current<span style="color:#000000;">)</span>
<span style="color:#000000;">{</span>
    <span style="color:#0600ff;">try</span>
    <span style="color:#000000;">{</span>
        <span style="color:#0600ff;">return</span> list.<span style="color:#0000ff;">SkipWhile</span><span style="color:#000000;">(</span>x <span style="color:#008000;">=&gt;</span> <span style="color:#008000;">!</span>x.<span style="color:#0000ff;">Equals</span><span style="color:#000000;">(</span>current<span style="color:#000000;">)</span><span style="color:#000000;">)</span>.<span style="color:#0000ff;">Skip</span><span style="color:#000000;">(</span><span style="color:#ff0000;">1</span><span style="color:#000000;">)</span>.<span style="color:#0000ff;">First</span><span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
    <span style="color:#000000;">}</span>
    <span style="color:#0600ff;">catch</span>
    <span style="color:#000000;">{</span>
        <span style="color:#0600ff;">return</span> <span style="color:#0600ff;">default</span><span style="color:#000000;">(</span>T<span style="color:#000000;">)</span><span style="color:#008000;">;</span>
    <span style="color:#000000;">}</span>
<span style="color:#000000;">}</span>

<span style="color:#0600ff;">private</span> <span style="color:#0600ff;">static</span> T GetPrevious<span style="color:#008000;">&lt;</span>T<span style="color:#008000;">&gt;</span><span style="color:#000000;">(</span>IEnumerable<span style="color:#008000;">&lt;</span>T<span style="color:#008000;">&gt;</span> list, T current<span style="color:#000000;">)</span>
<span style="color:#000000;">{</span>
    <span style="color:#0600ff;">try</span>
    <span style="color:#000000;">{</span>
        <span style="color:#0600ff;">return</span> list.<span style="color:#0000ff;">TakeWhile</span><span style="color:#000000;">(</span>x <span style="color:#008000;">=&gt;</span> <span style="color:#008000;">!</span>x.<span style="color:#0000ff;">Equals</span><span style="color:#000000;">(</span>current<span style="color:#000000;">)</span><span style="color:#000000;">)</span>.<span style="color:#0000ff;">Last</span><span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
    <span style="color:#000000;">}</span>
    <span style="color:#0600ff;">catch</span>
    <span style="color:#000000;">{</span>
        <span style="color:#0600ff;">return</span> <span style="color:#0600ff;">default</span><span style="color:#000000;">(</span>T<span style="color:#000000;">)</span><span style="color:#008000;">;</span>
    <span style="color:#000000;">}</span>
<span style="color:#000000;">}</span></pre>
<h3>Some usage</h3>
<h4>String example</h4>
<pre class="csharp" style="font-family:monospace;font-size:11px;"><span style="color:#ff0000;">string</span> f <span style="color:#008000;">=</span> <span style="color:#666666;">"first"</span><span style="color:#008000;">;</span>
<span style="color:#ff0000;">string</span> g <span style="color:#008000;">=</span> <span style="color:#666666;">"second"</span><span style="color:#008000;">;</span>
<span style="color:#ff0000;">string</span> h <span style="color:#008000;">=</span> <span style="color:#666666;">"third"</span><span style="color:#008000;">;</span>
<span style="color:#ff0000;">string</span> i <span style="color:#008000;">=</span> <span style="color:#666666;">"fourth"</span><span style="color:#008000;">;</span>
<span style="color:#ff0000;">string</span> j <span style="color:#008000;">=</span> <span style="color:#666666;">"fifth"</span><span style="color:#008000;">;</span>
List<span style="color:#008000;">&lt;</span><span style="color:#ff0000;">string</span><span style="color:#008000;">&gt;</span> stringList <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> List<span style="color:#008000;">&lt;</span><span style="color:#ff0000;">string</span><span style="color:#008000;">&gt;</span><span style="color:#000000;">{</span>f,g,h,i,j<span style="color:#000000;">}</span><span style="color:#008000;">;</span>

var prev <span style="color:#008000;">=</span> GetPrevious<span style="color:#008000;">&lt;</span><span style="color:#ff0000;">string</span><span style="color:#008000;">&gt;</span><span style="color:#000000;">(</span>stringList, j<span style="color:#000000;">)</span><span style="color:#008000;">;</span>
var next <span style="color:#008000;">=</span> GetNext<span style="color:#008000;">&lt;</span><span style="color:#ff0000;">string</span><span style="color:#008000;">&gt;</span><span style="color:#000000;">(</span>stringList, j<span style="color:#000000;">)</span><span style="color:#008000;">;</span></pre>
<h4>Guid example</h4>
<pre class="csharp" style="font-family:monospace;font-size:11px;">Guid a <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> Guid<span style="color:#000000;">(</span><span style="color:#666666;">"709DBFA9-88B3-4518-A32F-C21B6AAE2917"</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
Guid b <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> Guid<span style="color:#000000;">(</span><span style="color:#666666;">"B9956FC6-FD9B-4F52-B96E-C1D0C29E1E55"</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
Guid c <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> Guid<span style="color:#000000;">(</span><span style="color:#666666;">"BFB9054A-AB18-4349-BCB4-19979D3486BB"</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
Guid d <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> Guid<span style="color:#000000;">(</span><span style="color:#666666;">"1A8D6CAB-FD42-4517-A0EA-08D3F64DCD69"</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
Guid e <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> Guid<span style="color:#000000;">(</span><span style="color:#666666;">"02A8CA8A-5BC8-41BE-8AB8-332EF0B5407B"</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
List<span style="color:#008000;">&lt;</span>Guid<span style="color:#008000;">&gt;</span> guidList <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> List<span style="color:#008000;">&lt;</span>Guid<span style="color:#008000;">&gt;</span> <span style="color:#000000;">{</span>a, b, c, d, e<span style="color:#000000;">}</span><span style="color:#008000;">;</span>

var prev <span style="color:#008000;">=</span> GetPrevious<span style="color:#008000;">&lt;</span>Guid<span style="color:#008000;">&gt;</span><span style="color:#000000;">(</span>guidList, c<span style="color:#000000;">)</span><span style="color:#008000;">;</span>
var next <span style="color:#008000;">=</span> GetNext<span style="color:#008000;">&lt;</span>Guid<span style="color:#008000;">&gt;</span><span style="color:#000000;">(</span>guidList, c<span style="color:#000000;">)</span><span style="color:#008000;">;</span></pre>
<p>-</p>
<p>Cheers!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trikks.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trikks.wordpress.com/310/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/trikks.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/trikks.wordpress.com/310/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/trikks.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/trikks.wordpress.com/310/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/trikks.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/trikks.wordpress.com/310/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/trikks.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/trikks.wordpress.com/310/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/trikks.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/trikks.wordpress.com/310/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/trikks.wordpress.com/310/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/trikks.wordpress.com/310/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trikks.wordpress.com&amp;blog=7671208&amp;post=310&amp;subd=trikks&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trikks.wordpress.com/2011/12/01/getting-the-previous-and-next-record-from-list-using-linq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/90294caceec6e1e468a078d4f7f86ea1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trikks</media:title>
		</media:content>
	</item>
		<item>
		<title>Failure adding assembly to the cache: This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.</title>
		<link>http://trikks.wordpress.com/2011/11/19/failure-adding-assembly-to-the-cache-this-assembly-is-built-by-a-runtime-newer-than-the-currently-loaded-runtime-and-cannot-be-loaded/</link>
		<comments>http://trikks.wordpress.com/2011/11/19/failure-adding-assembly-to-the-cache-this-assembly-is-built-by-a-runtime-newer-than-the-currently-loaded-runtime-and-cannot-be-loaded/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 08:41:11 +0000</pubDate>
		<dc:creator>trikks</dc:creator>
				<category><![CDATA[.net]]></category>

		<guid isPermaLink="false">http://trikks.wordpress.com/?p=306</guid>
		<description><![CDATA[So you got the &#8220;Failure adding assembly to the cache: This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.&#8221; when running Gacutil Well good news is that this is easy to fix, you are simply running an old version of gacutil open a terminal en enter gacutil, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trikks.wordpress.com&amp;blog=7671208&amp;post=306&amp;subd=trikks&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So you got the &#8220;Failure adding assembly to the cache: This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.&#8221; when running Gacutil</p>
<p>Well good news is that this is easy to fix, you are simply running an old version of gacutil</p>
<p>open a terminal en enter gacutil, maybe something like<br />
PS C:\Windows\Microsoft.NET\Framework\v1.1.4322&gt; .\gacutil.exe<br />
Microsoft (R) .NET Global Assembly Cache Utility. <strong>Version 3.5.30729.1</strong><br />
Copyright (c) Microsoft Corporation. All rights reserved.<br />
Check the version</p>
<p>Now this option may vary a bit, but in my case the gacutil I should use was in this folder</p>
<pre>C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\x64</pre>
<p>PS C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\x64&gt; gacutil<br />
Microsoft (R) .NET Global Assembly Cache Utility. <strong>Version 4.0.30319.1</strong><br />
Copyright (c) Microsoft Corporation. All rights reserved.</p>
<p>So, by simply switching to this version my problems are solved!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trikks.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trikks.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/trikks.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/trikks.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/trikks.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/trikks.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/trikks.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/trikks.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/trikks.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/trikks.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/trikks.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/trikks.wordpress.com/306/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/trikks.wordpress.com/306/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/trikks.wordpress.com/306/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trikks.wordpress.com&amp;blog=7671208&amp;post=306&amp;subd=trikks&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trikks.wordpress.com/2011/11/19/failure-adding-assembly-to-the-cache-this-assembly-is-built-by-a-runtime-newer-than-the-currently-loaded-runtime-and-cannot-be-loaded/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/90294caceec6e1e468a078d4f7f86ea1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trikks</media:title>
		</media:content>
	</item>
		<item>
		<title>Compress a file using GZip and convert it to Base64 &#8211; and back &#8211; using C#</title>
		<link>http://trikks.wordpress.com/2011/11/03/compress-a-file-using-gzip-and-convert-it-to-base64-and-back-using-c/</link>
		<comments>http://trikks.wordpress.com/2011/11/03/compress-a-file-using-gzip-and-convert-it-to-base64-and-back-using-c/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 12:54:35 +0000</pubDate>
		<dc:creator>trikks</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://trikks.wordpress.com/?p=294</guid>
		<description><![CDATA[Sometimes you want to store a file in a database or even transfer stuff over the Internet through different protocols, maybe even to other platforms. In many of these cases the traditional methods simply wont do. Storing files in databases is usually made by sending the file as a blob to the database and it [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trikks.wordpress.com&amp;blog=7671208&amp;post=294&amp;subd=trikks&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Sometimes you want to store a file in a database or even transfer stuff over the Internet through different protocols, maybe even to other platforms. In many of these cases the traditional methods simply wont do.</p>
<p>Storing files in databases is usually made by sending the file as a blob to the database and it usually works out pretty good to, but in some cases you simply want a different structure. I often tend to end up in projects with several platforms and languages, this means XML or similar languages like JSON. Anyway binary data is out, you need a different way to transfer or store files.</p>
<p>When it comes to files I recommend using GZip compression which is shipped as a standard with .NET. If you want more simple compression you should be looking at gzdeflate and gzinflate.</p>
<p>If you only want the source project download it here  <a href="http://www.trikks.com/download.php?id=CompressConsole.zip">http://www.trikks.com/download.php?id=CompressConsole.zip</a></p>
<h2>Compressing a file</h2>
<pre class="csharp" style="font-family:monospace;font-size:10px;"><span style="color:#ff0000;">string</span> fileName <span style="color:#008000;">=</span> <span style="color:#666666;">@"c:\test.pdf"</span><span style="color:#008000;">;</span>
<span style="color:#ff0000;">byte</span><span style="color:#000000;">[</span><span style="color:#000000;">]</span> file <span style="color:#008000;">=</span> File.<span style="color:#0000ff;">ReadAllBytes</span><span style="color:#000000;">(</span>fileName<span style="color:#000000;">)</span><span style="color:#008000;">;</span>

<span style="color:#008080;font-style:italic;">// Compress</span>
<span style="color:#ff0000;">byte</span><span style="color:#000000;">[</span><span style="color:#000000;">]</span> compress <span style="color:#008000;">= </span><span style="color:#0000ff;">Compress</span><span style="color:#000000;">(</span>file<span style="color:#000000;">)</span><span style="color:#008000;">;</span></pre>
<pre class="csharp" style="font-family:monospace;font-size:10px;"><span style="color:#0600ff;">public</span> <span style="color:#0600ff;">static</span> <span style="color:#ff0000;">byte</span>[] Compress(<span style="color:#ff0000;">byte</span>[] data)</pre>
<pre class="csharp" style="font-family:monospace;font-size:10px;"><span style="color:#000000;">{</span>
    <span style="color:#0600ff;">using</span> <span style="color:#000000;">(</span>var compressedStream <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> MemoryStream<span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#000000;">)</span>
    <span style="color:#0600ff;">using</span> <span style="color:#000000;">(</span>var zipStream <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> GZipStream<span style="color:#000000;">(</span>compressedStream, CompressionMode.<span style="color:#0000ff;">Compress</span><span style="color:#000000;">)</span><span style="color:#000000;">)</span>
    <span style="color:#000000;">{</span>
        zipStream.<span style="color:#0000ff;">Write</span><span style="color:#000000;">(</span>data, <span style="color:#ff0000;">0</span>, data.<span style="color:#0000ff;">Length</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
        zipStream.<span style="color:#0000ff;">Close</span><span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
        <span style="color:#0600ff;">return</span> compressedStream.<span style="color:#0000ff;">ToArray</span><span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
    <span style="color:#000000;">}</span>
<span style="color:#000000;">}</span></pre>
<h2>Encode the byte array</h2>
<pre class="csharp" style="font-family:monospace;font-size:10px;"><span style="color:#ff0000;">string</span> encoded <span style="color:#008000;">= </span><span style="color:#0000ff;">base64_encode</span><span style="color:#000000;">(</span>compress<span style="color:#000000;">)</span><span style="color:#008000;">;</span></pre>
<pre class="csharp" style="font-family:monospace;font-size:10px;"><span style="color:#0600ff;">public</span> <span style="color:#ff0000;">string</span> base64_encode(<span style="color:#ff0000;">byte</span>[] data)</pre>
<pre class="csharp" style="font-family:monospace;font-size:10px;"><span style="color:#000000;">{</span>
	<span style="color:#0600ff;">if</span> <span style="color:#000000;">(</span>data <span style="color:#008000;">==</span> <span style="color:#0600ff;">null</span><span style="color:#000000;">)</span>
		<span style="color:#0600ff;">throw</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> ArgumentNullException<span style="color:#000000;">(</span><span style="color:#666666;">"data"</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
	<span style="color:#0600ff;">return</span> Convert.<span style="color:#0000ff;">ToBase64String</span><span style="color:#000000;">(</span>data<span style="color:#000000;">)</span><span style="color:#008000;">;</span>
<span style="color:#000000;">}</span></pre>
<p>The contents of &#8220;encoded&#8221; is your file but compressed and base64 encoded. You can take this string and send it through any protocol allowing strings.</p>
<p>If we print the encoded string it looks something like this</p>
<p><a href="http://trikks.files.wordpress.com/2011/11/screen-shot-2011-11-03-at-13-26-00.png"><img class="alignnone size-full wp-image-297" title="Screen Shot 2011-11-03 at 13.26.00" src="http://trikks.files.wordpress.com/2011/11/screen-shot-2011-11-03-at-13-26-00.png" alt="" width="677" height="342" /></a></p>
<h2>Decode and Decompress</h2>
<pre class="csharp" style="font-family:monospace;font-size:10px;"><span style="color:#008080;font-style:italic;">// Decode and decompress</span>
<span style="color:#ff0000;">byte</span><span style="color:#000000;">[</span><span style="color:#000000;">]</span> decoded <span style="color:#008000;">=</span> <span style="color:#0000ff;">base64_decode</span><span style="color:#000000;">(</span>encoded<span style="color:#000000;">)</span><span style="color:#008000;">;</span>
<span style="color:#ff0000;">byte</span><span style="color:#000000;">[</span><span style="color:#000000;">]</span> decompressed <span style="color:#008000;">=</span> <span style="color:#0000ff;">Decompress</span><span style="color:#000000;">(</span>decoded<span style="color:#000000;">)</span><span style="color:#008000;">;</span>
File.<span style="color:#0000ff;">WriteAllBytes</span><span style="color:#000000;">(</span><span style="color:#666666;">@"c:\out.pdf"</span>, decompressed<span style="color:#000000;">)</span><span style="color:#008000;">;</span></pre>
<pre class="csharp" style="font-family:monospace;font-size:10px;"><span style="color:#0600ff;">public</span> <span style="color:#0600ff;">static</span> <span style="color:#ff0000;">byte</span><span style="color:#000000;">[</span><span style="color:#000000;">]</span> base64_decode<span style="color:#000000;">(</span><span style="color:#ff0000;">string</span> encodedData<span style="color:#000000;">)</span>
<span style="color:#000000;">{</span>
    <span style="color:#ff0000;">byte</span><span style="color:#000000;">[</span><span style="color:#000000;">]</span> encodedDataAsBytes <span style="color:#008000;">=</span> Convert.<span style="color:#0000ff;">FromBase64String</span><span style="color:#000000;">(</span>encodedData<span style="color:#000000;">)</span><span style="color:#008000;">;</span>
    <span style="color:#0600ff;">return</span> encodedDataAsBytes<span style="color:#008000;">;</span>
<span style="color:#000000;">}</span></pre>
<pre class="csharp" style="font-family:monospace;font-size:10px;"><span style="color:#0600ff;">public</span> <span style="color:#0600ff;">static</span> <span style="color:#ff0000;">byte</span><span style="color:#000000;">[</span><span style="color:#000000;">]</span> Decompress<span style="color:#000000;">(</span><span style="color:#ff0000;">byte</span><span style="color:#000000;">[</span><span style="color:#000000;">]</span> data<span style="color:#000000;">)</span>
<span style="color:#000000;">{</span>
    <span style="color:#0600ff;">using</span> <span style="color:#000000;">(</span>var compressedStream <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> MemoryStream<span style="color:#000000;">(</span>data<span style="color:#000000;">)</span><span style="color:#000000;">)</span>
    <span style="color:#0600ff;">using</span> <span style="color:#000000;">(</span>var zipStream <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> GZipStream<span style="color:#000000;">(</span>compressedStream, CompressionMode.<span style="color:#0000ff;">Decompress</span><span style="color:#000000;">)</span><span style="color:#000000;">)</span>
    <span style="color:#0600ff;">using</span> <span style="color:#000000;">(</span>var resultStream <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> MemoryStream<span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#000000;">)</span>
    <span style="color:#000000;">{</span>
        var buffer <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> <span style="color:#ff0000;">byte</span><span style="color:#000000;">[</span><span style="color:#ff0000;">4096</span><span style="color:#000000;">]</span><span style="color:#008000;">;</span>
        <span style="color:#ff0000;">int</span> read<span style="color:#008000;">;</span>

        <span style="color:#0600ff;">while</span> <span style="color:#000000;">(</span><span style="color:#000000;">(</span>read <span style="color:#008000;">=</span> zipStream.<span style="color:#0000ff;">Read</span><span style="color:#000000;">(</span>buffer, <span style="color:#ff0000;">0</span>, buffer.<span style="color:#0000ff;">Length</span><span style="color:#000000;">)</span><span style="color:#000000;">)</span> <span style="color:#008000;">&gt;</span> <span style="color:#ff0000;">0</span><span style="color:#000000;">)</span>
        <span style="color:#000000;">{</span>
            resultStream.<span style="color:#0000ff;">Write</span><span style="color:#000000;">(</span>buffer, <span style="color:#ff0000;">0</span>, read<span style="color:#000000;">)</span><span style="color:#008000;">;</span>
        <span style="color:#000000;">}</span>

        <span style="color:#0600ff;">return</span> resultStream.<span style="color:#0000ff;">ToArray</span><span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
    <span style="color:#000000;">}</span>
<span style="color:#000000;">}</span></pre>
<p>Now that wasn&#8217;t hard was it <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>You can download a visual studio project here <a href="http://www.trikks.com/download.php?id=CompressConsole.zip">http://www.trikks.com/download.php?id=CompressConsole.zip</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trikks.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trikks.wordpress.com/294/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/trikks.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/trikks.wordpress.com/294/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/trikks.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/trikks.wordpress.com/294/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/trikks.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/trikks.wordpress.com/294/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/trikks.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/trikks.wordpress.com/294/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/trikks.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/trikks.wordpress.com/294/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/trikks.wordpress.com/294/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/trikks.wordpress.com/294/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trikks.wordpress.com&amp;blog=7671208&amp;post=294&amp;subd=trikks&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trikks.wordpress.com/2011/11/03/compress-a-file-using-gzip-and-convert-it-to-base64-and-back-using-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/90294caceec6e1e468a078d4f7f86ea1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trikks</media:title>
		</media:content>

		<media:content url="http://trikks.files.wordpress.com/2011/11/screen-shot-2011-11-03-at-13-26-00.png" medium="image">
			<media:title type="html">Screen Shot 2011-11-03 at 13.26.00</media:title>
		</media:content>
	</item>
		<item>
		<title>Joomla! 1.7 Hello World Module Evolved</title>
		<link>http://trikks.wordpress.com/2011/10/06/joomla-1-7-hello-world-module-evolved/</link>
		<comments>http://trikks.wordpress.com/2011/10/06/joomla-1-7-hello-world-module-evolved/#comments</comments>
		<pubDate>Thu, 06 Oct 2011 21:10:26 +0000</pubDate>
		<dc:creator>trikks</dc:creator>
				<category><![CDATA[Joomla]]></category>

		<guid isPermaLink="false">http://trikks.wordpress.com/?p=281</guid>
		<description><![CDATA[So you want to write some modules for Joomla! 1.7 I suppose. Well the good news is that this is a part of Joomla that still simple to work with. I&#8217;ve made this mod_helloworld a bit more complex than the example presented on other sites since I introduce one of the most useful elements in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trikks.wordpress.com&amp;blog=7671208&amp;post=281&amp;subd=trikks&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So you want to write some modules for Joomla! 1.7 I suppose. Well the good news is that this is a part of Joomla that still simple to work with.</p>
<p>I&#8217;ve made this mod_helloworld a bit more complex than the example presented on other sites since I introduce one of the most useful elements in Joomla, the parameters as well as view selection.</p>
<p>If you are tired of reading already download the file here</p>
<p><a href="http://www.trikks.com/download.php?id=mod_helloworld_1_7.zip">http://www.trikks.com/download.php?id=mod_helloworld_1_7.zip</a></p>
<h2>Whats in it?</h2>
<p>Some files&#8230;</p>
<p><a href="http://trikks.files.wordpress.com/2011/10/screen-shot-2011-10-06-at-22-50-06.png"><img class="size-full wp-image-282 alignnone" title="Screen Shot 2011-10-06 at 22.50.06" src="http://trikks.files.wordpress.com/2011/10/screen-shot-2011-10-06-at-22-50-06.png" alt="" width="166" height="131" /></a></p>
<p>You can set this up in the admin interface</p>
<p><a href="http://trikks.files.wordpress.com/2011/10/screen-shot-2011-10-06-at-22-50-28.png"><img class="alignnone size-medium wp-image-283" title="Screen Shot 2011-10-06 at 22.50.28" src="http://trikks.files.wordpress.com/2011/10/screen-shot-2011-10-06-at-22-50-28.png?w=300&#038;h=164" alt="" width="300" height="164" /></a></p>
<p>And this will be displayed</p>
<p><a href="http://trikks.files.wordpress.com/2011/10/screen-shot-2011-10-06-at-22-50-43.png"><img class="alignnone size-full wp-image-284" title="Screen Shot 2011-10-06 at 22.50.43" src="http://trikks.files.wordpress.com/2011/10/screen-shot-2011-10-06-at-22-50-43.png" alt="" width="258" height="145" /></a></p>
<h2>Code</h2>
<h3>helper.php</h3>
<pre class="php" style="font-family:monospace;"><span style="color:#000000;font-weight:bold;">&lt;?php</span>
<span style="color:#009933;font-style:italic;">/**
 * Helper class for Hello World 1.7 skeleton module
 * @author Trikks, http://trikks.wordpress.com
 */</span>
<span style="color:#000000;font-weight:bold;">class</span> modHelloWorldHelper <span style="color:#009900;">{</span>

    <span style="color:#009933;font-style:italic;">/**
 * Retrieves the hello message *
 * @param array $params An object containing the module parameters
 * @access public
 */</span>
    <span style="color:#000000;font-weight:bold;">function</span> getHello<span style="color:#009900;">(</span><span style="color:#000088;">$params</span><span style="color:#009900;">)</span> <span style="color:#009900;">{</span>
        <span style="color:#b1b100;">return</span> <span style="color:#0000ff;">'Hello World!'</span><span style="color:#339933;">;</span>
    <span style="color:#009900;">}</span>

<span style="color:#009900;">}</span>
<span style="color:#000000;font-weight:bold;">?&gt;</span></pre>
<h3>mod_helloworld.php</h3>
<pre class="php" style="font-family:monospace;"><span style="color:#000000;font-weight:bold;">&lt;?php</span>
<span style="color:#009933;font-style:italic;">/** 
</span><span class="Apple-style-span" style="color:#009933;font-style:italic;">* Entry Point for Hello World 1.7 skeleton module
* @author Trikks, http://trikks.wordpress.com
*/</span></pre>
<pre class="php" style="font-family:monospace;"><a href="http://www.php.net/defined"><span style="color:#990000;">defined</span></a><span style="color:#009900;">(</span> <span style="color:#0000ff;">'_JEXEC'</span> <span style="color:#009900;">)</span> or <a href="http://www.php.net/die"><span style="color:#990000;">die</span></a><span style="color:#009900;">(</span> <span style="color:#0000ff;">'Restricted access'</span> <span style="color:#009900;">)</span><span style="color:#339933;">;</span> <span style="color:#666666;font-style:italic;">// no direct access allowed</span>

<span style="color:#666666;font-style:italic;">// Include the syndicate functions only once</span>
<span style="color:#b1b100;">require_once</span> <a href="http://www.php.net/dirname"><span style="color:#990000;">dirname</span></a><span style="color:#009900;">(</span><span style="color:#009900;font-weight:bold;">__FILE__</span><span style="color:#009900;">)</span><span style="color:#339933;">.</span>DS<span style="color:#339933;">.</span><span style="color:#0000ff;">'helper.php'</span><span style="color:#339933;">;</span> <span style="color:#666666;font-style:italic;">// get helper files</span>

<span style="color:#000088;">$hello</span> <span style="color:#339933;">=</span> modHelloWorldHelper<span style="color:#339933;">::</span><span style="color:#004000;">getHello</span><span style="color:#009900;">(</span><span style="color:#000088;">$params</span><span style="color:#009900;">)</span><span style="color:#339933;">;</span>
<span style="color:#b1b100;">require</span> JModuleHelper<span style="color:#339933;">::</span><span style="color:#004000;">getLayoutPath</span><span style="color:#009900;">(</span><span style="color:#0000ff;">'mod_helloworld'</span><span style="color:#339933;">,</span> <span style="color:#000088;">$params</span><span style="color:#339933;">-&gt;</span><span style="color:#004000;">get</span><span style="color:#009900;">(</span><span style="color:#0000ff;">'layout'</span><span style="color:#339933;">,</span> <span style="color:#0000ff;">'default'</span><span style="color:#009900;">)</span><span style="color:#009900;">)</span><span style="color:#339933;">;</span>
<span style="color:#000000;font-weight:bold;">?&gt;</span></pre>
<h3>mod_helloworld.xml</h3>
<p>The settings file, note the parameters in the config section. These parameters are the ones showing in the backend. You fetch them in the views by typing</p>
<pre>$params-&gt;get('param_name')</pre>
<pre class="xml" style="font-family:monospace;"><span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;?xml</span> <span style="color:#000066;">version</span>=<span style="color:#ff0000;">"1.0"</span> <span style="color:#000066;">encoding</span>=<span style="color:#ff0000;">"utf-8"</span><span style="color:#000000;font-weight:bold;">?&gt;</span></span>
<span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;extension</span> <span style="color:#000066;">type</span>=<span style="color:#ff0000;">"module"</span> <span style="color:#000066;">version</span>=<span style="color:#ff0000;">"1.7"</span> <span style="color:#000066;">client</span>=<span style="color:#ff0000;">"site"</span> <span style="color:#000066;">method</span>=<span style="color:#ff0000;">"upgrade"</span><span style="color:#000000;font-weight:bold;">&gt;</span></span>
    <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;name<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>mod_helloworld<span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/name<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
    <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;author<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>Joomla! Project<span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/author<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
    <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;creationDate<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>October 2011<span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/creationDate<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
    <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;copyright<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>Copyleft<span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/copyright<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
    <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;license<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>GNU General Public License version 2 or later; see LICENSE.txt<span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/license<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
    <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;authorUrl<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>http://trikks.wordpress.com<span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/authorUrl<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
    <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;version<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>1.7.0<span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/version<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
    <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;description<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>Trikks simple hello world module.<span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/description<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
    <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;files<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
        <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;filename</span> <span style="color:#000066;">module</span>=<span style="color:#ff0000;">"mod_helloworld"</span><span style="color:#000000;font-weight:bold;">&gt;</span></span>mod_helloworld.php<span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/filename<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
        <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;filename<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>mod_helloworld.xml<span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/filename<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
        <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;filename<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>index.html<span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/filename<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
        <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;filename<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>helper.php<span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/filename<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
        <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;filename<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>tmpl/default.php<span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/filename<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
        <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;filename<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>tmpl/index.html<span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/filename<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
    <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/files<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
    <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;config<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
        <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;fields</span> <span style="color:#000066;">name</span>=<span style="color:#ff0000;">"params"</span><span style="color:#000000;font-weight:bold;">&gt;</span></span>
            <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;fieldset</span> <span style="color:#000066;">name</span>=<span style="color:#ff0000;">"basic"</span><span style="color:#000000;font-weight:bold;">&gt;</span></span>
                <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;field</span> <span style="color:#000066;">name</span>=<span style="color:#ff0000;">"mod_helloworld_text"</span> <span style="color:#000066;">type</span>=<span style="color:#ff0000;">"text"</span> <span style="color:#000066;">label</span>=<span style="color:#ff0000;">"A textfield"</span> <span style="color:#000066;">description</span>=<span style="color:#ff0000;">"Enter any text"</span><span style="color:#000000;font-weight:bold;">/&gt;</span></span>
                <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;field</span> <span style="color:#000066;">name</span>=<span style="color:#ff0000;">"mod_helloworld_list"</span> <span style="color:#000066;">type</span>=<span style="color:#ff0000;">"list"</span> <span style="color:#000066;">label</span>=<span style="color:#ff0000;">"A dropdown"</span> <span style="color:#000066;">description</span>=<span style="color:#ff0000;">"Use for custom dropdowns"</span> <span style="color:#000066;">default</span>=<span style="color:#ff0000;">"1"</span><span style="color:#000000;font-weight:bold;">&gt;</span></span>
                    <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;option</span> <span style="color:#000066;">value</span>=<span style="color:#ff0000;">"1"</span><span style="color:#000000;font-weight:bold;">&gt;</span></span>JYes<span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/option<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
                    <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;option</span> <span style="color:#000066;">value</span>=<span style="color:#ff0000;">"0"</span><span style="color:#000000;font-weight:bold;">&gt;</span></span>JNo<span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/option<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
                <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/field<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
                <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;field</span> <span style="color:#000066;">name</span>=<span style="color:#ff0000;">"mod_helloworld_radio"</span> <span style="color:#000066;">type</span>=<span style="color:#ff0000;">"radio"</span> <span style="color:#000066;">label</span>=<span style="color:#ff0000;">"Radiobuttons"</span> <span style="color:#000066;">description</span>=<span style="color:#ff0000;">"Use radiobuttons for explicit selections"</span> <span style="color:#000066;">default</span>=<span style="color:#ff0000;">"1"</span><span style="color:#000000;font-weight:bold;">&gt;</span></span>
                    <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;option</span> <span style="color:#000066;">value</span>=<span style="color:#ff0000;">"0"</span><span style="color:#000000;font-weight:bold;">&gt;</span></span>JNo<span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/option<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
                    <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;option</span> <span style="color:#000066;">value</span>=<span style="color:#ff0000;">"1"</span><span style="color:#000000;font-weight:bold;">&gt;</span></span>JYes<span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/option<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
                <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/field<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
                <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;field</span> <span style="color:#000066;">name</span>=<span style="color:#ff0000;">"layout"</span> <span style="color:#000066;">type</span>=<span style="color:#ff0000;">"modulelayout"</span> <span style="color:#000066;">label</span>=<span style="color:#ff0000;">"JFIELD_ALT_LAYOUT_LABEL"</span> <span style="color:#000066;">description</span>=<span style="color:#ff0000;">"JFIELD_ALT_MODULE_LAYOUT_DESC"</span><span style="color:#000000;font-weight:bold;">/&gt;</span></span>
                <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;field</span> <span style="color:#000066;">name</span>=<span style="color:#ff0000;">"mod_helloworld_image"</span> <span style="color:#000066;">type</span>=<span style="color:#ff0000;">"media"</span> <span style="color:#000066;">label</span>=<span style="color:#ff0000;">"Mediaselector"</span> <span style="color:#000066;">description</span>=<span style="color:#ff0000;">"Select media"</span><span style="color:#000000;font-weight:bold;">/&gt;</span></span>
            <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/fieldset<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
        <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/fields<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
    <span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/config<span style="color:#000000;font-weight:bold;">&gt;</span></span></span>
<span style="color:#009900;"><span style="color:#000000;font-weight:bold;">&lt;/extension<span style="color:#000000;font-weight:bold;">&gt;</span></span></span></pre>
<h3>tmpl/default.php</h3>
<p>The default view of this module</p>
<pre class="php" style="font-family:monospace;"><span style="color:#000000;font-weight:bold;">&lt;?php</span>
<span style="color:#666666;font-style:italic;">// This is the default output file</span>
<a href="http://www.php.net/defined"><span style="color:#990000;">defined</span></a><span style="color:#009900;">(</span><span style="color:#0000ff;">'_JEXEC'</span><span style="color:#009900;">)</span> or <a href="http://www.php.net/die"><span style="color:#990000;">die</span></a><span style="color:#339933;">;</span>

<span style="color:#666666;font-style:italic;">// Echo from getHello method</span>
<span style="color:#b1b100;">echo</span> <span style="color:#0000ff;">"&lt;p style='font-weight: bold;'&gt;<span style="color:#006699;font-weight:bold;">$hello</span>&lt;/p&gt;"</span><span style="color:#339933;">;</span>

<span style="color:#666666;font-style:italic;">// Echo params</span>
<span style="color:#b1b100;">echo</span> <span style="color:#0000ff;">"&lt;p&gt;"</span><span style="color:#339933;">;</span>
<span style="color:#b1b100;">echo</span> <span style="color:#000088;">$params</span><span style="color:#339933;">-&gt;</span><span style="color:#004000;">get</span><span style="color:#009900;">(</span><span style="color:#0000ff;">'mod_helloworld_text'</span><span style="color:#009900;">)</span> <span style="color:#339933;">.</span> <span style="color:#0000ff;">" | "</span><span style="color:#339933;">;</span>
<span style="color:#b1b100;">echo</span> <span style="color:#000088;">$params</span><span style="color:#339933;">-&gt;</span><span style="color:#004000;">get</span><span style="color:#009900;">(</span><span style="color:#0000ff;">'mod_helloworld_list'</span><span style="color:#009900;">)</span> <span style="color:#339933;">.</span> <span style="color:#0000ff;">" | "</span><span style="color:#339933;">;</span>
<span style="color:#b1b100;">echo</span> <span style="color:#000088;">$params</span><span style="color:#339933;">-&gt;</span><span style="color:#004000;">get</span><span style="color:#009900;">(</span><span style="color:#0000ff;">'mod_helloworld_radio'</span><span style="color:#009900;">)</span> <span style="color:#339933;">.</span> <span style="color:#0000ff;">" | "</span><span style="color:#339933;">;</span>
<span style="color:#b1b100;">echo</span> <span style="color:#000088;">$params</span><span style="color:#339933;">-&gt;</span><span style="color:#004000;">get</span><span style="color:#009900;">(</span><span style="color:#0000ff;">'mod_helloworld_image'</span><span style="color:#009900;">)</span><span style="color:#339933;">;</span>
<span style="color:#b1b100;">echo</span> <span style="color:#0000ff;">"&lt;/p&gt;"</span><span style="color:#339933;">;</span>
<span style="color:#000000;font-weight:bold;">?&gt;</span></pre>
<h3>tmpl/notdefault.php</h3>
<p>Simply an additional view which will render a different result in the frontend</p>
<pre class="php" style="font-family:monospace;"><span style="color:#000000;font-weight:bold;">&lt;?php</span>
<span style="color:#666666;font-style:italic;">// This is an optional output file</span>
<a href="http://www.php.net/defined"><span style="color:#990000;">defined</span></a><span style="color:#009900;">(</span><span style="color:#0000ff;">'_JEXEC'</span><span style="color:#009900;">)</span> or <a href="http://www.php.net/die"><span style="color:#990000;">die</span></a><span style="color:#339933;">;</span>

<span style="color:#666666;font-style:italic;">// Echo from getHello method</span>
<span style="color:#b1b100;">echo</span> <span style="color:#0000ff;">"&lt;p style='font-weight: bold;'&gt;<span style="color:#006699;font-weight:bold;">$hello</span>&lt;/p&gt;"</span><span style="color:#339933;">;</span>
<span style="color:#b1b100;">echo</span> <span style="color:#0000ff;">"&lt;p style='font-style: italic;'&gt;- O Hai!&lt;/p&gt;"</span><span style="color:#339933;">;</span>

<span style="color:#666666;font-style:italic;">// Echo params</span>
<span style="color:#b1b100;">echo</span> <span style="color:#0000ff;">"&lt;p&gt;"</span><span style="color:#339933;">;</span>
<span style="color:#b1b100;">echo</span> <span style="color:#000088;">$params</span><span style="color:#339933;">-&gt;</span><span style="color:#004000;">get</span><span style="color:#009900;">(</span><span style="color:#0000ff;">'mod_helloworld_text'</span><span style="color:#009900;">)</span> <span style="color:#339933;">.</span> <span style="color:#0000ff;">" | "</span><span style="color:#339933;">;</span>
<span style="color:#b1b100;">echo</span> <span style="color:#000088;">$params</span><span style="color:#339933;">-&gt;</span><span style="color:#004000;">get</span><span style="color:#009900;">(</span><span style="color:#0000ff;">'mod_helloworld_list'</span><span style="color:#009900;">)</span> <span style="color:#339933;">.</span> <span style="color:#0000ff;">" | "</span><span style="color:#339933;">;</span>
<span style="color:#b1b100;">echo</span> <span style="color:#000088;">$params</span><span style="color:#339933;">-&gt;</span><span style="color:#004000;">get</span><span style="color:#009900;">(</span><span style="color:#0000ff;">'mod_helloworld_radio'</span><span style="color:#009900;">)</span> <span style="color:#339933;">.</span> <span style="color:#0000ff;">" | "</span><span style="color:#339933;">;</span>
<span style="color:#b1b100;">echo</span> <span style="color:#000088;">$params</span><span style="color:#339933;">-&gt;</span><span style="color:#004000;">get</span><span style="color:#009900;">(</span><span style="color:#0000ff;">'mod_helloworld_image'</span><span style="color:#009900;">)</span><span style="color:#339933;">;</span>
<span style="color:#b1b100;">echo</span> <span style="color:#0000ff;">"&lt;/p&gt;"</span><span style="color:#339933;">;</span>
<span style="color:#000000;font-weight:bold;">?&gt;</span></pre>
<h2>Ending</h2>
<p>Not that hard ey <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://www.trikks.com/download.php?id=mod_helloworld_1_7.zip">http://www.trikks.com/download.php?id=mod_helloworld_1_7.zip</a></p>
<p>Have fun</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trikks.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trikks.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/trikks.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/trikks.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/trikks.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/trikks.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/trikks.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/trikks.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/trikks.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/trikks.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/trikks.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/trikks.wordpress.com/281/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/trikks.wordpress.com/281/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/trikks.wordpress.com/281/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trikks.wordpress.com&amp;blog=7671208&amp;post=281&amp;subd=trikks&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trikks.wordpress.com/2011/10/06/joomla-1-7-hello-world-module-evolved/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/90294caceec6e1e468a078d4f7f86ea1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trikks</media:title>
		</media:content>

		<media:content url="http://trikks.files.wordpress.com/2011/10/screen-shot-2011-10-06-at-22-50-06.png" medium="image">
			<media:title type="html">Screen Shot 2011-10-06 at 22.50.06</media:title>
		</media:content>

		<media:content url="http://trikks.files.wordpress.com/2011/10/screen-shot-2011-10-06-at-22-50-28.png?w=300" medium="image">
			<media:title type="html">Screen Shot 2011-10-06 at 22.50.28</media:title>
		</media:content>

		<media:content url="http://trikks.files.wordpress.com/2011/10/screen-shot-2011-10-06-at-22-50-43.png" medium="image">
			<media:title type="html">Screen Shot 2011-10-06 at 22.50.43</media:title>
		</media:content>
	</item>
		<item>
		<title>Launching the new Lion Launchpad with a mouse key</title>
		<link>http://trikks.wordpress.com/2011/09/06/launching-the-new-lion-launchpad-with-a-mouse-key/</link>
		<comments>http://trikks.wordpress.com/2011/09/06/launching-the-new-lion-launchpad-with-a-mouse-key/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 19:18:15 +0000</pubDate>
		<dc:creator>trikks</dc:creator>
				<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://trikks.wordpress.com/?p=274</guid>
		<description><![CDATA[So you&#8217;ve updated to Lion. Good! It&#8217;s lovely. Now, we all love the brand new application desk known as Launchpad but is there a smooth way to open it if you&#8217;re on a regular 2-xx button mouse? Of course! Opening the Launchpad with a mousekey Launchpad is an application available in the applications folder. To be [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trikks.wordpress.com&amp;blog=7671208&amp;post=274&amp;subd=trikks&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So you&#8217;ve updated to Lion. Good! It&#8217;s lovely.</p>
<p>Now, we all love the brand new application desk known as Launchpad but is there a smooth way to open it if you&#8217;re on a regular 2-xx button mouse? Of course!</p>
<p><a href="http://trikks.files.wordpress.com/2011/09/screen-shot-2011-09-06-at-21-08-58.png"><img class="alignnone size-thumbnail wp-image-276" title="Screen Shot 2011-09-06 at 21.08.58" src="http://trikks.files.wordpress.com/2011/09/screen-shot-2011-09-06-at-21-08-58.png?w=150&#038;h=93" alt="" width="150" height="93" /></a></p>
<h2>Opening the Launchpad with a mousekey</h2>
<p><a href="http://trikks.files.wordpress.com/2011/09/screen-shot-2011-09-06-at-21-11-46.png"><img class="alignleft size-thumbnail wp-image-277" title="Screen Shot 2011-09-06 at 21.11.46" src="http://trikks.files.wordpress.com/2011/09/screen-shot-2011-09-06-at-21-11-46.png?w=32&#038;h=32" alt="" width="32" height="32" /></a>Launchpad is an application available in the applications folder. To be able to open it with a mouse key like the scroll wheel button you need a plugin like USB Overdrive (http://www.usboverdrive.com/USBOverdrive/News.html).</p>
<p>This way you will be able to open virtually any application with a mouse key.</p>
<p><a href="http://trikks.files.wordpress.com/2011/09/screen-shot-2011-09-06-at-20-57-48.png"><img class="size-medium wp-image-275 alignnone" title="Screen Shot 2011-09-06 at 20.57.48" src="http://trikks.files.wordpress.com/2011/09/screen-shot-2011-09-06-at-20-57-48.png?w=300&#038;h=288" alt="" width="300" height="288" /></a></p>
<p>&nbsp;</p>
<p>Have fun</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trikks.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trikks.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/trikks.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/trikks.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/trikks.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/trikks.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/trikks.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/trikks.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/trikks.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/trikks.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/trikks.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/trikks.wordpress.com/274/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/trikks.wordpress.com/274/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/trikks.wordpress.com/274/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trikks.wordpress.com&amp;blog=7671208&amp;post=274&amp;subd=trikks&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trikks.wordpress.com/2011/09/06/launching-the-new-lion-launchpad-with-a-mouse-key/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/90294caceec6e1e468a078d4f7f86ea1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trikks</media:title>
		</media:content>

		<media:content url="http://trikks.files.wordpress.com/2011/09/screen-shot-2011-09-06-at-21-08-58.png?w=150" medium="image">
			<media:title type="html">Screen Shot 2011-09-06 at 21.08.58</media:title>
		</media:content>

		<media:content url="http://trikks.files.wordpress.com/2011/09/screen-shot-2011-09-06-at-21-11-46.png?w=32" medium="image">
			<media:title type="html">Screen Shot 2011-09-06 at 21.11.46</media:title>
		</media:content>

		<media:content url="http://trikks.files.wordpress.com/2011/09/screen-shot-2011-09-06-at-20-57-48.png?w=300" medium="image">
			<media:title type="html">Screen Shot 2011-09-06 at 20.57.48</media:title>
		</media:content>
	</item>
		<item>
		<title>The type &#8221; is ambiguous: it could come from assembly &#8221; or from assembly &#8221;. Please specify the assembly explicitly in the type name.</title>
		<link>http://trikks.wordpress.com/2011/08/26/the-type-is-ambiguous-it-could-come-from-assembly-or-from-assembly-please-specify-the-assembly-explicitly-in-the-type-name/</link>
		<comments>http://trikks.wordpress.com/2011/08/26/the-type-is-ambiguous-it-could-come-from-assembly-or-from-assembly-please-specify-the-assembly-explicitly-in-the-type-name/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 09:44:26 +0000</pubDate>
		<dc:creator>trikks</dc:creator>
				<category><![CDATA[IIS]]></category>

		<guid isPermaLink="false">http://trikks.wordpress.com/?p=256</guid>
		<description><![CDATA[Ah the good old error You most likely seen it looking something like this The type &#8216;Prometer.Objects.AnalysisEngineData&#8217; is ambiguous: it could come from assembly &#8216;C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\aa63ddac\c47315b5\App_Code.8t9ff09n.DLL&#8217; or from assembly &#8216;C:\Projects\Webbprojects\Prometer\bin\Prometer.DLL&#8217;. Please specify the assembly explicitly in the type name. In short Now there are quite a few tricks out there that suggest how to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trikks.wordpress.com&amp;blog=7671208&amp;post=256&amp;subd=trikks&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ah the good old error</p>
<p>You most likely seen it looking something like this</p>
<p><span style="color:#800000;font-size:19px;font-style:italic;line-height:23px;">The type &#8216;Prometer.Objects.AnalysisEngineData&#8217; is ambiguous: it could come from assembly &#8216;C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\aa63ddac\c47315b5\App_Code.8t9ff09n.DLL&#8217; or from assembly &#8216;C:\Projects\Webbprojects\Prometer\bin\Prometer.DLL&#8217;. Please specify the assembly explicitly in the type name.</span></p>
<h2>In short</h2>
<p>Now there are quite a few tricks out there that suggest how to solve this. None of them shows to be correct unless you are really lucky. In general this error depend on a structural error in your Visual Studio project. That means this can be solved by either moving the file or by changing the &#8220;Build Action&#8221; from Compile to Content.</p>
<h2>In reasonable depth</h2>
<p>This occur when an aspx page tries to reach a class (like an objectdatasource) and tries to (or actually do) compile the class. But since it&#8217;s already compiled everything will fail.</p>
<p>Now in the case shown above I had put my class libraries in the App_Code directory and set the &#8220;Build Action&#8221; to &#8220;Compile&#8221; on each library. This solution works but will fail if an aspx-page tries to reach a library since it will build it&#8217;s own version of the library (stupid). Now I can solve this by leaving my files in the App_Code folder just setting the &#8221;Build Action&#8221; to &#8220;Content&#8221; instead. But other things might fail doing that.</p>
<p>The best option is to move the class libraries to a separate directory, in example &#8220;/Classes&#8221;. If so done remember to set the &#8221;Build Action&#8221; to &#8220;Compile&#8221;.</p>
<table border="0" cellpadding="10">
<tbody>
<tr>
<td>
<h3>If in App_Code</h3>
</td>
<td>
<h3>If in /Classes</h3>
</td>
</tr>
<tr>
<td><a href="http://trikks.files.wordpress.com/2011/08/in-app_code.png"><img class="alignnone size-full wp-image-264" title="in app_code" src="http://trikks.files.wordpress.com/2011/08/in-app_code.png" alt="" width="318" height="457" /></a></td>
<td><a href="http://trikks.files.wordpress.com/2011/08/in-classes.png"><img class="alignnone size-full wp-image-265" title="in classes" src="http://trikks.files.wordpress.com/2011/08/in-classes.png" alt="" width="315" height="502" /></a></td>
</tr>
</tbody>
</table>
<p>So that should be it, please not that there are no work around for this. The structure has to be correct otherwise it simply wont work.<br />
Good luck!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trikks.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trikks.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/trikks.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/trikks.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/trikks.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/trikks.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/trikks.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/trikks.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/trikks.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/trikks.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/trikks.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/trikks.wordpress.com/256/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/trikks.wordpress.com/256/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/trikks.wordpress.com/256/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trikks.wordpress.com&amp;blog=7671208&amp;post=256&amp;subd=trikks&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trikks.wordpress.com/2011/08/26/the-type-is-ambiguous-it-could-come-from-assembly-or-from-assembly-please-specify-the-assembly-explicitly-in-the-type-name/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/90294caceec6e1e468a078d4f7f86ea1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trikks</media:title>
		</media:content>

		<media:content url="http://trikks.files.wordpress.com/2011/08/in-app_code.png" medium="image">
			<media:title type="html">in app_code</media:title>
		</media:content>

		<media:content url="http://trikks.files.wordpress.com/2011/08/in-classes.png" medium="image">
			<media:title type="html">in classes</media:title>
		</media:content>
	</item>
		<item>
		<title>Programmatically check if an assembly is loaded in GAC with C#</title>
		<link>http://trikks.wordpress.com/2011/07/13/programmatically-check-if-an-assembly-is-loaded-in-gac-with-c/</link>
		<comments>http://trikks.wordpress.com/2011/07/13/programmatically-check-if-an-assembly-is-loaded-in-gac-with-c/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 11:37:48 +0000</pubDate>
		<dc:creator>trikks</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://trikks.wordpress.com/?p=249</guid>
		<description><![CDATA[Maybe you are writing an installer of some kind or are depending on some external assemblies to have your .net program or website to work, I often do. So with no further ado. Here is a small program which will lead you to success in these matters *fanfare*. Example, running in console &#160; Download VS project [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trikks.wordpress.com&amp;blog=7671208&amp;post=249&amp;subd=trikks&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Maybe you are writing an installer of some kind or are depending on some external assemblies to have your .net program or website to work, I often do. So with no further ado. Here is a small program which will lead you to success in these matters *fanfare*.</p>
<p><strong>Example, running in console</strong></p>
<p><a href="http://trikks.files.wordpress.com/2011/07/screen-shot-2011-07-13-at-13-22-50.png"><img class="alignnone size-full wp-image-254" title="Check if Assembly exist in GAC" src="http://trikks.files.wordpress.com/2011/07/screen-shot-2011-07-13-at-13-22-50.png" alt="" width="688" height="327" /></a></p>
<p>&nbsp;</p>
<h2>Download VS project</h2>
<p><a href="http://www.trikks.com/files/ConsoleTestAssembly.zip">Here</a></p>
<h2>Source Code</h2>
<pre class="csharp" style="font-family:monospace;font-size:10px;"><span style="color:#0600ff;">using</span> <span style="color:#008080;">System</span><span style="color:#008000;">;</span>
<span style="color:#0600ff;">using</span> <span style="color:#008080;">System.Runtime.InteropServices</span><span style="color:#008000;">;</span>

<span style="color:#0600ff;">namespace</span> ConsoleTestAssembly
<span style="color:#000000;">{</span>
    <span style="color:#ff0000;">class</span> Program
    <span style="color:#000000;">{</span>
        <span style="color:#0600ff;">static</span> <span style="color:#0600ff;">void</span> Main<span style="color:#000000;">(</span><span style="color:#000000;">)</span>
        <span style="color:#000000;">{</span>
            <span style="color:#ff0000;">string</span> response<span style="color:#008000;">;</span>

            var exist <span style="color:#008000;">=</span> AssemblyExist<span style="color:#000000;">(</span><span style="color:#666666;">"Camelot.SharePointConnector"</span>, <span style="color:#0600ff;">out</span> response<span style="color:#000000;">)</span><span style="color:#008000;">;</span>
            Console.<span style="color:#0000ff;">WriteLine</span><span style="color:#000000;">(</span><span style="color:#ff0000;">string</span>.<span style="color:#0000ff;">Concat</span><span style="color:#000000;">(</span>exist, Environment.<span style="color:#0000ff;">NewLine</span>, response, Environment.<span style="color:#0000ff;">NewLine</span><span style="color:#000000;">)</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>

            exist <span style="color:#008000;">=</span> AssemblyExist<span style="color:#000000;">(</span><span style="color:#666666;">"Camelot.SharePointIntegration"</span>, <span style="color:#0600ff;">out</span> response<span style="color:#000000;">)</span><span style="color:#008000;">;</span>
            Console.<span style="color:#0000ff;">WriteLine</span><span style="color:#000000;">(</span><span style="color:#ff0000;">string</span>.<span style="color:#0000ff;">Concat</span><span style="color:#000000;">(</span>exist, Environment.<span style="color:#0000ff;">NewLine</span>, response, Environment.<span style="color:#0000ff;">NewLine</span><span style="color:#000000;">)</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>

            exist <span style="color:#008000;">=</span> AssemblyExist<span style="color:#000000;">(</span><span style="color:#666666;">"Camelot.NoExisting"</span>, <span style="color:#0600ff;">out</span> response<span style="color:#000000;">)</span><span style="color:#008000;">;</span>
            Console.<span style="color:#0000ff;">WriteLine</span><span style="color:#000000;">(</span><span style="color:#ff0000;">string</span>.<span style="color:#0000ff;">Concat</span><span style="color:#000000;">(</span>exist, Environment.<span style="color:#0000ff;">NewLine</span>, response, Environment.<span style="color:#0000ff;">NewLine</span><span style="color:#000000;">)</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>

            Console.<span style="color:#0000ff;">ReadKey</span><span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
        <span style="color:#000000;">}</span>

        <span style="color:#0600ff;">public</span> <span style="color:#0600ff;">static</span> <span style="color:#ff0000;">bool</span> AssemblyExist<span style="color:#000000;">(</span><span style="color:#ff0000;">string</span> assemblyname, <span style="color:#0600ff;">out</span> <span style="color:#ff0000;">string</span> response<span style="color:#000000;">)</span>
        <span style="color:#000000;">{</span>
            <span style="color:#0600ff;">try</span>
            <span style="color:#000000;">{</span>
                response <span style="color:#008000;">=</span> QueryAssemblyInfo<span style="color:#000000;">(</span>assemblyname<span style="color:#000000;">)</span><span style="color:#008000;">;</span>
                <span style="color:#0600ff;">return</span> true<span style="color:#008000;">;</span>
            <span style="color:#000000;">}</span>
            <span style="color:#0600ff;">catch</span> <span style="color:#000000;">(</span><span style="color:#000000;">System.<span style="color:#0000ff;">IO</span></span>.<span style="color:#0000ff;">FileNotFoundException</span> e<span style="color:#000000;">)</span>
            <span style="color:#000000;">{</span>
                response <span style="color:#008000;">=</span> e.<span style="color:#0000ff;">Message</span><span style="color:#008000;">;</span>
                <span style="color:#0600ff;">return</span> false<span style="color:#008000;">;</span>
            <span style="color:#000000;">}</span>
        <span style="color:#000000;">}</span>

        <span style="color:#008080;font-style:italic;">// If assemblyName is not fully qualified, a random matching may be </span>
        <span style="color:#0600ff;">public</span> <span style="color:#0600ff;">static</span> <span style="color:#ff0000;">String</span> QueryAssemblyInfo<span style="color:#000000;">(</span><span style="color:#ff0000;">string</span> assemblyName<span style="color:#000000;">)</span>
        <span style="color:#000000;">{</span>
            var assembyInfo <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> AssemblyInfo <span style="color:#000000;">{</span>cchBuf <span style="color:#008000;">=</span> <span style="color:#ff0000;">512</span><span style="color:#000000;">}</span><span style="color:#008000;">;</span>
            assembyInfo.<span style="color:#0000ff;">currentAssemblyPath</span> <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> <span style="color:#ff0000;">String</span><span style="color:#000000;">(</span><span style="color:#666666;">''</span>, assembyInfo.<span style="color:#0000ff;">cchBuf</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>

            IAssemblyCache assemblyCache<span style="color:#008000;">;</span>

            <span style="color:#008080;font-style:italic;">// Get IAssemblyCache pointer</span>
            var hr <span style="color:#008000;">=</span> GacApi.<span style="color:#0000ff;">CreateAssemblyCache</span><span style="color:#000000;">(</span><span style="color:#0600ff;">out</span> assemblyCache, <span style="color:#ff0000;">0</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
            <span style="color:#0600ff;">if</span> <span style="color:#000000;">(</span>hr <span style="color:#008000;">==</span> IntPtr.<span style="color:#0000ff;">Zero</span><span style="color:#000000;">)</span>
            <span style="color:#000000;">{</span>
                hr <span style="color:#008000;">=</span> assemblyCache.<span style="color:#0000ff;">QueryAssemblyInfo</span><span style="color:#000000;">(</span><span style="color:#ff0000;">1</span>, assemblyName, <span style="color:#0600ff;">ref</span> assembyInfo<span style="color:#000000;">)</span><span style="color:#008000;">;</span>
                <span style="color:#0600ff;">if</span> <span style="color:#000000;">(</span>hr <span style="color:#008000;">!=</span> IntPtr.<span style="color:#0000ff;">Zero</span><span style="color:#000000;">)</span>
                <span style="color:#000000;">{</span>
                    Marshal.<span style="color:#0000ff;">ThrowExceptionForHR</span><span style="color:#000000;">(</span>hr.<span style="color:#0000ff;">ToInt32</span><span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
                <span style="color:#000000;">}</span>
            <span style="color:#000000;">}</span>
            <span style="color:#0600ff;">else</span>
            <span style="color:#000000;">{</span>
                Marshal.<span style="color:#0000ff;">ThrowExceptionForHR</span><span style="color:#000000;">(</span>hr.<span style="color:#0000ff;">ToInt32</span><span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
            <span style="color:#000000;">}</span>
            <span style="color:#0600ff;">return</span> assembyInfo.<span style="color:#0000ff;">currentAssemblyPath</span><span style="color:#008000;">;</span>
        <span style="color:#000000;">}</span>
    <span style="color:#000000;">}</span>

    <span style="color:#0600ff;">internal</span> <span style="color:#ff0000;">class</span> GacApi
    <span style="color:#000000;">{</span>
        <span style="color:#000000;">[</span>DllImport<span style="color:#000000;">(</span><span style="color:#666666;">"fusion.dll"</span><span style="color:#000000;">)</span><span style="color:#000000;">]</span>
        <span style="color:#0600ff;">internal</span> <span style="color:#0600ff;">static</span> <span style="color:#0600ff;">extern</span> IntPtr CreateAssemblyCache<span style="color:#000000;">(</span>
            <span style="color:#0600ff;">out</span> IAssemblyCache ppAsmCache, <span style="color:#ff0000;">int</span> reserved<span style="color:#000000;">)</span><span style="color:#008000;">;</span>
    <span style="color:#000000;">}</span>

    <span style="color:#008080;font-style:italic;">// GAC Interfaces - IAssemblyCache. As a sample, non used vtable entries </span>
    <span style="color:#000000;">[</span>ComImport, InterfaceType<span style="color:#000000;">(</span>ComInterfaceType.<span style="color:#0000ff;">InterfaceIsIUnknown</span><span style="color:#000000;">)</span>,
    Guid<span style="color:#000000;">(</span><span style="color:#666666;">"e707dcde-d1cd-11d2-bab9-00c04f8eceae"</span><span style="color:#000000;">)</span><span style="color:#000000;">]</span>
    <span style="color:#0600ff;">internal</span> <span style="color:#ff0000;">interface</span> IAssemblyCache
    <span style="color:#000000;">{</span>
        <span style="color:#ff0000;">int</span> Dummy1<span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
        <span style="color:#000000;">[</span>PreserveSig<span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#000000;">]</span>
        IntPtr QueryAssemblyInfo<span style="color:#000000;">(</span>
            <span style="color:#ff0000;">int</span> flags,
            <span style="color:#000000;">[</span>MarshalAs<span style="color:#000000;">(</span>UnmanagedType.<span style="color:#0000ff;">LPWStr</span><span style="color:#000000;">)</span><span style="color:#000000;">]</span>
            <span style="color:#ff0000;">String</span> assemblyName,
            <span style="color:#0600ff;">ref</span> AssemblyInfo assemblyInfo<span style="color:#000000;">)</span><span style="color:#008000;">;</span>

        <span style="color:#ff0000;">int</span> Dummy2<span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
        <span style="color:#ff0000;">int</span> Dummy3<span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
        <span style="color:#ff0000;">int</span> Dummy4<span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
    <span style="color:#000000;">}</span>

    <span style="color:#000000;">[</span>StructLayout<span style="color:#000000;">(</span>LayoutKind.<span style="color:#0000ff;">Sequential</span><span style="color:#000000;">)</span><span style="color:#000000;">]</span>
    <span style="color:#0600ff;">internal</span> <span style="color:#ff0000;">struct</span> AssemblyInfo
    <span style="color:#000000;">{</span>
        <span style="color:#0600ff;">public</span> <span style="color:#ff0000;">int</span> cbAssemblyInfo<span style="color:#008000;">;</span>
        <span style="color:#0600ff;">public</span> <span style="color:#ff0000;">int</span> assemblyFlags<span style="color:#008000;">;</span>
        <span style="color:#0600ff;">public</span> <span style="color:#ff0000;">long</span> assemblySizeInKB<span style="color:#008000;">;</span>

        <span style="color:#000000;">[</span>MarshalAs<span style="color:#000000;">(</span>UnmanagedType.<span style="color:#0000ff;">LPWStr</span><span style="color:#000000;">)</span><span style="color:#000000;">]</span>
        <span style="color:#0600ff;">public</span> <span style="color:#ff0000;">String</span> currentAssemblyPath<span style="color:#008000;">;</span>

        <span style="color:#0600ff;">public</span> <span style="color:#ff0000;">int</span> cchBuf<span style="color:#008000;">;</span>
    <span style="color:#000000;">}</span>

<span style="color:#000000;">}</span></pre>
<p>Thats it.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trikks.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trikks.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/trikks.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/trikks.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/trikks.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/trikks.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/trikks.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/trikks.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/trikks.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/trikks.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/trikks.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/trikks.wordpress.com/249/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/trikks.wordpress.com/249/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/trikks.wordpress.com/249/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trikks.wordpress.com&amp;blog=7671208&amp;post=249&amp;subd=trikks&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trikks.wordpress.com/2011/07/13/programmatically-check-if-an-assembly-is-loaded-in-gac-with-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/90294caceec6e1e468a078d4f7f86ea1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trikks</media:title>
		</media:content>

		<media:content url="http://trikks.files.wordpress.com/2011/07/screen-shot-2011-07-13-at-13-22-50.png" medium="image">
			<media:title type="html">Check if Assembly exist in GAC</media:title>
		</media:content>
	</item>
		<item>
		<title>Howto programmatically add, update and remove ConnectionStrings in Umbraco</title>
		<link>http://trikks.wordpress.com/2011/07/13/howto-programmatically-add-update-and-remove-connectionstrings-in-umbraco/</link>
		<comments>http://trikks.wordpress.com/2011/07/13/howto-programmatically-add-update-and-remove-connectionstrings-in-umbraco/#comments</comments>
		<pubDate>Wed, 13 Jul 2011 09:29:21 +0000</pubDate>
		<dc:creator>trikks</dc:creator>
				<category><![CDATA[Umbraco]]></category>

		<guid isPermaLink="false">http://trikks.wordpress.com/?p=239</guid>
		<description><![CDATA[I found that amazing no-one ever posted snippets to howto actually manipulate the web.config file when using Umbraco. Anyway, lets keep it short. Dont forget to import the businesslogic.dll into your project and reference it using System; using System.Configuration; using umbraco; // from businesslogic.dll &#160; Adding a connectionString in web.config Note, you should either replace [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trikks.wordpress.com&amp;blog=7671208&amp;post=239&amp;subd=trikks&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I found that amazing no-one ever posted snippets to howto actually manipulate the web.config file when using Umbraco.</p>
<p>Anyway, lets keep it short.</p>
<p>Dont forget to import the businesslogic.dll into your project and reference it</p>
<pre class="csharp" style="font:10px normal Consolas, Monaco, 'Courier New', Courier, monospace;"><span style="color:#0600ff;">using</span> <span style="color:#008080;">System</span><span style="color:#008000;">;</span>
<span style="color:#0600ff;">using</span> <span style="color:#008080;">System.Configuration</span><span style="color:#008000;">;</span>
<span style="color:#0600ff;">using</span> <span style="color:#008080;">umbraco</span><span style="color:#008000;">;</span> <span style="color:#008080;font-style:italic;">// from businesslogic.dll</span></pre>
<pre class="csharp" style="font-family:monospace;"></pre>
<p>&nbsp;</p>
<h2>Adding a connectionString in web.config</h2>
<p><em>Note, you should either replace the Camelot.SharePointProvider with your preferred provider or add a parameter to the method to be able to modify this dynamically.</em></p>
<pre class="csharp" style="font:10px normal Consolas, Monaco, 'Courier New', Courier, monospace;"><span style="color:#008080;font-style:italic;">/// &lt;summary&gt;</span>
<span style="color:#008080;font-style:italic;">/// Adds a new connectionString in web.config.</span>
<span style="color:#008080;font-style:italic;">/// &lt;/summary&gt;</span>
<span style="color:#008080;font-style:italic;">/// &lt;param name="name"&gt;Name the connection&lt;/param&gt;</span>
<span style="color:#008080;font-style:italic;">/// &lt;param name="connString"&gt;The actual connectionstring. Read more at http://docs.bendsoft.com/camelot-net-connector/&lt;/param&gt;</span>
<span style="color:#0600ff;">public</span> <span style="color:#0600ff;">static</span> <span style="color:#0600ff;">void</span> AddConnection<span style="color:#000000;">(</span><span style="color:#ff0000;">string</span> name, <span style="color:#ff0000;">string</span> connString<span style="color:#000000;">)</span>
<span style="color:#000000;">{</span>
    var webConfig <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> ExeConfigurationFileMap <span style="color:#000000;">{</span> ExeConfigFilename <span style="color:#008000;">=</span> GlobalSettings.<span style="color:#0000ff;">FullpathToRoot</span> <span style="color:#008000;">+</span> <span style="color:#666666;">"web.config"</span> <span style="color:#000000;">}</span><span style="color:#008000;">;</span>
    var config <span style="color:#008000;">=</span> ConfigurationManager.<span style="color:#0000ff;">OpenMappedExeConfiguration</span><span style="color:#000000;">(</span>webConfig, ConfigurationUserLevel.<span style="color:#0000ff;">None</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
    config.<span style="color:#0000ff;">ConnectionStrings</span>.<span style="color:#0000ff;">ConnectionStrings</span>.<span style="color:#0000ff;">Add</span><span style="color:#000000;">(</span><a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> ConnectionStringSettings<span style="color:#000000;">(</span>name, connString, <span style="color:#666666;">"Camelot.SharePointProvider"</span><span style="color:#000000;">)</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
    config.<span style="color:#0000ff;">Save</span><span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>

    ConfigurationManager.<span style="color:#0000ff;">RefreshSection</span><span style="color:#000000;">(</span><span style="color:#666666;">"connectionStrings"</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
<span style="color:#000000;">}</span></pre>
<h2>Updating a connectionString in web.config</h2>
<p><em>Note, if the connectionString doesn&#8217;t exist this method will create it for you</em></p>
<pre class="csharp" style="font:10px normal Consolas, Monaco, 'Courier New', Courier, monospace;"><span style="color:#008080;font-style:italic;">/// &lt;summary&gt;</span>
<span style="color:#008080;font-style:italic;">/// Update an existing connectionString, if it dosn't exist it will be created</span>
<span style="color:#008080;font-style:italic;">/// &lt;/summary&gt;</span>
<span style="color:#008080;font-style:italic;">/// &lt;param name="name"&gt;Name the connection&lt;/param&gt;</span>
<span style="color:#008080;font-style:italic;">/// &lt;param name="connString"&gt;The actual connectionstring. Read more at http://docs.bendsoft.com/camelot-net-connector/&lt;/param&gt;</span>
<span style="color:#0600ff;">public</span> <span style="color:#0600ff;">static</span> <span style="color:#0600ff;">void</span> UpdateConnection<span style="color:#000000;">(</span><span style="color:#ff0000;">string</span> name, <span style="color:#ff0000;">string</span> connString<span style="color:#000000;">)</span>
<span style="color:#000000;">{</span>
    var webConfig <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> ExeConfigurationFileMap <span style="color:#000000;">{</span> ExeConfigFilename <span style="color:#008000;">=</span> GlobalSettings.<span style="color:#0000ff;">FullpathToRoot</span> <span style="color:#008000;">+</span> <span style="color:#666666;">"web.config"</span> <span style="color:#000000;">}</span><span style="color:#008000;">;</span>
    var config <span style="color:#008000;">=</span> ConfigurationManager.<span style="color:#0000ff;">OpenMappedExeConfiguration</span><span style="color:#000000;">(</span>webConfig, ConfigurationUserLevel.<span style="color:#0000ff;">None</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
    var section <span style="color:#008000;">=</span> <span style="color:#000000;">(</span>ConnectionStringsSection<span style="color:#000000;">)</span>config.<span style="color:#0000ff;">GetSection</span><span style="color:#000000;">(</span><span style="color:#666666;">"connectionStrings"</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>

    <span style="color:#0600ff;">if</span> <span style="color:#000000;">(</span>section.<span style="color:#0000ff;">ConnectionStrings</span><span style="color:#000000;">[</span>name<span style="color:#000000;">]</span> <span style="color:#008000;">!=</span> <span style="color:#0600ff;">null</span><span style="color:#000000;">)</span>
    <span style="color:#000000;">{</span>
        <span style="color:#008080;font-style:italic;">// Update the connectionstring if it exist</span>
        section.<span style="color:#0000ff;">ConnectionStrings</span><span style="color:#000000;">[</span>name<span style="color:#000000;">]</span>.<span style="color:#0000ff;">ConnectionString</span> <span style="color:#008000;">=</span> connString<span style="color:#008000;">;</span>
        config.<span style="color:#0000ff;">Save</span><span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>

        ConfigurationManager.<span style="color:#0000ff;">RefreshSection</span><span style="color:#000000;">(</span><span style="color:#666666;">"connectionStrings"</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
    <span style="color:#000000;">}</span>
    <span style="color:#0600ff;">else</span>
    <span style="color:#000000;">{</span>
        <span style="color:#008080;font-style:italic;">// ...otherwise we add a new</span>
        AddConnection<span style="color:#000000;">(</span>name, connString<span style="color:#000000;">)</span><span style="color:#008000;">;</span>
    <span style="color:#000000;">}</span>
<span style="color:#000000;">}</span></pre>
<h2>Delete a connectionString in web.config</h2>
<pre class="csharp" style="font:10px normal Consolas, Monaco, 'Courier New', Courier, monospace;"><span style="color:#008080;font-style:italic;">/// &lt;summary&gt;</span>
<span style="color:#008080;font-style:italic;">/// Remove a connectionString</span>
<span style="color:#008080;font-style:italic;">/// &lt;/summary&gt;</span>
<span style="color:#008080;font-style:italic;">/// &lt;param name="name"&gt;The name of the connectionString to remove&lt;/param&gt;</span>
<span style="color:#0600ff;">public</span> <span style="color:#0600ff;">static</span> <span style="color:#0600ff;">void</span> RemoveConnection<span style="color:#000000;">(</span><span style="color:#ff0000;">string</span> name<span style="color:#000000;">)</span>
<span style="color:#000000;">{</span>
    var webConfig <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> ExeConfigurationFileMap <span style="color:#000000;">{</span> ExeConfigFilename <span style="color:#008000;">=</span> GlobalSettings.<span style="color:#0000ff;">FullpathToRoot</span> <span style="color:#008000;">+</span> <span style="color:#666666;">"web.config"</span> <span style="color:#000000;">}</span><span style="color:#008000;">;</span>
    var config <span style="color:#008000;">=</span> ConfigurationManager.<span style="color:#0000ff;">OpenMappedExeConfiguration</span><span style="color:#000000;">(</span>webConfig, ConfigurationUserLevel.<span style="color:#0000ff;">None</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
    var section <span style="color:#008000;">=</span> <span style="color:#000000;">(</span>ConnectionStringsSection<span style="color:#000000;">)</span>config.<span style="color:#0000ff;">GetSection</span><span style="color:#000000;">(</span><span style="color:#666666;">"connectionStrings"</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>

    <span style="color:#008080;font-style:italic;">// Die if the connectionstring dosn't exist</span>
    <span style="color:#0600ff;">if</span> <span style="color:#000000;">(</span>section.<span style="color:#0000ff;">ConnectionStrings</span><span style="color:#000000;">[</span>name<span style="color:#000000;">]</span> <span style="color:#008000;">==</span> <span style="color:#0600ff;">null</span><span style="color:#000000;">)</span> return<span style="color:#008000;">;</span>

    var keys <span style="color:#008000;">=</span> section.<span style="color:#0000ff;">ConnectionStrings</span><span style="color:#008000;">;</span>
    keys.<span style="color:#0000ff;">Remove</span><span style="color:#000000;">(</span>name<span style="color:#000000;">)</span><span style="color:#008000;">;</span>
    config.<span style="color:#0000ff;">Save</span><span style="color:#000000;">(</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
    ConfigurationManager.<span style="color:#0000ff;">RefreshSection</span><span style="color:#000000;">(</span><span style="color:#666666;">"connectionStrings"</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
<span style="color:#000000;">}</span></pre>
<h2>Check if connectionstring exist</h2>
<pre class="csharp" style="font:10px normal Consolas, Monaco, 'Courier New', Courier, monospace;"><span style="color:#008080;font-style:italic;">/// &lt;summary&gt;</span>
<span style="color:#008080;font-style:italic;">/// Check if a connectionString with the same name already exist</span>
<span style="color:#008080;font-style:italic;">/// &lt;/summary&gt;</span>
<span style="color:#008080;font-style:italic;">/// &lt;param name="name"&gt;Name of the connection&lt;/param&gt;</span>
<span style="color:#008080;font-style:italic;">/// &lt;returns&gt;True on existence, otherwise false&lt;/returns&gt;</span>
<span style="color:#0600ff;">private</span> <span style="color:#0600ff;">static</span> <span style="color:#ff0000;">bool</span> ConnectionExist<span style="color:#000000;">(</span><span style="color:#ff0000;">string</span> name<span style="color:#000000;">)</span>
<span style="color:#000000;">{</span>
    var webConfig <span style="color:#008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color:#008000;">new</span></a> ExeConfigurationFileMap <span style="color:#000000;">{</span> ExeConfigFilename <span style="color:#008000;">=</span> GlobalSettings.<span style="color:#0000ff;">FullpathToRoot</span> <span style="color:#008000;">+</span> <span style="color:#666666;">"web.config"</span> <span style="color:#000000;">}</span><span style="color:#008000;">;</span>
    var config <span style="color:#008000;">=</span> ConfigurationManager.<span style="color:#0000ff;">OpenMappedExeConfiguration</span><span style="color:#000000;">(</span>webConfig, ConfigurationUserLevel.<span style="color:#0000ff;">None</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>
    var section <span style="color:#008000;">=</span> <span style="color:#000000;">(</span>ConnectionStringsSection<span style="color:#000000;">)</span>config.<span style="color:#0000ff;">GetSection</span><span style="color:#000000;">(</span><span style="color:#666666;">"connectionStrings"</span><span style="color:#000000;">)</span><span style="color:#008000;">;</span>

    <span style="color:#008080;font-style:italic;">// Return false if it doesn't exist, true if it does</span>
    <span style="color:#0600ff;">return</span> section.<span style="color:#0000ff;">ConnectionStrings</span><span style="color:#000000;">[</span>name<span style="color:#000000;">]</span> <span style="color:#008000;">!=</span> null<span style="color:#008000;">;</span>
<span style="color:#000000;">}</span></pre>
<p>Thats it!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trikks.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trikks.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/trikks.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/trikks.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/trikks.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/trikks.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/trikks.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/trikks.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/trikks.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/trikks.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/trikks.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/trikks.wordpress.com/239/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/trikks.wordpress.com/239/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/trikks.wordpress.com/239/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trikks.wordpress.com&amp;blog=7671208&amp;post=239&amp;subd=trikks&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://trikks.wordpress.com/2011/07/13/howto-programmatically-add-update-and-remove-connectionstrings-in-umbraco/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/90294caceec6e1e468a078d4f7f86ea1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">trikks</media:title>
		</media:content>
	</item>
	</channel>
</rss>
