<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,2 +1,19 @@
-copyright notices
+[Amplify] new BSD
 
+Copyright (c) 2008, Michael Herndon, Amptools.Net
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
+
+Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+
+Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+
+Neither the name of Amptools.Net nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+[Inflector.Net]
+Inflector.Net was ported by andrewpeters from rail's active record. 
+http://andrewpeters.net/inflectornet/
\ No newline at end of file</diff>
      <filename>docs/copyrights.txt</filename>
    </modified>
    <modified>
      <diff>@@ -28,7 +28,7 @@ namespace Amplify
     public class Amp_Specification : Spec
     {
 
-        [It, Should(&quot; have static properties &quot;)]
+        [It, Should(&quot;have static properties &quot;)]
         public void GetProperties()
         {
 			IAmp amp = Amp.Get();
@@ -36,7 +36,7 @@ namespace Amplify
 			amp.Properties.ShouldNotBeNull();
         }
 
-		[It, Should(&quot; determine what development mode you are in&quot;)]
+		[It, Should(&quot;determine what development mode you are in&quot;)]
 		public void CheckMode()
 		{
 			Amp amp = new Amp();</diff>
      <filename>src/Amplify.Tests/Amp.cs</filename>
    </modified>
    <modified>
      <diff>@@ -28,7 +28,7 @@ namespace Amplify.Data
 	public class AdapterAdoStatements_Specification : Spec
 	{
 
-		[It, Should(&quot; should throw an exeption when BeginTransactin is called without a connection. &quot;)]
+		[It, Should(&quot;should throw an exeption when BeginTransactin is called without a connection. &quot;)]
 		public void BeginTransactionAndThrowException()
 		{
 			new Gallio.Action(() =&gt;</diff>
      <filename>src/Amplify.Tests/Data/Adapter.AdoStatements.cs</filename>
    </modified>
    <modified>
      <diff>@@ -28,7 +28,7 @@ namespace Amplify.Data
 	public class AdapterDatabaseStatements_Specification : Spec
 	{
 
-		[It, Should(&quot; have a public default constructor. &quot;)]
+		[It, Should(&quot;have a public default constructor. &quot;)]
 		public void InvokeConstructor()
 		{
 			//Adapter obj = new Adapter();</diff>
      <filename>src/Amplify.Tests/Data/Adapter.DatabaseStatements.cs</filename>
    </modified>
    <modified>
      <diff>@@ -28,14 +28,14 @@ namespace Amplify.Data
 	public class AdapterQuoting_Specification : Spec
 	{
 
-		[It, Should(&quot; quote a string value and remove single quotes. &quot;)]
+		[It, Should(&quot;quote a string value and remove single quotes. &quot;)]
 		public void QuoteString()
 		{
 			Adapter adapter = new TestAdapter();
 			adapter.Quote(&quot;test&quot;).ShouldBe(&quot;'test'&quot;);
 		}
 
-		[It, Should(&quot; quote an object's value appropiately. &quot;)]
+		[It, Should(&quot;quote an object's value appropiately. &quot;)]
 		public void QuoteValue()
 		{
 			Adapter adapter = new TestAdapter();
@@ -51,32 +51,32 @@ namespace Amplify.Data
 			adapter.Quote(&quot;1.01&quot;, DbType.Float).ShouldBe(&quot;1.01&quot;);
 		}
 
-		[It, Should(&quot; throw an exception for binary values because it should be parameterized. &quot;)]
+		[It, Should(&quot;throw an exception for binary values because it should be parameterized. &quot;)]
 		public void QuoteValueThrowsExceptionForBinaryValues()
 		{
-			new Gallio.Action(() =&gt;
-			{
+			new Gallio.Action(() =&gt; {
 				Adapter adapter = new TestAdapter();
 				adapter.Quote(new byte[] { 0x01, 0x02 });
-
-			}).ShouldThrow&lt;ArgumentException&gt;(&quot;passing in a byte array value should throw an argument exception&quot;);
+			})
+			.ShouldThrow&lt;ArgumentException&gt;(
+			 &quot;passing in a byte array value should throw an argument exception&quot;);
 		}
 
-		[It, Should(&quot; quote the column name. &quot;)]
+		[It, Should(&quot;quote the column name. &quot;)]
 		public void QuoteColumnName()
 		{
 			Adapter adapter = new TestAdapter();
 			adapter.QuoteColumnName(&quot;name&quot;).ShouldBe(&quot;name&quot;);
 		}
 
-		[It, Should(&quot; quote the table name. &quot;)]
+		[It, Should(&quot;quote the table name. &quot;)]
 		public void QuoteTableName()
 		{
 			Adapter adapter = new TestAdapter();
 			adapter.QuoteTableName(&quot;person&quot;).ShouldBe(&quot;person&quot;);
 		}
 
-		[It, Should(&quot; quote the datetime value in a mysql format.&quot;)]
+		[It, Should(&quot;quote the datetime value in a mysql format.&quot;)]
 		public void QuoteDate()
 		{
 			Adapter adapter = new TestAdapter();</diff>
      <filename>src/Amplify.Tests/Data/Adapter.Quoting.cs</filename>
    </modified>
    <modified>
      <diff>@@ -28,7 +28,7 @@ namespace Amplify.Data
     public class Adapter_Specification : Spec
     {
 
-        [It, Should(&quot; have a factory method that gets the default adapter. &quot;)]
+        [It, Should(&quot;have a factory method that gets the default adapter. &quot;)]
         public void Get()
         {
 			// this test assumes that you have connection strings in the configuration.
@@ -37,7 +37,7 @@ namespace Amplify.Data
             adapter.ShouldBe(Adapter.Get());
         }
 		
-		[It, Should(&quot; add an adapter to current list of adapters &quot;)]
+		[It, Should(&quot;add an adapter to current list of adapters &quot;)]
 		public void Add()
 		{
 			Adapter.Add(&quot;current&quot;, &quot;system.data.sqlclient&quot;, &quot;fakeconnectionstring&quot;);
@@ -46,7 +46,7 @@ namespace Amplify.Data
 			adapter.ConnectionString.ShouldBe(&quot;fakeconnectionstring&quot;);
 		}
 
-		[It, Should(&quot; throw an exception when trying to obtain an adapter with a bad key &quot;)]
+		[It, Should(&quot;throw an exception when trying to obtain an adapter with a bad key &quot;)]
 		public void TryToGetInvalidKey()
 		{
 			ArgumentException ex = null;</diff>
      <filename>src/Amplify.Tests/Data/Adapter.cs</filename>
    </modified>
    <modified>
      <diff>@@ -29,7 +29,7 @@ namespace Amplify.Data.Adapters
     public class MysqlAdapter_Specification : Spec
     {
 
-        [It, Should(&quot; have a public default constructor. &quot;)]
+        [It, Should(&quot;have a public default constructor. &quot;)]
         public void InvokeConstructor()
         {
             MySqlAdapter obj = new MySqlAdapter();</diff>
      <filename>src/Amplify.Tests/Data/Adapters/MysqlAdapter.cs</filename>
    </modified>
    <modified>
      <diff>@@ -28,7 +28,7 @@ namespace Amplify.Data.Adapters
     public class SqlAdapter_Specification : Spec
     {
 
-        [It, Should(&quot; have a public default constructor. &quot;)]
+        [It, Should(&quot;have a public default constructor. &quot;)]
         public void InvokeConstructor()
         {
             SqlAdapter obj = new SqlAdapter();</diff>
      <filename>src/Amplify.Tests/Data/Adapters/SqlAdapter.cs</filename>
    </modified>
    <modified>
      <diff>@@ -28,7 +28,7 @@ namespace Amplify.Data.Adapters
 	public class SqlCeAdapter_Specification : Spec
 	{
 
-		[It, Should(&quot; have a public default constructor. &quot;)]
+		[It, Should(&quot;have a public default constructor. &quot;)]
 		public void InvokeConstructor()
 		{
 			SqlCeAdapter obj = new SqlCeAdapter();</diff>
      <filename>src/Amplify.Tests/Data/Adapters/SqlCeAdapter.cs</filename>
    </modified>
    <modified>
      <diff>@@ -28,7 +28,7 @@ namespace Amplify.Data.Adapters
 	public class SqliteAdapter_Specification : Spec
 	{
 
-		[It, Should(&quot; have a public default constructor. &quot;)]
+		[It, Should(&quot;have a public default constructor. &quot;)]
 		public void InvokeConstructor()
 		{
 			SqliteAdapter obj = new SqliteAdapter();</diff>
      <filename>src/Amplify.Tests/Data/Adapters/SqliteAdapter.cs</filename>
    </modified>
    <modified>
      <diff>@@ -46,28 +46,28 @@ namespace Amplify
 		}
 
 
-        [It, Should(&quot; have a public default constructor. &quot;)]
+        [It, Should(&quot;have a public default constructor. &quot;)]
         public void InvokeConstructor()
         {
             Hash obj = new Hash();
             obj.ShouldNotBeNull();			
         }
 
-		[It, Should(&quot; have a constructor that takes an equality comparer.&quot;)]
+		[It, Should(&quot;have a constructor that takes an equality comparer.&quot;)]
 		public void InvokeConstructorWithComparer()
 		{
 			Hash obj = new Hash(new StringComparer());
 			obj.ShouldNotBeNull();
 		}
 
-		[It, Should(&quot; have an constructor that takes an object of IDictionary&lt;object, object&gt; &quot;)]
+		[It, Should(&quot;have an constructor that takes an object of IDictionary&lt;object, object&gt; &quot;)]
 		public void InvokeConstructorWithObjects()
 		{
 			Hash obj = new Hash(new Dictionary&lt;object, object&gt;());
 			obj.ShouldNotBeNull();
 		}
 
-		[It, Should(&quot; be able to serializable &quot;)]
+		[It, Should(&quot;be able to serializable &quot;)]
 		public void Serialize()
 		{
 			Hash obj = new Hash(new KV(&quot;Key&quot;, &quot;Value&quot;));
@@ -85,7 +85,7 @@ namespace Amplify
 			}
 		}
 
-		[It, Should(&quot; call static new with no arguments. &quot;)]
+		[It, Should(&quot;call static new with no arguments. &quot;)]
 		public void InvokeNewWithNoArgs()
 		{
 			Hash obj = Hash.New();
@@ -93,7 +93,7 @@ namespace Amplify
 			obj.Count.ShouldBe(0);
 		}
 
-		[It, Should(&quot; call static new with a Dictionary&lt;object, object&gt;.&quot;)]
+		[It, Should(&quot;call static new with a Dictionary&lt;object, object&gt;.&quot;)]
 		public void InvokeNewWithObjectDictionary()
 		{
 			Hash obj = Hash.New(new Dictionary&lt;object, object&gt;() { });
@@ -101,7 +101,7 @@ namespace Amplify
 			obj.Count.ShouldBe(0);
 		}
 
-		[It, Should(&quot; call static new with a Dictionary&lt;string, object&gt;. &quot;)]
+		[It, Should(&quot;call static new with a Dictionary&lt;string, object&gt;. &quot;)]
 		public void InvokeNewWithStringDictionary()
 		{
 			Hash obj = Hash.New(new Dictionary&lt;string, object&gt;() { });
@@ -109,7 +109,7 @@ namespace Amplify
 			obj.Count.ShouldBe(0);
 		}
 
-        [It, Should(&quot; be able to add key pair values &quot;)]
+        [It, Should(&quot;be able to add key pair values &quot;)]
         public void AddKeyPairs()
         {
             Hash obj = new Hash() { { &quot;test&quot;, 1 }, { &quot;1&quot;, &quot;yeah&quot; } };</diff>
      <filename>src/Amplify.Tests/Hash.cs</filename>
    </modified>
    <modified>
      <diff>@@ -38,7 +38,7 @@ namespace Amplify
 			}
 		}
 
-		[It, Should(&quot; has an execute method. &quot;)]
+		[It, Should(&quot;has an execute method. &quot;)]
 		public void InvokeExecute()
 		{
 			Command command = new Command();</diff>
      <filename>src/Amplify.Tests/ICommand.cs</filename>
    </modified>
    <modified>
      <diff>@@ -39,7 +39,7 @@ namespace Amplify
 			}
 		}
 
-		[It, Should(&quot; be able to set internal properties and retrieve them. &quot;)]
+		[It, Should(&quot;be able to set internal properties and retrieve them. &quot;)]
 		public void SetAndRetrieve()
 		{
 			IDecoratedObject obj = new Decorated();</diff>
      <filename>src/Amplify.Tests/IDecoratedObject.cs</filename>
    </modified>
    <modified>
      <diff>@@ -44,7 +44,7 @@ namespace Amplify
 		}
 
 
-		[It, Should(&quot; delete a stored value or object. &quot;)]
+		[It, Should(&quot;delete a stored value or object. &quot;)]
 		public void Delete()
 		{
 			IDeleteable obj = new Deletable() { Value = &quot;test&quot; };</diff>
      <filename>src/Amplify.Tests/IDeleteable.cs</filename>
    </modified>
    <modified>
      <diff>@@ -51,7 +51,7 @@ namespace Amplify
 		}
 
 
-		[It, Should(&quot; have a public default constructor. &quot;)]
+		[It, Should(&quot;have a public default constructor. &quot;)]
 		public void CompareIdentities()
 		{
 			IUniqueIdentifier&lt;Guid&gt; item = (IUniqueIdentifier&lt;Guid&gt;) new Unique();</diff>
      <filename>src/Amplify.Tests/IUniqueIdentifier.cs</filename>
    </modified>
    <modified>
      <diff>@@ -28,7 +28,7 @@ namespace Amplify
     public class KV_Specification : Spec
     {
 
-        [It, Should(&quot; have a public default constructor, that forces to create a key, value. &quot;)]
+        [It, Should(&quot;have a public default constructor, that forces to create a key, value. &quot;)]
         public void InvokeConstructor()
         {
             KV obj = new KV(&quot;key&quot;, &quot;value&quot;);</diff>
      <filename>src/Amplify.Tests/KV.cs</filename>
    </modified>
    <modified>
      <diff>@@ -54,14 +54,14 @@ namespace Amplify
 			StringUtil.IsMatch(&quot;TEST this app&quot;, &quot;test&quot;, RegexOptions.IgnoreCase).ShouldBeTrue();
 		}
 
-		[It, Should(&quot; convert the string to an integer. &quot;)]
+		[It, Should(&quot;convert the string to an integer. &quot;)]
 		public void ToInt()
 		{
 			StringUtil.ToInt(&quot;123&quot;).ShouldBe(123);
 			StringUtil.ToInt(&quot;hi&quot;).ShouldBe(int.MinValue);
 		}
 
-		[It, Should(&quot; conver the string to a date. &quot;)]
+		[It, Should(&quot;conver the string to a date. &quot;)]
 		public void ToDateTime()
 		{
 			DateTime date = StringUtil.ToDateTime(&quot;12/08/2009 10:12:00 AM&quot;);
@@ -76,7 +76,7 @@ namespace Amplify
 		}
 
 
-		[It, Should(&quot; convert the string to the date. &quot;)]
+		[It, Should(&quot;convert the string to the date. &quot;)]
 		public void ToDate()
 		{
 			DateTime date = StringUtil.ToDate(&quot;12/08/2009 10:12:00 AM&quot;);
@@ -85,7 +85,7 @@ namespace Amplify
 			date.Year.ShouldBe(2009);
 		}
 
-		[It, Should(&quot; convert the datetime string to a timespan. &quot;)]
+		[It, Should(&quot;convert the datetime string to a timespan. &quot;)]
 		public void ToTime()
 		{
 			TimeSpan span = StringUtil.ToTime(&quot;12/08/2009 10:12:00 AM&quot;);
@@ -93,20 +93,20 @@ namespace Amplify
 			span.Minutes.ShouldBe(12);
 		}
 
-		[It, Should(&quot; trim the string, using a string delimiter. &quot;)]
+		[It, Should(&quot;trim the string, using a string delimiter. &quot;)]
 		public void Trim()
 		{
 			StringUtil.Trim(&quot;huh&quot;, &quot;h&quot;).ShouldBe(&quot;u&quot;);
 		}
 		
-		[It, Should(&quot; trim the start of the string, using a string delimiter. &quot;)]
+		[It, Should(&quot;trim the start of the string, using a string delimiter. &quot;)]
 		public void TrimStart()
 		{
 			StringUtil.TrimStart(&quot;huh,&quot;, &quot;,&quot;).ShouldBe(&quot;huh,&quot;);
 			StringUtil.TrimStart(&quot;huh,&quot;, &quot;h&quot;).ShouldBe(&quot;uh,&quot;);
 		}
 
-		[It, Should(&quot; trim the end of the string, using a string delimiter. &quot;)]
+		[It, Should(&quot;trim the end of the string, using a string delimiter. &quot;)]
 		public void TrimEnd()
 		{
 			StringUtil.TrimEnd(&quot;huh,&quot;, &quot;,&quot;).ShouldBe(&quot;huh&quot;);
@@ -116,14 +116,14 @@ namespace Amplify
 
 		
 
-		[It, Should(&quot; split the string, using a string delimiter. &quot;)]
+		[It, Should(&quot;split the string, using a string delimiter. &quot;)]
 		public void Split()
 		{ 
 			StringUtil.Split(&quot;test, value1, value2&quot;, &quot;, &quot;).Contains(&quot;test&quot;).ShouldBeTrue();
 		}
 
 
-		[It, Should(&quot; iterate over the string and apply a handler to each segment. &quot; )]
+		[It, Should(&quot;iterate over the string and apply a handler to each segment. &quot; )]
 		public void Each()
 		{
 			string values = &quot;&quot;;</diff>
      <filename>src/Amplify.Tests/StringUtil.cs</filename>
    </modified>
    <modified>
      <diff>@@ -15,7 +15,7 @@ using System.Text;
 [SuppressMessage(&quot;Microsoft.Design&quot;, &quot;CA1050&quot;, Justification = &quot;Amp should be a singleton accessable without forcing a namespace to be specified&quot;)]
 public class Amp : IAmp 
 {
-    private static Amp amp;
+    private static IAmp amp;
 
     private Amplify.Hash properties;
  
@@ -33,13 +33,26 @@ public class Amp : IAmp
         }
     }
 
+    public string EnvironmentMode { get; set; }
+
     /// &lt;summary&gt;
     /// Gets or sets a value indicating whether this instance is in test.
     /// &lt;/summary&gt;
     /// &lt;value&gt;
     /// 	&lt;c&gt;true&lt;/c&gt; if this instance is in test; otherwise, &lt;c&gt;false&lt;/c&gt;.
     /// &lt;/value&gt;
-    public bool IsInTest { get; set; }
+    public bool IsInTest 
+    {
+        get
+        {
+            return this.EnvironmentMode == &quot;test&quot;;
+        }
+        set
+        {
+            if (value)
+                this.EnvironmentMode = &quot;test&quot;;
+        }
+    }
 
     /// &lt;summary&gt;
     /// Gets or sets a value indicating whether this instance is in development.
@@ -47,7 +60,18 @@ public class Amp : IAmp
     /// &lt;value&gt;
     /// 	&lt;c&gt;true&lt;/c&gt; if this instance is in development; otherwise, &lt;c&gt;false&lt;/c&gt;.
     /// &lt;/value&gt;
-    public bool IsInDevelopment { get; set; }
+    public bool IsInDevelopment 
+    {
+        get
+        {
+            return this.EnvironmentMode == &quot;development&quot;;
+        }
+        set
+        {
+            if (value)
+                this.EnvironmentMode = &quot;development&quot;;
+        }
+    }
 
     /// &lt;summary&gt;
     /// Gets or sets a value indicating whether this instance is in staging.
@@ -55,7 +79,18 @@ public class Amp : IAmp
     /// &lt;value&gt;
     /// 	&lt;c&gt;true&lt;/c&gt; if this instance is in staging; otherwise, &lt;c&gt;false&lt;/c&gt;.
     /// &lt;/value&gt;
-    public bool IsInStaging { get; set; }
+    public bool IsInStaging 
+    {
+        get 
+        { 
+            return this.EnvironmentMode == &quot;staging&quot;; 
+        }
+        set 
+        {
+            if (value)
+                this.EnvironmentMode = &quot;staging&quot;;
+        }
+    }
 
     /// &lt;summary&gt;
     /// Gets or sets a value indicating whether this instance is in production.
@@ -66,17 +101,14 @@ public class Amp : IAmp
     public bool IsInProduction 
     {
         get 
-        { 
-            return !this.IsInTest &amp;&amp; !this.IsInDevelopment &amp;&amp; !this.IsInStaging; 
+        {
+            return string.IsNullOrEmpty(this.EnvironmentMode) || 
+                this.EnvironmentMode == &quot;production&quot;;
         }
         set
         {
             if (value)
-            {
-                this.IsInTest = false;
-                this.IsInDevelopment = false;
-                this.IsInStaging = false;
-            }
+                this.EnvironmentMode = &quot;production&quot;;
         }
     }
 
@@ -93,7 +125,12 @@ public class Amp : IAmp
     public static IAmp Get()
     {
         if (amp == null)
-            amp = new Amp();
+            Set(new Amp());
         return amp;
     }
+
+    public static void Set(IAmp amp)
+    {
+        Amp.amp = amp;
+    }
 }</diff>
      <filename>src/Amplify/Amp.cs</filename>
    </modified>
    <modified>
      <diff>@@ -26,6 +26,7 @@
     &lt;ErrorReport&gt;prompt&lt;/ErrorReport&gt;
     &lt;WarningLevel&gt;4&lt;/WarningLevel&gt;
     &lt;RunCodeAnalysis&gt;true&lt;/RunCodeAnalysis&gt;
+    &lt;CodeAnalysisRules&gt;-Microsoft.Globalization#CA1308&lt;/CodeAnalysisRules&gt;
   &lt;/PropertyGroup&gt;
   &lt;PropertyGroup Condition=&quot; '$(Configuration)|$(Platform)' == 'Release|AnyCPU' &quot;&gt;
     &lt;DebugType&gt;pdbonly&lt;/DebugType&gt;</diff>
      <filename>src/Amplify/Amplify.csproj</filename>
    </modified>
    <modified>
      <diff>@@ -20,36 +20,52 @@ namespace Amplify.Data
 		[ThreadStatic]
 		private static object transaction;
 
-		protected object Transaction
+        /// &lt;summary&gt;
+        /// Gets or sets the connection string.
+        /// &lt;/summary&gt;
+        /// &lt;value&gt;The connection string.&lt;/value&gt;
+        public string ConnectionString { get; set; }
+
+        /// &lt;summary&gt;
+        /// Gets or sets the transaction.
+        /// &lt;/summary&gt;
+        /// &lt;value&gt;The transaction.&lt;/value&gt;
+		protected static object Transaction
 		{
 			get { return transaction; }
 			set { transaction = value; }
 		}
 
-		protected IDbConnection Connection
-		{
-			get { return staticConnection; }
-			set
-			{
-				if (value == null)
-				{
-					if (staticConnection != null)
-					{
-						staticConnection.Dispose();
-						staticConnection = null;
-					}
-					else
-					{
-						staticConnection = value;
-					}
-				}
-			}
-		}
+        /// &lt;summary&gt;
+        /// Gets or sets the connection.
+        /// &lt;/summary&gt;
+        /// &lt;value&gt;The connection.&lt;/value&gt;
+        protected static IDbConnection Connection
+        {
+            get { return staticConnection; }
+            set
+            {
+                if (value == null)
+                {
+                    if (staticConnection != null)
+                    {
+                        staticConnection.Dispose();
+                        staticConnection = null;
+                    }
+                    else
+                    {
+                        staticConnection = value;
+                    }
+                }
+            }
+        }
 
-		//protected IDbConnection Connect();
 
-		
 
+		/// &lt;summary&gt;
+		/// Begins the transaction.
+		/// &lt;/summary&gt;
+		/// &lt;param name=&quot;isolationLevel&quot;&gt;The isolation level.&lt;/param&gt;
 		public virtual void BeginTransaction(IsolationLevel isolationLevel)
 		{
 			if (Transaction == null)</diff>
      <filename>src/Amplify/Data/Adapter.AdoStatements.cs</filename>
    </modified>
    <modified>
      <diff>@@ -19,7 +19,7 @@ namespace Amplify.Data
 		/// &lt;/summary&gt;
 		/// &lt;param name=&quot;value&quot;&gt;The value.&lt;/param&gt;
 		/// &lt;returns&gt;&lt;/returns&gt;
-		public string Quote(object value)
+		public virtual string Quote(object value)
 		{
 			return this.Quote(value, DbType.None);
 		}
@@ -31,26 +31,23 @@ namespace Amplify.Data
 		/// &lt;param name=&quot;dbType&quot;&gt;Type of the db.&lt;/param&gt;
 		/// &lt;returns&gt;&lt;/returns&gt;
 		[SuppressMessageAttribute(&quot;Microsoft.Globalization&quot;, &quot;CA1308:NormalizeStringsToUppercase&quot;, Justification = &quot;pointless&quot;)]
-		public string Quote(object value, DbType dbType)
+		public virtual string Quote(object value, DbType dbType)
 		{
 			if (value == null || (value is string &amp;&amp; value.ToString().Trim().ToLowerInvariant() == &quot;null&quot;))
 				return &quot;NULL&quot;;
 
-			switch (value.GetType().ToString().ToLower())
+			switch (value.GetType().ToString().ToLowerInvariant())
 			{
 				case &quot;system.string&quot;:
 				case &quot;system.char[]&quot;:
-					if (dbType != DbType.None)
+					if (dbType != DbType.None &amp;&amp; new List&lt;DbType&gt;() { DbType.Integer, DbType.Float }.Contains(dbType))
 					{
-						if (new List&lt;DbType&gt;() { DbType.Integer, DbType.Float }.Contains(dbType))
-						{
-							object temp = (dbType == DbType.Integer) ? 
-								Convert.ToInt32(value, CultureInfo.InvariantCulture) : 
-								Convert.ToSingle(value, CultureInfo.InvariantCulture);
-							return temp.ToString();
-						}
+						object temp = (dbType == DbType.Integer) ? 
+							Convert.ToInt32(value, CultureInfo.InvariantCulture) : 
+							Convert.ToSingle(value, CultureInfo.InvariantCulture);
+						return temp.ToString();
 					}
-					return string.Format(&quot;'{0}'&quot;, QuoteString(value.ToString()));
+					return this.SingleQuote(this.QuoteString(value.ToString()));
 				case &quot;system.byte[]&quot;:
 					throw new ArgumentException(&quot;All binary values must be passed into an sql parameter&quot;);
 				case &quot;system.boolean&quot;:
@@ -59,12 +56,17 @@ namespace Amplify.Data
 					else
 						return (Convert.ToBoolean(value, CultureInfo.InvariantCulture)) ? &quot;1&quot; : &quot;0&quot;;
 				case &quot;system.datetime&quot;:
-					return string.Format(&quot;'{0}'&quot;, QuoteDate((DateTime)value));
+					return this.SingleQuote(this.QuoteDate((DateTime)value));
 				default:
-					return string.Format(&quot;'{0}'&quot;, QuoteString(value.ToString()));
+					return SingleQuote(this.QuoteString(value.ToString()));
 			}
 		}
 
+		protected virtual string SingleQuote(object value)
+		{
+            return string.Format(CultureInfo.CurrentCulture, &quot;'{0}'&quot;, value);
+		}
+
 		/// &lt;summary&gt;
 		/// Quotes the string.
 		/// &lt;/summary&gt;
@@ -120,7 +122,7 @@ namespace Amplify.Data
 		/// &lt;returns&gt;&lt;/returns&gt;
 		protected virtual string QuoteDate(DateTime value)
 		{
-			return value.ToString(&quot;yyyy-MM-dd HH:mm:ss&quot;);
+			return value.ToString(&quot;yyyy-MM-dd HH:mm:ss&quot;, CultureInfo.InvariantCulture);
 		}
 	}
 }</diff>
      <filename>src/Amplify/Data/Adapter.Quoting.cs</filename>
    </modified>
    <modified>
      <diff>@@ -4,7 +4,6 @@
 // &lt;/copyright&gt;
 //-----------------------------------------------------------------------
 
-
 namespace Amplify.Data
 {
     using System;
@@ -22,13 +21,10 @@ namespace Amplify.Data
 	public abstract partial class Adapter
     {
 		private static Dictionary&lt;string, Adapter&gt; adapters;
+        private static Dictionary&lt;string, Type&gt; adapterTypes;
         private static string defaultAdapter;
 
-        /// &lt;summary&gt;
-        /// Gets or sets the connection string.
-        /// &lt;/summary&gt;
-        /// &lt;value&gt;The connection string.&lt;/value&gt;
-        public string ConnectionString { get; set; }
+      
 
 		/// &lt;summary&gt;
 		/// Gets the default adapter.
@@ -42,19 +38,32 @@ namespace Amplify.Data
                 {
                     IAmp o = Amp.Get();
 
-                    if (o.IsInDevelopment)
-                        defaultAdapter = &quot;development&quot;;
-                    if (o.IsInTest)
-                        defaultAdapter = &quot;test&quot;;
-                    if (o.IsInStaging)
-                        defaultAdapter = &quot;staging&quot;;
-                    else
+                    if (o.IsInProduction)
                         defaultAdapter = &quot;production&quot;;
+                    else
+                        defaultAdapter = o.EnvironmentMode;
                 }
                 return defaultAdapter;
             }
         }
 
+        /// &lt;summary&gt;
+        /// Gets the adapter types.
+        /// &lt;/summary&gt;
+        /// &lt;value&gt;The adapter types.&lt;/value&gt;
+        protected static Dictionary&lt;string, Type&gt; AdapterTypes
+        {
+            get {
+                if (adapterTypes == null)
+                {
+                    adapterTypes = new Dictionary&lt;string, Type&gt;();
+                    InitializeDefaultAdapterTypes();
+                }
+                return adapterTypes;
+            }
+        }
+
+       
 		/// &lt;summary&gt;
 		/// Gets the adapters.
 		/// &lt;/summary&gt;
@@ -69,6 +78,37 @@ namespace Amplify.Data
             }
         }
 
+        private static void InitializeDefaultAdapterTypes()
+        {
+            Type sqlAdapter = typeof(Adapters.SqlAdapter);
+            adapterTypes.Add(&quot;System.Data.SqlClient&quot;, sqlAdapter);
+            adapterTypes.Add(&quot;mssql&quot;, sqlAdapter);
+            adapterTypes.Add(&quot;sqlclient&quot;, sqlAdapter);
+#if SQLCE
+            Type sqlCeAdapter = typeof(Adapters.SqlAdapter);
+            adapterTypes.Add(&quot;System.Data.SqlServerCe&quot;, sqlCeAdapter);
+            adapterTypes.Add(&quot;mssqlce&quot;, sqlCeAdapter);
+            adapterTypes.Add(&quot;sqlceclient&quot;, sqlCeAdapter);
+            adapterTypes.Add(&quot;sqlce&quot;, sqlCeAdapter);
+            adapterTypes.Add(&quot;sqlcompactedition&quot;, sqlCeAdapter);
+#endif
+
+#if MYSQL
+            Type mysqlAdapter = typeof(Adapters.MySqlAdapter);
+            adapterTypes.Add(&quot;MySql.Data.MySqlClient&quot;, mysqlAdapter);
+            adapterTypes.Add(&quot;mysql&quot;, mysqlAdapter);
+            adapterTypes.Add(&quot;mysqlclient&quot;, mysqlAdapter);
+#endif
+
+#if SQLITE
+            Type sqliteAdapter = typeof(Adapters.SqliteAdapter);
+            adapterTypes.Add(&quot;System.Data.Sqlite&quot;, sqliteAdapter);
+            adapterTypes.Add(&quot;sqlite&quot;, sqliteAdapter);
+            adapterTypes.Add(&quot;sqliteclient&quot;, sqliteAdapter);
+#endif
+        }
+
+
         /// &lt;summary&gt;
         /// Gets this instance.
         /// &lt;/summary&gt;
@@ -83,25 +123,25 @@ namespace Amplify.Data
         /// &lt;/summary&gt;
         /// &lt;param name=&quot;key&quot;&gt;The key.&lt;/param&gt;
         /// &lt;returns&gt;returns An Adapter&lt;/returns&gt;
-        public static Adapter Get(string key)
+        public static Adapter Get(string name)
         {
-            return Get(key, true);
+            return Get(name, true);
         }
 
         /// &lt;summary&gt;
         /// Gets the instance specified by the key.
         /// &lt;/summary&gt;
-        /// &lt;param name=&quot;key&quot;&gt;The key.&lt;/param&gt;
+        /// &lt;param name=&quot;name&quot;&gt;The name, often the same as the connection string name.&lt;/param&gt;
         /// &lt;param name=&quot;useSuffix&quot;&gt;if set to &lt;c&gt;true&lt;/c&gt; [use suffix].&lt;/param&gt;
         /// &lt;returns&gt;An Adapter&lt;/returns&gt;
-		public static Adapter Get(string key, bool useSuffix)
+		public static Adapter Get(string name, bool useSuffix)
 		{
             string actualKey;
 
-            if (string.IsNullOrEmpty(key))
+            if (string.IsNullOrEmpty(name))
                 actualKey = DefaultAdapter;
             else
-                actualKey = useSuffix ? string.Format(CultureInfo.InvariantCulture, &quot;{0}_{1}&quot;, key, DefaultAdapter) : key;
+                actualKey = useSuffix ? string.Format(CultureInfo.InvariantCulture, &quot;{0}_{1}&quot;, name, DefaultAdapter) : name;
 			if (!Adapters.ContainsKey(actualKey))
 			{
 				ConnectionStringSettings settings = ConfigurationManager.ConnectionStrings[actualKey];
@@ -121,7 +161,7 @@ namespace Amplify.Data
         /// Adds a new instance of an adapter by the connection string.  
         /// &lt;/summary&gt;
         /// &lt;param name=&quot;settings&quot;&gt;The settings.&lt;/param&gt;
-        /// &lt;returns&gt;&lt;/returns&gt;
+        /// &lt;returns&gt;&lt;see cref=&quot;Amplify.Adapter&quot;/&gt;&lt;/returns&gt;
 		public static Adapter Add(System.Configuration.ConnectionStringSettings settings)
 		{
 			return Add(settings.Name, settings.ProviderName, settings.ConnectionString);
@@ -130,43 +170,51 @@ namespace Amplify.Data
         /// &lt;summary&gt;
         /// Adds a new instance of an adapter with a keyed lookup.
         /// &lt;/summary&gt;
-        /// &lt;param name=&quot;key&quot;&gt;The key.&lt;/param&gt;
+        /// &lt;param name=&quot;name&quot;&gt;The name/key to look up later when you retrieve the adapter.&lt;/param&gt;
         /// &lt;param name=&quot;providerName&quot;&gt;Name of the provider.&lt;/param&gt;
         /// &lt;param name=&quot;connectionString&quot;&gt;The connection string.&lt;/param&gt;
-        /// &lt;returns&gt;&lt;/returns&gt;
+        /// &lt;returns&gt;&lt;see cref=&quot;Amplify.Adapter&quot;/&gt;&lt;/returns&gt;
+        /// &lt;exception cref=&quot;System.ArgumentException&quot;&gt;
+        ///     throws if the name already is already stored with an associated 
+        ///     adapter.
+        /// &lt;/exception&gt;
+        /// &lt;exception cref=&quot;System.InvalidOperationException&quot;&gt;
+        ///     throws if you try to add an adapter type that has not been registered 
+        ///     in the Adapter.AdapterTypes
+        /// &lt;/exception&gt;
         [SuppressMessageAttribute(&quot;Microsoft.Globalization&quot;, &quot;CA1308&quot;)]
-		public static Adapter Add(string key, string providerName, string connectionString)
+		public static Adapter Add(string name, string providerName, string connectionString)
 		{
+            if(Adapter.Adapters.ContainsKey(name))
+                throw new ArgumentException(
+                    string.Format(
+                        CultureInfo.CurrentCulture,
+                        Resources.Exception_AdapterNameAlreadyExists,
+                        name));
+
 			Adapter adapter = null;
-			switch (providerName.ToLowerInvariant())
-			{
-				case &quot;system.data.sqlclient&quot;:
-				case &quot;mssql&quot;:
-				case &quot;sqlclient&quot;:
-					adapter = new Adapters.SqlAdapter();
-					break;
-				case &quot;system.data.sqlserverce&quot;:
-					// adapter = new SqlClientCe.SqlAdapter(connectionString);
-					break;
-#if MYSQL
-				case &quot;system.data.mysql&quot;:
-				case &quot;sun.data.mysql&quot;:
-				case &quot;mysqlclient&quot;:
-				case &quot;mysql&quot;:
-					adapter = new Adapters.MySqlAdapter();
-					break;
-#endif
-				default:
-					throw new ArgumentException(
-                        string.Format(
-                            CultureInfo.CurrentCulture,
-						    Resources.Exception_DataAdapterNotSupported,
-						    providerName));
-			}
+            bool found = false;
+
+            foreach(string key in AdapterTypes.Keys)
+            {
+                if (providerName.Trim().ToLowerInvariant() == key.ToLowerInvariant())
+                {
+                    Type type = Adapter.AdapterTypes[key];
+                    adapter = (Adapter)Activator.CreateInstance(type);
+                    adapter.ConnectionString = connectionString;
+                    Adapter.Adapters.Add(name, adapter);
+                    found = true;
+                    break;
+                }
+            }
+            if (!found)
+                throw new InvalidOperationException(
+                    string.Format(
+                        CultureInfo.CurrentCulture,
+                        Resources.Exception_AdapterTypeNotFound,
+                        providerName));
 
-			adapter.ConnectionString = connectionString;
-			Adapters.Add(key, adapter);
-			return adapter;
+            return adapter;
 		}
     }
 }</diff>
      <filename>src/Amplify/Data/Adapter.cs</filename>
    </modified>
    <modified>
      <diff>@@ -1,18 +1,72 @@
-&#65279;
+&#65279;//-----------------------------------------------------------------------
+// &lt;copyright file=&quot;root/docs/copyrights.txt&quot; authors=&quot;Michael Herndon&quot;&gt;
+//     Copyright (c) 2008 Michael Herndon.  All rights reserved.
+// &lt;/copyright&gt;
+//-----------------------------------------------------------------------
 
 namespace Amplify.Data.Adapters
 {
     using System;
     using System.Collections.Generic;
+    using System.Globalization;
     using System.Text;
 
 #if MYSQL
     /// &lt;summary&gt;
     /// The adapter for MySql. 
     /// &lt;/summary&gt;
-    public class MySqlAdapter : Adapter 
-    {
+    public class MySqlAdapter : Adapter
+	{
 
-    }
+		#region Quoting Properties
+
+		/// &lt;summary&gt;
+		/// Gets the quoted true.
+		/// &lt;/summary&gt;
+		/// &lt;value&gt;The quoted true.&lt;/value&gt;
+		public override string QuotedTrue
+		{
+			get { return &quot;1&quot;; }
+		}
+
+		/// &lt;summary&gt;
+		/// Gets the quoted false.
+		/// &lt;/summary&gt;
+		/// &lt;value&gt;The quoted false.&lt;/value&gt;
+		public override string QuotedFalse
+		{
+			get { return &quot;0&quot;; }
+		}
+
+		#endregion
+
+
+		#region Quoting Methods
+
+		/// &lt;summary&gt;
+		/// Quotes the specified value.
+		/// &lt;/summary&gt;
+		/// &lt;param name=&quot;value&quot;&gt;The value.&lt;/param&gt;
+		/// &lt;param name=&quot;dbType&quot;&gt;Type of the db.&lt;/param&gt;
+		/// &lt;returns&gt;&lt;/returns&gt;
+		public override string Quote(object value, DbType dbType)
+		{
+			if (value is double)
+				return string.Format(CultureInfo.InvariantCulture, &quot;'{0}'&quot;, value.ToString());
+			return base.Quote(value, dbType);
+		}
+
+		/// &lt;summary&gt;
+		/// Quotes the name of the column.
+		/// &lt;/summary&gt;
+		/// &lt;param name=&quot;name&quot;&gt;The name.&lt;/param&gt;
+		/// &lt;returns&gt;&lt;/returns&gt;
+		public override string QuoteColumnName(string name)
+		{
+			return string.Format(CultureInfo.InvariantCulture,&quot;`{0}`&quot;, name);
+		}
+
+		#endregion
+	}
 #endif
 }</diff>
      <filename>src/Amplify/Data/Adapters/MysqlAdapter.cs</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,14 @@
-&#65279;namespace Amplify.Data.Adapters
+&#65279;//-----------------------------------------------------------------------
+// &lt;copyright file=&quot;root/docs/copyrights.txt&quot; authors=&quot;Michael Herndon&quot;&gt;
+//     Copyright (c) 2008 Michael Herndon.  All rights reserved.
+// &lt;/copyright&gt;
+//-----------------------------------------------------------------------
+
+namespace Amplify.Data.Adapters
 {
     using System;
     using System.Collections.Generic;
+    using System.Globalization;
     using System.Text;
 
     /// &lt;summary&gt;
@@ -9,5 +16,76 @@
     /// &lt;/summary&gt;
     public class SqlAdapter : Adapter 
     {
+
+
+		#region Quoting Properties
+
+		/// &lt;summary&gt;
+		/// Gets the quoted true.
+		/// &lt;/summary&gt;
+		/// &lt;value&gt;The quoted true.&lt;/value&gt;
+		public override string QuotedTrue
+		{
+			get { return &quot;1&quot;; }
+		}
+
+		/// &lt;summary&gt;
+		/// Gets the quoted false.
+		/// &lt;/summary&gt;
+		/// &lt;value&gt;The quoted false.&lt;/value&gt;
+		public override string QuotedFalse
+		{
+			get { return &quot;0&quot;; }
+		}
+
+		#endregion
+
+
+		#region Quoting Methods
+
+		/// &lt;summary&gt;
+		/// Quotes the specified value.
+		/// &lt;/summary&gt;
+		/// &lt;param name=&quot;value&quot;&gt;The value.&lt;/param&gt;
+		/// &lt;param name=&quot;dbType&quot;&gt;Type of the db.&lt;/param&gt;
+		/// &lt;returns&gt;&lt;/returns&gt;
+		public override string Quote(object value, DbType dbType)
+		{
+			switch (value.GetType().ToString().ToLowerInvariant())
+			{
+				case &quot;system.boolean&quot;:
+					if ((bool)value)
+						return &quot;1&quot;;
+					else
+						return &quot;0&quot;;
+				case &quot;system.datetime&quot;:
+					if (dbType == DbType.Date)
+						return this.SingleQuote(((DateTime)value).ToString(&quot;MM/dd/yyyy&quot;, CultureInfo.InvariantCulture));
+					return this.SingleQuote(((DateTime)value).ToString(&quot;MM/dd/yyyy HH:mm:ss&quot;, CultureInfo.InvariantCulture));
+			}
+			return base.Quote(value, dbType);
+		}
+
+		/// &lt;summary&gt;
+		/// Quotes the name of the column.
+		/// &lt;/summary&gt;
+		/// &lt;param name=&quot;name&quot;&gt;The name.&lt;/param&gt;
+		/// &lt;returns&gt;&lt;/returns&gt;
+		public override string QuoteColumnName(string name)
+		{
+            return string.Format(CultureInfo.InvariantCulture, &quot;[{0}]&quot;, name);
+		}
+
+		/// &lt;summary&gt;
+		/// Quotes the name of the table.
+		/// &lt;/summary&gt;
+		/// &lt;param name=&quot;name&quot;&gt;The name.&lt;/param&gt;
+		/// &lt;returns&gt;&lt;/returns&gt;
+		public override string QuoteTableName(string name)
+		{
+            return string.Format(CultureInfo.InvariantCulture, &quot;[{0}]&quot;, name);
+		}
+
+		#endregion
     }
 }</diff>
      <filename>src/Amplify/Data/Adapters/SqlAdapter.cs</filename>
    </modified>
    <modified>
      <diff>@@ -8,15 +8,87 @@ namespace Amplify.Data.Adapters
 {
 	using System;
 	using System.Collections.Generic;
+    using System.Diagnostics.CodeAnalysis;
+    using System.Globalization;
 	using System.Text;
 
 #if SQLCE
 	/// &lt;summary&gt;
 	/// The adapter for sql compact edition.
 	/// &lt;/summary&gt;
+    [SuppressMessage(&quot;Microsoft.Naming&quot;, &quot;CA1709&quot;, Justification = &quot;Uppercasing CE make its harder to read SqlCEAdapter vs SqlCeAdapter&quot;)]
 	public class SqlCeAdapter : Adapter 
 	{
 
+		#region Quoting Properties
+
+		/// &lt;summary&gt;
+		/// Gets the quoted true.
+		/// &lt;/summary&gt;
+		/// &lt;value&gt;The quoted true.&lt;/value&gt;
+		public override string QuotedTrue
+		{
+			get { return &quot;1&quot;; }
+		}
+
+		/// &lt;summary&gt;
+		/// Gets the quoted false.
+		/// &lt;/summary&gt;
+		/// &lt;value&gt;The quoted false.&lt;/value&gt;
+		public override string QuotedFalse
+		{
+			get { return &quot;0&quot;; }
+		}
+
+		#endregion
+
+
+		#region Quoting Methods
+
+		/// &lt;summary&gt;
+		/// Quotes the specified value.
+		/// &lt;/summary&gt;
+		/// &lt;param name=&quot;value&quot;&gt;The value.&lt;/param&gt;
+		/// &lt;param name=&quot;dbType&quot;&gt;Type of the db.&lt;/param&gt;
+		/// &lt;returns&gt;&lt;/returns&gt;
+		public override string Quote(object value, DbType dbType)
+		{
+			switch (value.GetType().ToString().ToLowerInvariant())
+			{
+				case &quot;system.boolean&quot;:
+					if ((bool)value)
+						return &quot;1&quot;;
+					else
+						return &quot;0&quot;;
+				case &quot;system.datetime&quot;:
+					if (dbType == DbType.Date)
+						return this.SingleQuote(((DateTime)value).ToString(&quot;MM/dd/yyyy&quot;, CultureInfo.InvariantCulture));
+					return this.SingleQuote(((DateTime)value).ToString(&quot;MM/dd/yyyy HH:mm:ss&quot;, CultureInfo.InvariantCulture));
+			}
+			return base.Quote(value, dbType);
+		}
+
+		/// &lt;summary&gt;
+		/// Quotes the name of the column.
+		/// &lt;/summary&gt;
+		/// &lt;param name=&quot;name&quot;&gt;The name.&lt;/param&gt;
+		/// &lt;returns&gt;&lt;/returns&gt;
+		public override string QuoteColumnName(string name)
+		{
+			return string.Format(CultureInfo.InvariantCulture,&quot;[{0}]&quot;, name);
+		}
+
+		/// &lt;summary&gt;
+		/// Quotes the name of the table.
+		/// &lt;/summary&gt;
+		/// &lt;param name=&quot;name&quot;&gt;The name.&lt;/param&gt;
+		/// &lt;returns&gt;&lt;/returns&gt;
+		public override string QuoteTableName(string name)
+		{
+			return string.Format(CultureInfo.InvariantCulture,&quot;[{0}]&quot;, name);
+		}
+
+		#endregion
 	}
 #endif 
 }</diff>
      <filename>src/Amplify/Data/Adapters/SqlCeAdapter.cs</filename>
    </modified>
    <modified>
      <diff>@@ -8,14 +8,17 @@ namespace Amplify.Data.Adapters
 {
 	using System;
 	using System.Collections.Generic;
+    using System.Diagnostics.CodeAnalysis;
 	using System.Text;
 #if SQLITE
 	/// &lt;summary&gt;
 	/// The sqlite adapter 
 	/// &lt;/summary&gt;
-	public class SqliteAdapter : Adapter 
+    [SuppressMessage(&quot;Microsoft.Naming&quot;, &quot;CA1704&quot;, Justification = &quot;Sqlite is correctly named&quot;)]
+	public class SqliteAdapter : Adapter
 	{
 
+
 	}
 #endif
 }</diff>
      <filename>src/Amplify/Data/Adapters/SqliteAdapter.cs</filename>
    </modified>
    <modified>
      <diff>@@ -14,6 +14,8 @@ using System.Text;
     {
         Amplify.Hash Properties { get; }
 
+        string EnvironmentMode { get; }
+
         bool IsInTest { get; }
 
         bool IsInDevelopment { get; }</diff>
      <filename>src/Amplify/IAmp.cs</filename>
    </modified>
    <modified>
      <diff>@@ -61,6 +61,24 @@ namespace Amplify.Properties {
         }
         
         /// &lt;summary&gt;
+        ///   Looks up a localized string similar to an adapter with the name {0} already exists.
+        /// &lt;/summary&gt;
+        public static string Exception_AdapterNameAlreadyExists {
+            get {
+                return ResourceManager.GetString(&quot;Exception_AdapterNameAlreadyExists&quot;, resourceCulture);
+            }
+        }
+        
+        /// &lt;summary&gt;
+        ///   Looks up a localized string similar to The Adapter type you specified {0} could not be found in Adapter.AdapterTypes.
+        /// &lt;/summary&gt;
+        public static string Exception_AdapterTypeNotFound {
+            get {
+                return ResourceManager.GetString(&quot;Exception_AdapterTypeNotFound&quot;, resourceCulture);
+            }
+        }
+        
+        /// &lt;summary&gt;
         ///   Looks up a localized string similar to The database connection has not been initialized..
         /// &lt;/summary&gt;
         public static string Exception_ConnectionNotInitialized {</diff>
      <filename>src/Amplify/Properties/Resources.Designer.cs</filename>
    </modified>
    <modified>
      <diff>@@ -117,6 +117,12 @@
   &lt;resheader name=&quot;writer&quot;&gt;
     &lt;value&gt;System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&lt;/value&gt;
   &lt;/resheader&gt;
+  &lt;data name=&quot;Exception_AdapterNameAlreadyExists&quot; xml:space=&quot;preserve&quot;&gt;
+    &lt;value&gt;an adapter with the name {0} already exists&lt;/value&gt;
+  &lt;/data&gt;
+  &lt;data name=&quot;Exception_AdapterTypeNotFound&quot; xml:space=&quot;preserve&quot;&gt;
+    &lt;value&gt;The Adapter type you specified {0} could not be found in Adapter.AdapterTypes&lt;/value&gt;
+  &lt;/data&gt;
   &lt;data name=&quot;Exception_ConnectionNotInitialized&quot; xml:space=&quot;preserve&quot;&gt;
     &lt;value&gt;The database connection has not been initialized.&lt;/value&gt;
   &lt;/data&gt;</diff>
      <filename>src/Amplify/Properties/Resources.resx</filename>
    </modified>
    <modified>
      <diff>@@ -16,6 +16,16 @@
 	{
 
 		/// &lt;summary&gt;
+		/// Regexes the specified pattern.
+		/// &lt;/summary&gt;
+		/// &lt;param name=&quot;pattern&quot;&gt;The pattern.&lt;/param&gt;
+		/// &lt;returns&gt;&lt;/returns&gt;
+		public static Regex ToRegex(string pattern)
+		{
+			return new Regex(pattern, RegexOptions.ECMAScript);
+		}
+
+		/// &lt;summary&gt;
 		/// Grep and substring static utility method. 
 		/// &lt;/summary&gt;
 		/// &lt;param name=&quot;input&quot;&gt;The string to be parsed.&lt;/param&gt;</diff>
      <filename>src/Amplify/StringUtil.cs</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>de78a767e78ee3f21bf33c48a835e59d73035372</id>
    </parent>
  </parents>
  <author>
    <name>unknown</name>
    <email>michael.herndon@.mt.local</email>
  </author>
  <url>http://github.com/michaelherndon/amplify/commit/4bec3f3b71401ce2da01ca358244638df28c388d</url>
  <id>4bec3f3b71401ce2da01ca358244638df28c388d</id>
  <committed-date>2008-10-30T10:33:48-07:00</committed-date>
  <authored-date>2008-10-30T10:33:48-07:00</authored-date>
  <message>made modifications to Amp &amp; Adapter in order to provide increased flexibility in adding adapters and adding application environment modes</message>
  <tree>ca78e5ecb8d6122d716fc41277ae9d85bcfd76ec</tree>
  <committer>
    <name>unknown</name>
    <email>michael.herndon@.mt.local</email>
  </committer>
</commit>
