<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>Kona.Web/Model/Supply/Category.hbm.xml</filename>
    </added>
    <added>
      <filename>Kona.Web/Model/Supply/Descriptor.hbm.xml</filename>
    </added>
    <added>
      <filename>Kona.Web/Model/Supply/Product.hbm.xml</filename>
    </added>
    <added>
      <filename>Kona.Web/nhibernate-configuration.xsd</filename>
    </added>
    <added>
      <filename>Kona.Web/nhibernate-mapping.xsd</filename>
    </added>
    <added>
      <filename>Kona.Web/nhibernate.config</filename>
    </added>
    <added>
      <filename>lib/Antlr3.Runtime.dll</filename>
    </added>
    <added>
      <filename>lib/Castle.Core.dll</filename>
    </added>
    <added>
      <filename>lib/Castle.DynamicProxy.license.txt</filename>
    </added>
    <added>
      <filename>lib/Castle.DynamicProxy2.dll</filename>
    </added>
    <added>
      <filename>lib/ELMAH-LICENSE.txt</filename>
    </added>
    <added>
      <filename>lib/HibernatingRhinos.NHibernate.Profiler.Appender.dll</filename>
    </added>
    <added>
      <filename>lib/Iesi.Collections.dll</filename>
    </added>
    <added>
      <filename>lib/NHibernate.ByteCode.Castle.dll</filename>
    </added>
    <added>
      <filename>lib/NHibernate.Linq.dll</filename>
    </added>
    <added>
      <filename>lib/NHibernate.dll</filename>
    </added>
    <added>
      <filename>lib/log4net.dll</filename>
    </added>
    <added>
      <filename>lib/log4net.license.txt</filename>
    </added>
    <added>
      <filename>lib/nhibernate-configuration.xsd</filename>
    </added>
    <added>
      <filename>lib/nhibernate-mapping.xsd</filename>
    </added>
    <added>
      <filename>lib/releasenotes.txt</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff></diff>
      <filename>Kona.Web/App_Data/Kona.mdf</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>Kona.Web/App_Data/Kona_log.ldf</filename>
    </modified>
    <modified>
      <diff>@@ -5,6 +5,7 @@ using System.Web;
 using System.Web.Mvc;
 using Kona.App.Services;
 using Kona.Model;
+using NHibernate;
 
 namespace Kona.Controllers
 {
@@ -12,13 +13,19 @@ namespace Kona.Controllers
     public class HomeController : Controller
     {
         StoreService _service;
-        
-        public HomeController(IStoreRepository repository) {
+        ISession _session;
+
+        public HomeController(ISession session,
+            IStoreRepository repository) {
+            _session = session;
             _service = new StoreService(repository);
         }
 
         public ActionResult Index()
         {
+
+            var product = _session.Get&lt;Product&gt;(&quot;Backpack1&quot;);
+
             var model = _service.GetHomeModel();
 
             return View(model);</diff>
      <filename>Kona.Web/Controllers/HomeController.cs</filename>
    </modified>
    <modified>
      <diff>@@ -6,6 +6,11 @@ using System.Web.Mvc;
 using System.Web.Routing;
 using Kona.App.Infrastructure;
 using Commerce.MVC.Web;
+using NHibernate;
+using NHibernate.Cfg;
+using System.IO;
+using NHibernate.Context;
+using HibernatingRhinos.NHibernate.Profiler.Appender;
 
 namespace Kona
 {
@@ -14,6 +19,21 @@ namespace Kona
 
     public class MvcApplication : System.Web.HttpApplication
     {
+
+        public static ISessionFactory SessionFactory=CreateSessionFactory();
+        public MvcApplication() {
+            this.BeginRequest += new EventHandler(MvcApplication_BeginRequest);
+            this.EndRequest += new EventHandler(MvcApplication_EndRequest);
+        }
+
+        void MvcApplication_EndRequest(object sender, EventArgs e) {
+            CurrentSessionContext.Unbind(SessionFactory).Dispose();
+        }
+
+        void MvcApplication_BeginRequest(object sender, EventArgs e) {
+            CurrentSessionContext.Bind(SessionFactory.OpenSession());
+        }
+        
         public static void RegisterRoutes(RouteCollection routes)
         {
             routes.IgnoreRoute(&quot;{resource}.axd/{*pathInfo}&quot;);
@@ -26,6 +46,15 @@ namespace Kona
 
         }
 
+
+        private static ISessionFactory CreateSessionFactory() {
+            var cfg = new Configuration().Configure(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, &quot;nhibernate.config&quot;));
+            cfg.SetProperty(NHibernate.Cfg.Environment.ConnectionStringName, System.Environment.MachineName);
+            NHibernateProfiler.Initialize();
+            return cfg.BuildSessionFactory();
+        }
+
+
         protected void Application_Start()
         {
             RegisterRoutes(RouteTable.Routes);</diff>
      <filename>Kona.Web/Global.asax.cs</filename>
    </modified>
    <modified>
      <diff>@@ -16,6 +16,8 @@ using StructureMap.Attributes;
 using StructureMap.Pipeline;
 using Kona.Model;
 using Kona.App.Repositories;
+using NHibernate;
+using Kona;
 
 namespace Commerce.MVC.Web {
     public static class Bootstrapper {
@@ -30,7 +32,9 @@ namespace Commerce.MVC.Web {
             
             ForRequestedType&lt;IStoreRepository&gt;()
                 .TheDefaultIsConcreteType&lt;LinqRepository&gt;();
-            
+
+            ForRequestedType&lt;ISession&gt;()
+                .TheDefault.Is.ConstructedBy(x =&gt; MvcApplication.SessionFactory.GetCurrentSession());
 
            
         }</diff>
      <filename>Kona.Web/Infrastructure/Bootstrapper.cs</filename>
    </modified>
    <modified>
      <diff>@@ -31,10 +31,46 @@
     &lt;WarningLevel&gt;4&lt;/WarningLevel&gt;
   &lt;/PropertyGroup&gt;
   &lt;ItemGroup&gt;
+    &lt;Reference Include=&quot;Antlr3.Runtime, Version=3.1.0.39271, Culture=neutral, PublicKeyToken=3a9cab8f8d22bfb7, processorArchitecture=MSIL&quot;&gt;
+      &lt;SpecificVersion&gt;False&lt;/SpecificVersion&gt;
+      &lt;HintPath&gt;..\lib\Antlr3.Runtime.dll&lt;/HintPath&gt;
+    &lt;/Reference&gt;
+    &lt;Reference Include=&quot;Castle.Core, Version=1.1.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL&quot;&gt;
+      &lt;SpecificVersion&gt;False&lt;/SpecificVersion&gt;
+      &lt;HintPath&gt;..\lib\Castle.Core.dll&lt;/HintPath&gt;
+    &lt;/Reference&gt;
+    &lt;Reference Include=&quot;Castle.DynamicProxy2, Version=2.1.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc, processorArchitecture=MSIL&quot;&gt;
+      &lt;SpecificVersion&gt;False&lt;/SpecificVersion&gt;
+      &lt;HintPath&gt;..\lib\Castle.DynamicProxy2.dll&lt;/HintPath&gt;
+    &lt;/Reference&gt;
     &lt;Reference Include=&quot;DotNetOpenAuth, Version=3.0.0.9087, Culture=neutral, PublicKeyToken=2780ccd10d57b246, processorArchitecture=MSIL&quot;&gt;
       &lt;SpecificVersion&gt;False&lt;/SpecificVersion&gt;
       &lt;HintPath&gt;..\lib\DotNetOpenAuth.dll&lt;/HintPath&gt;
     &lt;/Reference&gt;
+    &lt;Reference Include=&quot;HibernatingRhinos.NHibernate.Profiler.Appender, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0774796e73ebf640, processorArchitecture=MSIL&quot;&gt;
+      &lt;SpecificVersion&gt;False&lt;/SpecificVersion&gt;
+      &lt;HintPath&gt;..\lib\HibernatingRhinos.NHibernate.Profiler.Appender.dll&lt;/HintPath&gt;
+    &lt;/Reference&gt;
+    &lt;Reference Include=&quot;Iesi.Collections, Version=1.0.1.0, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL&quot;&gt;
+      &lt;SpecificVersion&gt;False&lt;/SpecificVersion&gt;
+      &lt;HintPath&gt;..\lib\Iesi.Collections.dll&lt;/HintPath&gt;
+    &lt;/Reference&gt;
+    &lt;Reference Include=&quot;log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL&quot;&gt;
+      &lt;SpecificVersion&gt;False&lt;/SpecificVersion&gt;
+      &lt;HintPath&gt;..\lib\log4net.dll&lt;/HintPath&gt;
+    &lt;/Reference&gt;
+    &lt;Reference Include=&quot;NHibernate, Version=2.1.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL&quot;&gt;
+      &lt;SpecificVersion&gt;False&lt;/SpecificVersion&gt;
+      &lt;HintPath&gt;..\lib\NHibernate.dll&lt;/HintPath&gt;
+    &lt;/Reference&gt;
+    &lt;Reference Include=&quot;NHibernate.ByteCode.Castle, Version=2.1.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4, processorArchitecture=MSIL&quot;&gt;
+      &lt;SpecificVersion&gt;False&lt;/SpecificVersion&gt;
+      &lt;HintPath&gt;..\lib\NHibernate.ByteCode.Castle.dll&lt;/HintPath&gt;
+    &lt;/Reference&gt;
+    &lt;Reference Include=&quot;NHibernate.Linq, Version=1.0.0.4000, Culture=neutral, PublicKeyToken=444cf6a87fdab271, processorArchitecture=MSIL&quot;&gt;
+      &lt;SpecificVersion&gt;False&lt;/SpecificVersion&gt;
+      &lt;HintPath&gt;..\lib\NHibernate.Linq.dll&lt;/HintPath&gt;
+    &lt;/Reference&gt;
     &lt;Reference Include=&quot;StructureMap, Version=2.5.2.0, Culture=neutral, PublicKeyToken=e60ad81abae3c223, processorArchitecture=MSIL&quot;&gt;
       &lt;SpecificVersion&gt;False&lt;/SpecificVersion&gt;
       &lt;HintPath&gt;..\lib\StructureMap.dll&lt;/HintPath&gt;
@@ -359,6 +395,12 @@
     &lt;Service Include=&quot;{3259AA49-8AA1-44D3-9025-A0B520596A8C}&quot; /&gt;
   &lt;/ItemGroup&gt;
   &lt;ItemGroup&gt;
+    &lt;EmbeddedResource Include=&quot;Model\Supply\Descriptor.hbm.xml&quot; /&gt;
+    &lt;EmbeddedResource Include=&quot;Model\Supply\Category.hbm.xml&quot; /&gt;
+    &lt;Content Include=&quot;nhibernate.config&quot; /&gt;
+    &lt;EmbeddedResource Include=&quot;Model\Supply\Product.hbm.xml&quot; /&gt;
+    &lt;None Include=&quot;nhibernate-configuration.xsd&quot; /&gt;
+    &lt;None Include=&quot;nhibernate-mapping.xsd&quot; /&gt;
     &lt;None Include=&quot;Repositories\LinqToStore.dbml.layout&quot;&gt;
       &lt;DependentUpon&gt;LinqToStore.dbml&lt;/DependentUpon&gt;
     &lt;/None&gt;</diff>
      <filename>Kona.Web/Kona.csproj</filename>
    </modified>
    <modified>
      <diff>@@ -12,6 +12,7 @@ namespace Kona.App.Repositories {
         public LinqRepository() {
             _db = new DB();
         }
+
         IQueryable&lt;Category&gt; MapCategory(IQueryable&lt;Kona.Linq.Model.Category&gt; query) {
             return from c in query
                    select new Category {
@@ -23,6 +24,7 @@ namespace Kona.App.Repositories {
                    };
          
         }
+
         IQueryable&lt;Descriptor&gt; MapDescriptor(IQueryable&lt;Kona.Linq.Model.ProductDescriptor&gt; query) {
             return from d in query
                    select new Descriptor {
@@ -50,9 +52,11 @@ namespace Kona.App.Repositories {
                        
                    };
         }
+
         public IQueryable&lt;Product&gt; GetProducts() {
             return MapProduct(_db.Products);
         }
+        
         public Product GetProduct(string sku) {
             var query = _db.Products.Where(x =&gt; x.SKU == sku);
 
@@ -67,6 +71,7 @@ namespace Kona.App.Repositories {
             result.Related = MapProduct(related);
             return result;
         }
+
         public IQueryable&lt;Product&gt; GetProducts(int categoryID) {
             var query = from p in _db.Products
                         join cp in _db.Categories_Products on p.SKU equals cp.SKU</diff>
      <filename>Kona.Web/Repositories/LinqRepository.cs</filename>
    </modified>
    <modified>
      <diff>@@ -23,11 +23,13 @@
 	&lt;/configSections&gt;
 	&lt;appSettings/&gt;
 	&lt;connectionStrings&gt;
-  &lt;add name=&quot;ApplicationServices&quot; connectionString=&quot;data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true&quot;
-   providerName=&quot;System.Data.SqlClient&quot; /&gt;
-  &lt;add name=&quot;KonaConnectionString&quot; connectionString=&quot;Data Source=.\SQLEXPRESS;Integrated Security=True;AttachDBFilename=|DataDirectory|Kona.mdf;User Instance=true;&quot;
-   providerName=&quot;System.Data.SqlClient&quot; /&gt;
- &lt;/connectionStrings&gt;
+      &lt;add name=&quot;ApplicationServices&quot; connectionString=&quot;data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true&quot;
+       providerName=&quot;System.Data.SqlClient&quot; /&gt;
+      &lt;add name=&quot;KonaConnectionString&quot; connectionString=&quot;Data Source=.\SQLEXPRESS;Integrated Security=True;AttachDBFilename=|DataDirectory|Kona.mdf;User Instance=true;&quot;
+       providerName=&quot;System.Data.SqlClient&quot; /&gt;
+        &lt;add name=&quot;PEAHI&quot; connectionString=&quot;Data Source=.\SQLEXPRESS;Integrated Security=True;AttachDBFilename=|DataDirectory|Kona.mdf;User Instance=true;&quot;
+         providerName=&quot;System.Data.SqlClient&quot; /&gt;
+    &lt;/connectionStrings&gt;
     &lt;system.web&gt;
 		&lt;!-- 
             Set compilation debug=&quot;true&quot; to insert debugging </diff>
      <filename>Kona.Web/Web.config</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>9687e5860ad2a5a1637ac6ce9d49cefed8fe51a5</id>
    </parent>
  </parents>
  <author>
    <name>Rob Conery</name>
    <email>robconery@gmail.com</email>
  </author>
  <url>http://github.com/robconery/Kona/commit/0a973d7bd1b5502c53bb920aab4000cc95c79d25</url>
  <id>0a973d7bd1b5502c53bb920aab4000cc95c79d25</id>
  <committed-date>2009-10-02T15:04:27-07:00</committed-date>
  <authored-date>2009-10-02T15:04:27-07:00</authored-date>
  <message>Added mapping for NHib</message>
  <tree>ce4dafe9de8b00d579c6413bb61a14268ce4369a</tree>
  <committer>
    <name>Rob Conery</name>
    <email>robconery@gmail.com</email>
  </committer>
</commit>
