diff --git a/bulky/.gitignore b/.gitignore
similarity index 100%
rename from bulky/.gitignore
rename to .gitignore
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..9fc2af2
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,16 @@
+### webstack
+#### http://github.com/danielcrenna/webstack
+
+Copyright (c) 2009-2013 Conatus Creative Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
+documentation files (the "Software"), to deal in the Software without restriction, including without limitation
+the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and
+to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/bulky/.nuget/NuGet.Config b/bulky/.nuget/NuGet.Config
deleted file mode 100644
index 5e74378..0000000
--- a/bulky/.nuget/NuGet.Config
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/bulky/.nuget/NuGet.targets b/bulky/.nuget/NuGet.targets
deleted file mode 100644
index bda5bea..0000000
--- a/bulky/.nuget/NuGet.targets
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-
- $(MSBuildProjectDirectory)\..\
-
-
- false
-
-
- false
-
-
- true
-
-
- false
-
-
-
-
-
-
-
-
-
- $([System.IO.Path]::Combine($(SolutionDir), ".nuget"))
- $([System.IO.Path]::Combine($(ProjectDir), "packages.config"))
- $([System.IO.Path]::Combine($(SolutionDir), "packages"))
-
-
-
-
- $(SolutionDir).nuget
- packages.config
- $(SolutionDir)packages
-
-
-
-
- $(NuGetToolsPath)\nuget.exe
- @(PackageSource)
-
- "$(NuGetExePath)"
- mono --runtime=v4.0.30319 $(NuGetExePath)
-
- $(TargetDir.Trim('\\'))
-
- -RequireConsent
-
- $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch) -o "$(PackagesDir)"
- $(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols
-
-
-
- RestorePackages;
- $(BuildDependsOn);
-
-
-
-
- $(BuildDependsOn);
- BuildPackage;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/bulky/bulky.1.0.6.nupkg b/bulky/bulky.1.0.6.nupkg
deleted file mode 100644
index c09996b..0000000
Binary files a/bulky/bulky.1.0.6.nupkg and /dev/null differ
diff --git a/container/.gitignore b/container/.gitignore
deleted file mode 100644
index 2f7b39f..0000000
--- a/container/.gitignore
+++ /dev/null
@@ -1,40 +0,0 @@
-#ignore thumbnails created by windows
-Thumbs.db
-#Ignore files build by Visual Studio
-*.obj
-*.pdb
-*.user
-*.aps
-*.pch
-*.vspscc
-*_i.c
-*_p.c
-*.ncb
-*.suo
-*.tlb
-*.tlh
-*.bak
-*.cache
-*.ilk
-*.log
-[Bb]in
-[Dd]ebug
-[Cc]lientBin*/
-*.lib
-*.sbr
-obj/
-[Rr]elease*/
-_ReSharper*/
-[Tt]est[Rr]esult*
-deploy.config
-*.vsmdi
-*.pidb
-*.userprefs
-*.testrunconfig
-*.testsettings
-publish.xml
-TestResults
-$SSH_ENV
-src/.DS_Store
-src/.nuget/NuGet.Config
-*.nupkg
diff --git a/container/.nuget/NuGet.Config b/container/.nuget/NuGet.Config
deleted file mode 100644
index 5e74378..0000000
--- a/container/.nuget/NuGet.Config
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/container/.nuget/NuGet.targets b/container/.nuget/NuGet.targets
deleted file mode 100644
index bda5bea..0000000
--- a/container/.nuget/NuGet.targets
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-
- $(MSBuildProjectDirectory)\..\
-
-
- false
-
-
- false
-
-
- true
-
-
- false
-
-
-
-
-
-
-
-
-
- $([System.IO.Path]::Combine($(SolutionDir), ".nuget"))
- $([System.IO.Path]::Combine($(ProjectDir), "packages.config"))
- $([System.IO.Path]::Combine($(SolutionDir), "packages"))
-
-
-
-
- $(SolutionDir).nuget
- packages.config
- $(SolutionDir)packages
-
-
-
-
- $(NuGetToolsPath)\nuget.exe
- @(PackageSource)
-
- "$(NuGetExePath)"
- mono --runtime=v4.0.30319 $(NuGetExePath)
-
- $(TargetDir.Trim('\\'))
-
- -RequireConsent
-
- $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch) -o "$(PackagesDir)"
- $(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols
-
-
-
- RestorePackages;
- $(BuildDependsOn);
-
-
-
-
- $(BuildDependsOn);
- BuildPackage;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/container/container.1.1.1.nupkg b/container/container.1.1.1.nupkg
new file mode 100644
index 0000000..3168dbb
Binary files /dev/null and b/container/container.1.1.1.nupkg differ
diff --git a/dates/.gitignore b/dates/.gitignore
deleted file mode 100644
index aa9ef97..0000000
--- a/dates/.gitignore
+++ /dev/null
@@ -1,35 +0,0 @@
-#ignore thumbnails created by windows
-Thumbs.db
-#Ignore files build by Visual Studio
-*.obj
-*.pdb
-*.user
-*.aps
-*.pch
-*.vspscc
-*_i.c
-*_p.c
-*.ncb
-*.suo
-*.tlb
-*.tlh
-*.bak
-*.cache
-*.ilk
-*.log
-[Bb]in
-[Dd]ebug*/
-*.lib
-*.sbr
-obj/
-[Rr]elease*/
-_ReSharper*/
-[Tt]est[Rr]esult*
-deploy.config
-Examples*/
-*.vsmdi
-*.pidb
-*.userprefs
-*.testrunconfig
-publish.xml
-TestResults
\ No newline at end of file
diff --git a/dates/.nuget/NuGet.Config b/dates/.nuget/NuGet.Config
deleted file mode 100644
index 5e74378..0000000
--- a/dates/.nuget/NuGet.Config
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/dates/.nuget/NuGet.targets b/dates/.nuget/NuGet.targets
deleted file mode 100644
index bda5bea..0000000
--- a/dates/.nuget/NuGet.targets
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-
- $(MSBuildProjectDirectory)\..\
-
-
- false
-
-
- false
-
-
- true
-
-
- false
-
-
-
-
-
-
-
-
-
- $([System.IO.Path]::Combine($(SolutionDir), ".nuget"))
- $([System.IO.Path]::Combine($(ProjectDir), "packages.config"))
- $([System.IO.Path]::Combine($(SolutionDir), "packages"))
-
-
-
-
- $(SolutionDir).nuget
- packages.config
- $(SolutionDir)packages
-
-
-
-
- $(NuGetToolsPath)\nuget.exe
- @(PackageSource)
-
- "$(NuGetExePath)"
- mono --runtime=v4.0.30319 $(NuGetExePath)
-
- $(TargetDir.Trim('\\'))
-
- -RequireConsent
-
- $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch) -o "$(PackagesDir)"
- $(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols
-
-
-
- RestorePackages;
- $(BuildDependsOn);
-
-
-
-
- $(BuildDependsOn);
- BuildPackage;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/depot/.gitignore b/depot/.gitignore
deleted file mode 100644
index 4bb9a48..0000000
--- a/depot/.gitignore
+++ /dev/null
@@ -1,36 +0,0 @@
-#ignore thumbnails created by windows
-Thumbs.db
-#Ignore files build by Visual Studio
-*.obj
-*.pdb
-*.user
-*.aps
-*.pch
-*.vspscc
-*_i.c
-*_p.c
-*.ncb
-*.suo
-*.tlb
-*.tlh
-*.bak
-*.cache
-*.ilk
-*.log
-[Bb]in
-[Dd]ebug*/
-*.lib
-*.sbr
-obj/
-[Rr]elease*/
-_ReSharper*/
-[Tt]est[Rr]esult*
-deploy.config
-Examples*/
-*.vsmdi
-*.pidb
-*.userprefs
-*.testrunconfig
-publish.xml
-TestResults
-*.nupkg
diff --git a/depot/.nuget/NuGet.Config b/depot/.nuget/NuGet.Config
deleted file mode 100644
index 67f8ea0..0000000
--- a/depot/.nuget/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/depot/.nuget/NuGet.targets b/depot/.nuget/NuGet.targets
deleted file mode 100644
index bda5bea..0000000
--- a/depot/.nuget/NuGet.targets
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-
- $(MSBuildProjectDirectory)\..\
-
-
- false
-
-
- false
-
-
- true
-
-
- false
-
-
-
-
-
-
-
-
-
- $([System.IO.Path]::Combine($(SolutionDir), ".nuget"))
- $([System.IO.Path]::Combine($(ProjectDir), "packages.config"))
- $([System.IO.Path]::Combine($(SolutionDir), "packages"))
-
-
-
-
- $(SolutionDir).nuget
- packages.config
- $(SolutionDir)packages
-
-
-
-
- $(NuGetToolsPath)\nuget.exe
- @(PackageSource)
-
- "$(NuGetExePath)"
- mono --runtime=v4.0.30319 $(NuGetExePath)
-
- $(TargetDir.Trim('\\'))
-
- -RequireConsent
-
- $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch) -o "$(PackagesDir)"
- $(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols
-
-
-
- RestorePackages;
- $(BuildDependsOn);
-
-
-
-
- $(BuildDependsOn);
- BuildPackage;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/email/.gitignore b/email/.gitignore
deleted file mode 100644
index 1f4f711..0000000
--- a/email/.gitignore
+++ /dev/null
@@ -1,31 +0,0 @@
-Thumbs.db
-*.obj
-*.exe
-*.pdb
-*.user
-*.aps
-*.pch
-*.vspscc
-*_i.c
-*_p.c
-*.ncb
-*.suo
-*.tlb
-*.tlh
-*.bak
-*.cache
-*.ilk
-*.log
-ClientBin
-[Bb]in
-[Dd]ebug*/
-*.lib
-*.sbr
-obj/
-[Rr]elease*/
-_ReSharper*/
-[Tt]est[Rr]esult*
-*.csproj.user
-*.resharper*
-*.pidb
-*.userprefs
diff --git a/email/.nuget/NuGet.Config b/email/.nuget/NuGet.Config
deleted file mode 100644
index 67f8ea0..0000000
--- a/email/.nuget/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/email/.nuget/NuGet.targets b/email/.nuget/NuGet.targets
deleted file mode 100644
index bda5bea..0000000
--- a/email/.nuget/NuGet.targets
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-
- $(MSBuildProjectDirectory)\..\
-
-
- false
-
-
- false
-
-
- true
-
-
- false
-
-
-
-
-
-
-
-
-
- $([System.IO.Path]::Combine($(SolutionDir), ".nuget"))
- $([System.IO.Path]::Combine($(ProjectDir), "packages.config"))
- $([System.IO.Path]::Combine($(SolutionDir), "packages"))
-
-
-
-
- $(SolutionDir).nuget
- packages.config
- $(SolutionDir)packages
-
-
-
-
- $(NuGetToolsPath)\nuget.exe
- @(PackageSource)
-
- "$(NuGetExePath)"
- mono --runtime=v4.0.30319 $(NuGetExePath)
-
- $(TargetDir.Trim('\\'))
-
- -RequireConsent
-
- $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch) -o "$(PackagesDir)"
- $(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols
-
-
-
- RestorePackages;
- $(BuildDependsOn);
-
-
-
-
- $(BuildDependsOn);
- BuildPackage;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/hollywood/.gitignore b/hollywood/.gitignore
deleted file mode 100644
index 2f7b39f..0000000
--- a/hollywood/.gitignore
+++ /dev/null
@@ -1,40 +0,0 @@
-#ignore thumbnails created by windows
-Thumbs.db
-#Ignore files build by Visual Studio
-*.obj
-*.pdb
-*.user
-*.aps
-*.pch
-*.vspscc
-*_i.c
-*_p.c
-*.ncb
-*.suo
-*.tlb
-*.tlh
-*.bak
-*.cache
-*.ilk
-*.log
-[Bb]in
-[Dd]ebug
-[Cc]lientBin*/
-*.lib
-*.sbr
-obj/
-[Rr]elease*/
-_ReSharper*/
-[Tt]est[Rr]esult*
-deploy.config
-*.vsmdi
-*.pidb
-*.userprefs
-*.testrunconfig
-*.testsettings
-publish.xml
-TestResults
-$SSH_ENV
-src/.DS_Store
-src/.nuget/NuGet.Config
-*.nupkg
diff --git a/hollywood/.nuget/NuGet.Config b/hollywood/.nuget/NuGet.Config
deleted file mode 100644
index 67f8ea0..0000000
--- a/hollywood/.nuget/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/hollywood/.nuget/NuGet.targets b/hollywood/.nuget/NuGet.targets
deleted file mode 100644
index bda5bea..0000000
--- a/hollywood/.nuget/NuGet.targets
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-
- $(MSBuildProjectDirectory)\..\
-
-
- false
-
-
- false
-
-
- true
-
-
- false
-
-
-
-
-
-
-
-
-
- $([System.IO.Path]::Combine($(SolutionDir), ".nuget"))
- $([System.IO.Path]::Combine($(ProjectDir), "packages.config"))
- $([System.IO.Path]::Combine($(SolutionDir), "packages"))
-
-
-
-
- $(SolutionDir).nuget
- packages.config
- $(SolutionDir)packages
-
-
-
-
- $(NuGetToolsPath)\nuget.exe
- @(PackageSource)
-
- "$(NuGetExePath)"
- mono --runtime=v4.0.30319 $(NuGetExePath)
-
- $(TargetDir.Trim('\\'))
-
- -RequireConsent
-
- $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch) -o "$(PackagesDir)"
- $(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols
-
-
-
- RestorePackages;
- $(BuildDependsOn);
-
-
-
-
- $(BuildDependsOn);
- BuildPackage;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/linger/.gitignore b/linger/.gitignore
deleted file mode 100644
index 2f7b39f..0000000
--- a/linger/.gitignore
+++ /dev/null
@@ -1,40 +0,0 @@
-#ignore thumbnails created by windows
-Thumbs.db
-#Ignore files build by Visual Studio
-*.obj
-*.pdb
-*.user
-*.aps
-*.pch
-*.vspscc
-*_i.c
-*_p.c
-*.ncb
-*.suo
-*.tlb
-*.tlh
-*.bak
-*.cache
-*.ilk
-*.log
-[Bb]in
-[Dd]ebug
-[Cc]lientBin*/
-*.lib
-*.sbr
-obj/
-[Rr]elease*/
-_ReSharper*/
-[Tt]est[Rr]esult*
-deploy.config
-*.vsmdi
-*.pidb
-*.userprefs
-*.testrunconfig
-*.testsettings
-publish.xml
-TestResults
-$SSH_ENV
-src/.DS_Store
-src/.nuget/NuGet.Config
-*.nupkg
diff --git a/linger/.nuget/NuGet.Config b/linger/.nuget/NuGet.Config
deleted file mode 100644
index 5e74378..0000000
--- a/linger/.nuget/NuGet.Config
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/linger/.nuget/NuGet.targets b/linger/.nuget/NuGet.targets
deleted file mode 100644
index bda5bea..0000000
--- a/linger/.nuget/NuGet.targets
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-
- $(MSBuildProjectDirectory)\..\
-
-
- false
-
-
- false
-
-
- true
-
-
- false
-
-
-
-
-
-
-
-
-
- $([System.IO.Path]::Combine($(SolutionDir), ".nuget"))
- $([System.IO.Path]::Combine($(ProjectDir), "packages.config"))
- $([System.IO.Path]::Combine($(SolutionDir), "packages"))
-
-
-
-
- $(SolutionDir).nuget
- packages.config
- $(SolutionDir)packages
-
-
-
-
- $(NuGetToolsPath)\nuget.exe
- @(PackageSource)
-
- "$(NuGetExePath)"
- mono --runtime=v4.0.30319 $(NuGetExePath)
-
- $(TargetDir.Trim('\\'))
-
- -RequireConsent
-
- $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch) -o "$(PackagesDir)"
- $(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols
-
-
-
- RestorePackages;
- $(BuildDependsOn);
-
-
-
-
- $(BuildDependsOn);
- BuildPackage;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/logging/README.md b/logging/README.md
new file mode 100644
index 0000000..35ad9d0
--- /dev/null
+++ b/logging/README.md
@@ -0,0 +1,72 @@
+bulky
+=====
+
+```powershell
+PM> Install-Package bulky
+```
+
+Bulky is an idiomatic bulk insert interface for databases. It gives you the ability to use the
+native bulk copy mechanism of your database simply, using plain C# objects and an extension method on `IDbConnection`, much like how [Dapper](https://github.com/SamSaffron/dapper-dot-net) functions.
+
+### Why would I use this?
+- You want simple, high speed bulk inserts of large collections of objects
+- You need support for multiple databases (SQL Server, MySQL, and SQLite are supported today)
+- It works great with [tophat](http://github.com/danielcrenna/tophat)
+
+### Usage
+
+The hands-free usage is simple:
+
+```csharp
+using bulky;
+
+// Get your objects from somewhere
+IEnumerable users = ReallyLargeCollectionOfUsers();
+
+// Get your connection from somewhere else
+IDbConnection connection = GetMyDatabaseConnectionFromSomewhere();
+
+// Profit!
+connection.BulkCopy(users);
+```
+
+Behind the scenes, Bulky is using the provided bulk copy implementation.
+This is how you can change the underlying strategy:
+
+```csharp
+using bulky;
+
+// Change to MySQL multi-value inserts
+Bulky.BulkCopier = new MySqlBulkCopy();
+
+// Change to SQLite's transactional flush
+Bulky.BulkCopier = new SqliteBulkCopy();
+
+// Change to SQL Server's SqlBulkCopy (the default)
+Bulky.BulkCopier = new SqlServerBulkCopy();
+```
+
+### How does bulky map objects to database columns?
+
+Under the hood, bulky relies on a [TableDescriptor](http://github.com/danielcrenna/TableDescriptor) definition
+of a class in order to map it to database columns. By default, it uses TableDescriptor's built-in `SimpleDescriptor`
+to perform that mapping, but you can always pass in any implementation of `Descriptor`. The default conventions
+are simple enough, but if you have more advanced mapping needs you'll want to look at that project directly.
+For example, this `User` object will map to the database below:
+
+```csharp
+public class User
+{
+ public int Id { get; set; }
+ public string Email { get; set; }
+}
+```
+
+```sql
+CREATE TABLE [dbo].[User]
+(
+ [Id] [int] IDENTITY(1,1) NOT NULL,
+ [Email] [varchar](255) NOT NULL,
+ CONSTRAINT [PK_User] PRIMARY KEY CLUSTERED ([Id] ASC)
+)
+```
\ No newline at end of file
diff --git a/logging/logging.0.9.0.nupkg b/logging/logging.0.9.0.nupkg
new file mode 100644
index 0000000..05fe19e
Binary files /dev/null and b/logging/logging.0.9.0.nupkg differ
diff --git a/logging/logging.nuspec b/logging/logging.nuspec
new file mode 100644
index 0000000..860c238
--- /dev/null
+++ b/logging/logging.nuspec
@@ -0,0 +1,20 @@
+
+
+
+ logging
+ 0.9.0
+ Daniel Crenna
+ Daniel Crenna
+ A simple logging abstraction.
+ A simple logging abstraction. You don't have the option of using immediate-mode logging, so you never accidentally kill performance.
+ en-US
+ https://github.com/danielcrenna/webstack/tree/master/logging
+ https://github.com/danielcrenna/webstack/blob/master/LICENSE.md
+ http://apitize.com.s3.amazonaws.com/logo_generic.png
+ logging
+
+
+
+
+
+
\ No newline at end of file
diff --git a/logging/pack-nuget.bat b/logging/pack-nuget.bat
new file mode 100644
index 0000000..c4d3a67
--- /dev/null
+++ b/logging/pack-nuget.bat
@@ -0,0 +1,3 @@
+copy "..\LICENSE.md" bin
+copy README.md bin
+"..\.nuget\NuGet.exe" pack logging.nuspec -BasePath bin
\ No newline at end of file
diff --git a/logging/push-nuget.bat b/logging/push-nuget.bat
new file mode 100644
index 0000000..febef0b
--- /dev/null
+++ b/logging/push-nuget.bat
@@ -0,0 +1 @@
+"..\.nuget\NuGet.exe" push logging.0.9.0.nupkg
\ No newline at end of file
diff --git a/logging/src/logging.nlog/NLogFactory.cs b/logging/src/logging.nlog/NLogFactory.cs
new file mode 100644
index 0000000..0540e98
--- /dev/null
+++ b/logging/src/logging.nlog/NLogFactory.cs
@@ -0,0 +1,10 @@
+namespace logging.nlog
+{
+ public class NLogFactory : ILogFactory
+ {
+ public ILog GetLogger(string name)
+ {
+ return new NLogLogger(NLog.LogManager.GetLogger(name));
+ }
+ }
+}
\ No newline at end of file
diff --git a/logging/src/logging.nlog/NLogLogger.cs b/logging/src/logging.nlog/NLogLogger.cs
new file mode 100644
index 0000000..002aa83
--- /dev/null
+++ b/logging/src/logging.nlog/NLogLogger.cs
@@ -0,0 +1,111 @@
+using System;
+using NLog;
+
+namespace logging.nlog
+{
+ public class NLogLogger : ILog
+ {
+ private readonly Logger _inner;
+
+ public NLogLogger(Logger inner)
+ {
+ _inner = inner;
+ }
+
+ public void Trace(Func message)
+ {
+ if (_inner.IsTraceEnabled)
+ {
+ _inner.Trace(message());
+ }
+ }
+
+ public void Trace(Func message, Exception exception)
+ {
+ if (_inner.IsTraceEnabled)
+ {
+ _inner.TraceException(message(), exception);
+ }
+ }
+
+ public void Debug(Func message)
+ {
+ if (_inner.IsDebugEnabled)
+ {
+ _inner.Debug(message());
+ }
+ }
+
+ public void Debug(Func message, Exception exception)
+ {
+ if (_inner.IsDebugEnabled)
+ {
+ _inner.DebugException(message(), exception);
+ }
+ }
+
+ public void Info(Func message)
+ {
+ if (_inner.IsInfoEnabled)
+ {
+ _inner.Info(message());
+ }
+ }
+
+ public void Info(Func message, Exception exception)
+ {
+ if (_inner.IsInfoEnabled)
+ {
+ _inner.InfoException(message(), exception);
+ }
+ }
+
+ public void Warn(Func message)
+ {
+ if (_inner.IsWarnEnabled)
+ {
+ _inner.Warn(message());
+ }
+ }
+
+ public void Warn(Func message, Exception exception)
+ {
+ if (_inner.IsWarnEnabled)
+ {
+ _inner.WarnException(message(), exception);
+ }
+ }
+
+ public void Error(Func message)
+ {
+ if (_inner.IsErrorEnabled)
+ {
+ _inner.Error(message());
+ }
+ }
+
+ public void Error(Func message, Exception exception)
+ {
+ if (_inner.IsErrorEnabled)
+ {
+ _inner.ErrorException(message(), exception);
+ }
+ }
+
+ public void Fatal(Func message)
+ {
+ if (_inner.IsFatalEnabled)
+ {
+ _inner.Fatal(message());
+ }
+ }
+
+ public void Fatal(Func message, Exception exception)
+ {
+ if (_inner.IsFatalEnabled)
+ {
+ _inner.FatalException(message(), exception);
+ }
+ }
+ }
+}
diff --git a/logging/src/logging.nlog/Properties/AssemblyInfo.cs b/logging/src/logging.nlog/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..f618f06
--- /dev/null
+++ b/logging/src/logging.nlog/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("logging.nlog")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("logging.nlog")]
+[assembly: AssemblyCopyright("Copyright © 2013")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("7af84968-2df2-4308-bbde-87f5a09fa6a8")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/logging/src/logging.nlog/logging.nlog.csproj b/logging/src/logging.nlog/logging.nlog.csproj
new file mode 100644
index 0000000..b1f306a
--- /dev/null
+++ b/logging/src/logging.nlog/logging.nlog.csproj
@@ -0,0 +1,66 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {32B0DDA9-D96F-4A42-9614-99430E98CC0A}
+ Library
+ Properties
+ logging.nlog
+ logging.nlog
+ v4.0
+ 512
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ ..\..\bin\lib\net40\
+ TRACE
+ prompt
+ 4
+
+
+
+ ..\logging\packages\NLog.2.0.1.2\lib\net40\NLog.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {0d1e17ef-4925-4a7a-acea-7eb2e129c992}
+ logging
+
+
+
+
+
\ No newline at end of file
diff --git a/logging/src/logging.nlog/packages.config b/logging/src/logging.nlog/packages.config
new file mode 100644
index 0000000..f2a88a2
--- /dev/null
+++ b/logging/src/logging.nlog/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/logging/src/logging/ILog.cs b/logging/src/logging/ILog.cs
new file mode 100644
index 0000000..b6f1623
--- /dev/null
+++ b/logging/src/logging/ILog.cs
@@ -0,0 +1,20 @@
+using System;
+
+namespace logging
+{
+ public interface ILog
+ {
+ void Trace(Func message);
+ void Trace(Func message, Exception exception);
+ void Debug(Func message);
+ void Debug(Func message, Exception exception);
+ void Info(Func message);
+ void Info(Func message, Exception exception);
+ void Warn(Func message);
+ void Warn(Func message, Exception exception);
+ void Error(Func message);
+ void Error(Func message, Exception exception);
+ void Fatal(Func message);
+ void Fatal(Func message, Exception exception);
+ }
+}
diff --git a/logging/src/logging/ILogFactory.cs b/logging/src/logging/ILogFactory.cs
new file mode 100644
index 0000000..2ca00a9
--- /dev/null
+++ b/logging/src/logging/ILogFactory.cs
@@ -0,0 +1,7 @@
+namespace logging
+{
+ public interface ILogFactory
+ {
+ ILog GetLogger(string name);
+ }
+}
\ No newline at end of file
diff --git a/logging/src/logging/LogManager.cs b/logging/src/logging/LogManager.cs
new file mode 100644
index 0000000..05df7d7
--- /dev/null
+++ b/logging/src/logging/LogManager.cs
@@ -0,0 +1,24 @@
+using container;
+
+namespace logging
+{
+ public static class LogManager
+ {
+ private static readonly Container Container;
+ static LogManager()
+ {
+ Container = new Container();
+ }
+
+ public static void Install() where T : ILogFactory, new()
+ {
+ Container.Remove();
+ Container.Register(r => new T());
+ }
+
+ public static ILog GetLogger(string name)
+ {
+ return Container.Resolve().GetLogger(name);
+ }
+ }
+}
\ No newline at end of file
diff --git a/logging/src/logging/Properties/AssemblyInfo.cs b/logging/src/logging/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..e839b87
--- /dev/null
+++ b/logging/src/logging/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("logging")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("logging")]
+[assembly: AssemblyCopyright("Copyright © 2013")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("1ff90b22-bab5-4981-ab19-b5a2bc1c3424")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/logging/src/logging/logging.csproj b/logging/src/logging/logging.csproj
new file mode 100644
index 0000000..dbc94af
--- /dev/null
+++ b/logging/src/logging/logging.csproj
@@ -0,0 +1,61 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {0D1E17EF-4925-4A7A-ACEA-7EB2E129C992}
+ Library
+ Properties
+ logging
+ logging
+ v4.0
+ 512
+
+
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ pdbonly
+ true
+ ..\..\bin\lib\net40\
+ TRACE
+ prompt
+ 4
+
+
+
+ packages\container.1.1.1\lib\net40\container.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/logging/src/logging/logging.sln b/logging/src/logging/logging.sln
new file mode 100644
index 0000000..30afac5
--- /dev/null
+++ b/logging/src/logging/logging.sln
@@ -0,0 +1,34 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "logging", "logging.csproj", "{0D1E17EF-4925-4A7A-ACEA-7EB2E129C992}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "logging.nlog", "..\logging.nlog\logging.nlog.csproj", "{32B0DDA9-D96F-4A42-9614-99430E98CC0A}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{2227F94E-988F-4F45-807E-7E3B930EC128}"
+ ProjectSection(SolutionItems) = preProject
+ ..\..\logging.nuspec = ..\..\logging.nuspec
+ ..\..\pack-nuget.bat = ..\..\pack-nuget.bat
+ ..\..\push-nuget.bat = ..\..\push-nuget.bat
+ ..\..\README.md = ..\..\README.md
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {0D1E17EF-4925-4A7A-ACEA-7EB2E129C992}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {0D1E17EF-4925-4A7A-ACEA-7EB2E129C992}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {0D1E17EF-4925-4A7A-ACEA-7EB2E129C992}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {0D1E17EF-4925-4A7A-ACEA-7EB2E129C992}.Release|Any CPU.Build.0 = Release|Any CPU
+ {32B0DDA9-D96F-4A42-9614-99430E98CC0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {32B0DDA9-D96F-4A42-9614-99430E98CC0A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {32B0DDA9-D96F-4A42-9614-99430E98CC0A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {32B0DDA9-D96F-4A42-9614-99430E98CC0A}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/logging/src/logging/logging.sln.DotSettings b/logging/src/logging/logging.sln.DotSettings
new file mode 100644
index 0000000..11f2c26
--- /dev/null
+++ b/logging/src/logging/logging.sln.DotSettings
@@ -0,0 +1,3 @@
+
+ <data><IncludeFilters /><ExcludeFilters /></data>
+ <data />
\ No newline at end of file
diff --git a/logging/src/logging/packages.config b/logging/src/logging/packages.config
new file mode 100644
index 0000000..4d0d94b
--- /dev/null
+++ b/logging/src/logging/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/minirack-routes/.gitignore b/minirack-routes/.gitignore
deleted file mode 100644
index 2f7b39f..0000000
--- a/minirack-routes/.gitignore
+++ /dev/null
@@ -1,40 +0,0 @@
-#ignore thumbnails created by windows
-Thumbs.db
-#Ignore files build by Visual Studio
-*.obj
-*.pdb
-*.user
-*.aps
-*.pch
-*.vspscc
-*_i.c
-*_p.c
-*.ncb
-*.suo
-*.tlb
-*.tlh
-*.bak
-*.cache
-*.ilk
-*.log
-[Bb]in
-[Dd]ebug
-[Cc]lientBin*/
-*.lib
-*.sbr
-obj/
-[Rr]elease*/
-_ReSharper*/
-[Tt]est[Rr]esult*
-deploy.config
-*.vsmdi
-*.pidb
-*.userprefs
-*.testrunconfig
-*.testsettings
-publish.xml
-TestResults
-$SSH_ENV
-src/.DS_Store
-src/.nuget/NuGet.Config
-*.nupkg
diff --git a/minirack-routes/.nuget/NuGet.Config b/minirack-routes/.nuget/NuGet.Config
deleted file mode 100644
index 67f8ea0..0000000
--- a/minirack-routes/.nuget/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/minirack-routes/.nuget/NuGet.targets b/minirack-routes/.nuget/NuGet.targets
deleted file mode 100644
index bda5bea..0000000
--- a/minirack-routes/.nuget/NuGet.targets
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-
- $(MSBuildProjectDirectory)\..\
-
-
- false
-
-
- false
-
-
- true
-
-
- false
-
-
-
-
-
-
-
-
-
- $([System.IO.Path]::Combine($(SolutionDir), ".nuget"))
- $([System.IO.Path]::Combine($(ProjectDir), "packages.config"))
- $([System.IO.Path]::Combine($(SolutionDir), "packages"))
-
-
-
-
- $(SolutionDir).nuget
- packages.config
- $(SolutionDir)packages
-
-
-
-
- $(NuGetToolsPath)\nuget.exe
- @(PackageSource)
-
- "$(NuGetExePath)"
- mono --runtime=v4.0.30319 $(NuGetExePath)
-
- $(TargetDir.Trim('\\'))
-
- -RequireConsent
-
- $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch) -o "$(PackagesDir)"
- $(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols
-
-
-
- RestorePackages;
- $(BuildDependsOn);
-
-
-
-
- $(BuildDependsOn);
- BuildPackage;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/minirack/.gitignore b/minirack/.gitignore
deleted file mode 100644
index 2f7b39f..0000000
--- a/minirack/.gitignore
+++ /dev/null
@@ -1,40 +0,0 @@
-#ignore thumbnails created by windows
-Thumbs.db
-#Ignore files build by Visual Studio
-*.obj
-*.pdb
-*.user
-*.aps
-*.pch
-*.vspscc
-*_i.c
-*_p.c
-*.ncb
-*.suo
-*.tlb
-*.tlh
-*.bak
-*.cache
-*.ilk
-*.log
-[Bb]in
-[Dd]ebug
-[Cc]lientBin*/
-*.lib
-*.sbr
-obj/
-[Rr]elease*/
-_ReSharper*/
-[Tt]est[Rr]esult*
-deploy.config
-*.vsmdi
-*.pidb
-*.userprefs
-*.testrunconfig
-*.testsettings
-publish.xml
-TestResults
-$SSH_ENV
-src/.DS_Store
-src/.nuget/NuGet.Config
-*.nupkg
diff --git a/minirack/.nuget/NuGet.Config b/minirack/.nuget/NuGet.Config
deleted file mode 100644
index 67f8ea0..0000000
--- a/minirack/.nuget/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/minirack/.nuget/NuGet.targets b/minirack/.nuget/NuGet.targets
deleted file mode 100644
index bda5bea..0000000
--- a/minirack/.nuget/NuGet.targets
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-
- $(MSBuildProjectDirectory)\..\
-
-
- false
-
-
- false
-
-
- true
-
-
- false
-
-
-
-
-
-
-
-
-
- $([System.IO.Path]::Combine($(SolutionDir), ".nuget"))
- $([System.IO.Path]::Combine($(ProjectDir), "packages.config"))
- $([System.IO.Path]::Combine($(SolutionDir), "packages"))
-
-
-
-
- $(SolutionDir).nuget
- packages.config
- $(SolutionDir)packages
-
-
-
-
- $(NuGetToolsPath)\nuget.exe
- @(PackageSource)
-
- "$(NuGetExePath)"
- mono --runtime=v4.0.30319 $(NuGetExePath)
-
- $(TargetDir.Trim('\\'))
-
- -RequireConsent
-
- $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch) -o "$(PackagesDir)"
- $(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols
-
-
-
- RestorePackages;
- $(BuildDependsOn);
-
-
-
-
- $(BuildDependsOn);
- BuildPackage;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/minirack/MiniRack.1.0.0.nupkg b/minirack/MiniRack.1.0.0.nupkg
new file mode 100644
index 0000000..7bb1e43
Binary files /dev/null and b/minirack/MiniRack.1.0.0.nupkg differ
diff --git a/minirack/minirack.nuspec b/minirack/minirack.nuspec
index 6f751d2..9040d10 100644
--- a/minirack/minirack.nuspec
+++ b/minirack/minirack.nuspec
@@ -1,19 +1,19 @@
-
- MiniRack
- 0.0.2
- Daniel Crenna
- Daniel Crenna
- A tiny aggregator for self-registering HttpModules.
- A tiny aggregator for self-registering HttpModules.
- en-US
- http://github.com/danielcrenna/minirack
- https://github.com/danielcrenna/minirack/blob/master/LICENSE.md
- http://apitize.com.s3.amazonaws.com/logo_minirack.png
- httpmodule registration dynamic preapplicationstartmethod webactivator
+
+ MiniRack
+ 1.0.0
+ Daniel Crenna
+ Daniel Crenna
+ A tiny aggregator for self-registering HttpModules.
+ A tiny aggregator for self-registering HttpModules.
+ en-US
+ https://github.com/danielcrenna/webstack/tree/master/minirack
+ https://github.com/danielcrenna/webstack/blob/master/LICENSE.md
+ http://apitize.com.s3.amazonaws.com/logo_minirack.png
+ httpmodule registration dynamic preapplicationstartmethod webactivator
-
+
\ No newline at end of file
diff --git a/minirack/pack-nuget.bat b/minirack/pack-nuget.bat
index 443e8ac..3dd6995 100644
--- a/minirack/pack-nuget.bat
+++ b/minirack/pack-nuget.bat
@@ -1,3 +1,3 @@
-copy LICENSE.md bin
+copy "..\LICENSE.md" bin
copy README.md bin
-".nuget\NuGet.exe" pack MiniRack.nuspec -BasePath bin
\ No newline at end of file
+"..\.nuget\NuGet.exe" pack MiniRack.nuspec -BasePath bin
\ No newline at end of file
diff --git a/minirack/push-nuget.bat b/minirack/push-nuget.bat
index 9612f3e..5af556b 100644
--- a/minirack/push-nuget.bat
+++ b/minirack/push-nuget.bat
@@ -1 +1 @@
-".nuget\NuGet.exe" push MiniRack.0.0.2.nupkg
\ No newline at end of file
+"..\.nuget\NuGet.exe" push MiniRack.1.0.0.nupkg
\ No newline at end of file
diff --git a/minirack/src/minirack.sln b/minirack/src/minirack.sln
index db813e8..475ffe1 100644
--- a/minirack/src/minirack.sln
+++ b/minirack/src/minirack.sln
@@ -5,7 +5,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "minirack", "minirack\minira
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{6A5F891A-1016-454D-99A7-44B08A9AECDD}"
ProjectSection(SolutionItems) = preProject
- ..\LICENSE.md = ..\LICENSE.md
..\minirack.nuspec = ..\minirack.nuspec
..\pack-nuget.bat = ..\pack-nuget.bat
..\push-nuget.bat = ..\push-nuget.bat
diff --git a/minirack/src/minirack.sln.DotSettings b/minirack/src/minirack.sln.DotSettings
new file mode 100644
index 0000000..11f2c26
--- /dev/null
+++ b/minirack/src/minirack.sln.DotSettings
@@ -0,0 +1,3 @@
+
+ <data><IncludeFilters /><ExcludeFilters /></data>
+ <data />
\ No newline at end of file
diff --git a/minirack/src/minirack/Extensions/ObjectExtensions.cs b/minirack/src/minirack/Extensions/ObjectExtensions.cs
index 08da7a4..1e0f440 100644
--- a/minirack/src/minirack/Extensions/ObjectExtensions.cs
+++ b/minirack/src/minirack/Extensions/ObjectExtensions.cs
@@ -46,5 +46,10 @@ public static bool HasAttribute(this Type type) where T : Attribute
{
return type.GetCustomAttributes(typeof(T), true).Length > 0;
}
+
+ public static T GetAttribute(this Type type) where T : Attribute
+ {
+ return type.GetCustomAttributes(typeof (T), true)[0] as T;
+ }
}
}
\ No newline at end of file
diff --git a/minirack/src/minirack/PipelineAttribute.cs b/minirack/src/minirack/PipelineAttribute.cs
index 2df1908..b967aac 100644
--- a/minirack/src/minirack/PipelineAttribute.cs
+++ b/minirack/src/minirack/PipelineAttribute.cs
@@ -9,6 +9,6 @@ namespace minirack
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true)]
public class PipelineAttribute : Attribute
{
-
+ public int Order { get; set; }
}
}
\ No newline at end of file
diff --git a/minirack/src/minirack/PipelineInstaller.cs b/minirack/src/minirack/PipelineInstaller.cs
index fe1dfa6..95d2f7f 100644
--- a/minirack/src/minirack/PipelineInstaller.cs
+++ b/minirack/src/minirack/PipelineInstaller.cs
@@ -33,9 +33,10 @@ private static void RegisterPipelineModules()
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
var types = assemblies.SelectMany(assembly => assembly.GetTypes());
var modules = types.Where(t => t.HasAttribute() && t.Implements());
- foreach (var module in modules)
+ var moduleOrder = modules.Select(m => new {m, i = m.GetAttribute().Order}).OrderBy(o => o.i);
+ foreach (var order in moduleOrder)
{
- DynamicModuleUtility.RegisterModule(module);
+ DynamicModuleUtility.RegisterModule(order.m);
}
}
}
diff --git a/money/.gitignore b/money/.gitignore
deleted file mode 100644
index 2f7b39f..0000000
--- a/money/.gitignore
+++ /dev/null
@@ -1,40 +0,0 @@
-#ignore thumbnails created by windows
-Thumbs.db
-#Ignore files build by Visual Studio
-*.obj
-*.pdb
-*.user
-*.aps
-*.pch
-*.vspscc
-*_i.c
-*_p.c
-*.ncb
-*.suo
-*.tlb
-*.tlh
-*.bak
-*.cache
-*.ilk
-*.log
-[Bb]in
-[Dd]ebug
-[Cc]lientBin*/
-*.lib
-*.sbr
-obj/
-[Rr]elease*/
-_ReSharper*/
-[Tt]est[Rr]esult*
-deploy.config
-*.vsmdi
-*.pidb
-*.userprefs
-*.testrunconfig
-*.testsettings
-publish.xml
-TestResults
-$SSH_ENV
-src/.DS_Store
-src/.nuget/NuGet.Config
-*.nupkg
diff --git a/money/.nuget/NuGet.Config b/money/.nuget/NuGet.Config
deleted file mode 100644
index 67f8ea0..0000000
--- a/money/.nuget/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/money/.nuget/NuGet.targets b/money/.nuget/NuGet.targets
deleted file mode 100644
index bda5bea..0000000
--- a/money/.nuget/NuGet.targets
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-
- $(MSBuildProjectDirectory)\..\
-
-
- false
-
-
- false
-
-
- true
-
-
- false
-
-
-
-
-
-
-
-
-
- $([System.IO.Path]::Combine($(SolutionDir), ".nuget"))
- $([System.IO.Path]::Combine($(ProjectDir), "packages.config"))
- $([System.IO.Path]::Combine($(SolutionDir), "packages"))
-
-
-
-
- $(SolutionDir).nuget
- packages.config
- $(SolutionDir)packages
-
-
-
-
- $(NuGetToolsPath)\nuget.exe
- @(PackageSource)
-
- "$(NuGetExePath)"
- mono --runtime=v4.0.30319 $(NuGetExePath)
-
- $(TargetDir.Trim('\\'))
-
- -RequireConsent
-
- $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch) -o "$(PackagesDir)"
- $(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols
-
-
-
- RestorePackages;
- $(BuildDependsOn);
-
-
-
-
- $(BuildDependsOn);
- BuildPackage;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/paging/.gitignore b/paging/.gitignore
deleted file mode 100644
index 2f7b39f..0000000
--- a/paging/.gitignore
+++ /dev/null
@@ -1,40 +0,0 @@
-#ignore thumbnails created by windows
-Thumbs.db
-#Ignore files build by Visual Studio
-*.obj
-*.pdb
-*.user
-*.aps
-*.pch
-*.vspscc
-*_i.c
-*_p.c
-*.ncb
-*.suo
-*.tlb
-*.tlh
-*.bak
-*.cache
-*.ilk
-*.log
-[Bb]in
-[Dd]ebug
-[Cc]lientBin*/
-*.lib
-*.sbr
-obj/
-[Rr]elease*/
-_ReSharper*/
-[Tt]est[Rr]esult*
-deploy.config
-*.vsmdi
-*.pidb
-*.userprefs
-*.testrunconfig
-*.testsettings
-publish.xml
-TestResults
-$SSH_ENV
-src/.DS_Store
-src/.nuget/NuGet.Config
-*.nupkg
diff --git a/paging/.nuget/NuGet.Config b/paging/.nuget/NuGet.Config
deleted file mode 100644
index 67f8ea0..0000000
--- a/paging/.nuget/NuGet.Config
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/paging/.nuget/NuGet.targets b/paging/.nuget/NuGet.targets
deleted file mode 100644
index bda5bea..0000000
--- a/paging/.nuget/NuGet.targets
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-
- $(MSBuildProjectDirectory)\..\
-
-
- false
-
-
- false
-
-
- true
-
-
- false
-
-
-
-
-
-
-
-
-
- $([System.IO.Path]::Combine($(SolutionDir), ".nuget"))
- $([System.IO.Path]::Combine($(ProjectDir), "packages.config"))
- $([System.IO.Path]::Combine($(SolutionDir), "packages"))
-
-
-
-
- $(SolutionDir).nuget
- packages.config
- $(SolutionDir)packages
-
-
-
-
- $(NuGetToolsPath)\nuget.exe
- @(PackageSource)
-
- "$(NuGetExePath)"
- mono --runtime=v4.0.30319 $(NuGetExePath)
-
- $(TargetDir.Trim('\\'))
-
- -RequireConsent
-
- $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch) -o "$(PackagesDir)"
- $(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols
-
-
-
- RestorePackages;
- $(BuildDependsOn);
-
-
-
-
- $(BuildDependsOn);
- BuildPackage;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/table-descriptor/.gitignore b/table-descriptor/.gitignore
deleted file mode 100644
index 2f7b39f..0000000
--- a/table-descriptor/.gitignore
+++ /dev/null
@@ -1,40 +0,0 @@
-#ignore thumbnails created by windows
-Thumbs.db
-#Ignore files build by Visual Studio
-*.obj
-*.pdb
-*.user
-*.aps
-*.pch
-*.vspscc
-*_i.c
-*_p.c
-*.ncb
-*.suo
-*.tlb
-*.tlh
-*.bak
-*.cache
-*.ilk
-*.log
-[Bb]in
-[Dd]ebug
-[Cc]lientBin*/
-*.lib
-*.sbr
-obj/
-[Rr]elease*/
-_ReSharper*/
-[Tt]est[Rr]esult*
-deploy.config
-*.vsmdi
-*.pidb
-*.userprefs
-*.testrunconfig
-*.testsettings
-publish.xml
-TestResults
-$SSH_ENV
-src/.DS_Store
-src/.nuget/NuGet.Config
-*.nupkg
diff --git a/table-descriptor/.nuget/NuGet.Config b/table-descriptor/.nuget/NuGet.Config
deleted file mode 100644
index 5e74378..0000000
--- a/table-descriptor/.nuget/NuGet.Config
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/table-descriptor/.nuget/NuGet.targets b/table-descriptor/.nuget/NuGet.targets
deleted file mode 100644
index bda5bea..0000000
--- a/table-descriptor/.nuget/NuGet.targets
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-
- $(MSBuildProjectDirectory)\..\
-
-
- false
-
-
- false
-
-
- true
-
-
- false
-
-
-
-
-
-
-
-
-
- $([System.IO.Path]::Combine($(SolutionDir), ".nuget"))
- $([System.IO.Path]::Combine($(ProjectDir), "packages.config"))
- $([System.IO.Path]::Combine($(SolutionDir), "packages"))
-
-
-
-
- $(SolutionDir).nuget
- packages.config
- $(SolutionDir)packages
-
-
-
-
- $(NuGetToolsPath)\nuget.exe
- @(PackageSource)
-
- "$(NuGetExePath)"
- mono --runtime=v4.0.30319 $(NuGetExePath)
-
- $(TargetDir.Trim('\\'))
-
- -RequireConsent
-
- $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch) -o "$(PackagesDir)"
- $(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols
-
-
-
- RestorePackages;
- $(BuildDependsOn);
-
-
-
-
- $(BuildDependsOn);
- BuildPackage;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/tophat/.gitignore b/tophat/.gitignore
deleted file mode 100644
index 2f7b39f..0000000
--- a/tophat/.gitignore
+++ /dev/null
@@ -1,40 +0,0 @@
-#ignore thumbnails created by windows
-Thumbs.db
-#Ignore files build by Visual Studio
-*.obj
-*.pdb
-*.user
-*.aps
-*.pch
-*.vspscc
-*_i.c
-*_p.c
-*.ncb
-*.suo
-*.tlb
-*.tlh
-*.bak
-*.cache
-*.ilk
-*.log
-[Bb]in
-[Dd]ebug
-[Cc]lientBin*/
-*.lib
-*.sbr
-obj/
-[Rr]elease*/
-_ReSharper*/
-[Tt]est[Rr]esult*
-deploy.config
-*.vsmdi
-*.pidb
-*.userprefs
-*.testrunconfig
-*.testsettings
-publish.xml
-TestResults
-$SSH_ENV
-src/.DS_Store
-src/.nuget/NuGet.Config
-*.nupkg
diff --git a/tophat/.nuget/NuGet.Config b/tophat/.nuget/NuGet.Config
deleted file mode 100644
index 5c9f5da..0000000
--- a/tophat/.nuget/NuGet.Config
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/tophat/.nuget/NuGet.targets b/tophat/.nuget/NuGet.targets
deleted file mode 100644
index bda5bea..0000000
--- a/tophat/.nuget/NuGet.targets
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-
- $(MSBuildProjectDirectory)\..\
-
-
- false
-
-
- false
-
-
- true
-
-
- false
-
-
-
-
-
-
-
-
-
- $([System.IO.Path]::Combine($(SolutionDir), ".nuget"))
- $([System.IO.Path]::Combine($(ProjectDir), "packages.config"))
- $([System.IO.Path]::Combine($(SolutionDir), "packages"))
-
-
-
-
- $(SolutionDir).nuget
- packages.config
- $(SolutionDir)packages
-
-
-
-
- $(NuGetToolsPath)\nuget.exe
- @(PackageSource)
-
- "$(NuGetExePath)"
- mono --runtime=v4.0.30319 $(NuGetExePath)
-
- $(TargetDir.Trim('\\'))
-
- -RequireConsent
-
- $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch) -o "$(PackagesDir)"
- $(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols
-
-
-
- RestorePackages;
- $(BuildDependsOn);
-
-
-
-
- $(BuildDependsOn);
- BuildPackage;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/tuxedo/.gitignore b/tuxedo/.gitignore
deleted file mode 100644
index 2f7b39f..0000000
--- a/tuxedo/.gitignore
+++ /dev/null
@@ -1,40 +0,0 @@
-#ignore thumbnails created by windows
-Thumbs.db
-#Ignore files build by Visual Studio
-*.obj
-*.pdb
-*.user
-*.aps
-*.pch
-*.vspscc
-*_i.c
-*_p.c
-*.ncb
-*.suo
-*.tlb
-*.tlh
-*.bak
-*.cache
-*.ilk
-*.log
-[Bb]in
-[Dd]ebug
-[Cc]lientBin*/
-*.lib
-*.sbr
-obj/
-[Rr]elease*/
-_ReSharper*/
-[Tt]est[Rr]esult*
-deploy.config
-*.vsmdi
-*.pidb
-*.userprefs
-*.testrunconfig
-*.testsettings
-publish.xml
-TestResults
-$SSH_ENV
-src/.DS_Store
-src/.nuget/NuGet.Config
-*.nupkg
diff --git a/tuxedo/.nuget/NuGet.Config b/tuxedo/.nuget/NuGet.Config
deleted file mode 100644
index 5e74378..0000000
--- a/tuxedo/.nuget/NuGet.Config
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/tuxedo/.nuget/NuGet.targets b/tuxedo/.nuget/NuGet.targets
deleted file mode 100644
index bda5bea..0000000
--- a/tuxedo/.nuget/NuGet.targets
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-
- $(MSBuildProjectDirectory)\..\
-
-
- false
-
-
- false
-
-
- true
-
-
- false
-
-
-
-
-
-
-
-
-
- $([System.IO.Path]::Combine($(SolutionDir), ".nuget"))
- $([System.IO.Path]::Combine($(ProjectDir), "packages.config"))
- $([System.IO.Path]::Combine($(SolutionDir), "packages"))
-
-
-
-
- $(SolutionDir).nuget
- packages.config
- $(SolutionDir)packages
-
-
-
-
- $(NuGetToolsPath)\nuget.exe
- @(PackageSource)
-
- "$(NuGetExePath)"
- mono --runtime=v4.0.30319 $(NuGetExePath)
-
- $(TargetDir.Trim('\\'))
-
- -RequireConsent
-
- $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(RequireConsentSwitch) -o "$(PackagesDir)"
- $(NuGetCommand) pack "$(ProjectPath)" -p Configuration=$(Configuration) -o "$(PackageOutputDir)" -symbols
-
-
-
- RestorePackages;
- $(BuildDependsOn);
-
-
-
-
- $(BuildDependsOn);
- BuildPackage;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file