From 98c0d8104b6eefbcd5c11d5d3e2d0dbb0fe95a7e Mon Sep 17 00:00:00 2001 From: Hailton de Castro Date: Sat, 9 Jun 2012 00:02:25 -0300 Subject: [PATCH] Adapting 'NHobernate.Northwind' to Conversation. --- .../Spring.Northwind.2008.sln | 14 +- .../Spring.Northwind.2010.sln | 14 +- .../lib/net/2.0/Common.Logging.Log4Net.dll | Bin 7680 -> 13312 bytes .../Dao/DaoConvWA.xml | 74 + ...pring.Northwind.Dao.NHibernate.2008.csproj | 3 + ...pring.Northwind.Dao.NHibernate.2010.csproj | 3 + .../App_Data/Northwind.db | Bin 0 -> 578560 bytes .../App_Themes/Spring/Spring.skin | 6 + .../Spring.Northwind.Web.ConvWA/CSS/style.css | 175 +++ .../Config/Aspects.xml | 19 + .../Config/Log4Net.xml | 60 + .../Controller/ICustomerEditController.cs | 8 + .../NHibernateCustomerEditController.cs | 46 + .../ConversationPage.cs | 37 + .../CustomerEditor.aspx | 37 + .../CustomerEditor.aspx.cs | 71 + .../CustomerEditor.aspx.designer.cs | 41 + .../CustomerList.aspx | 55 + .../CustomerList.aspx.cs | 151 ++ .../CustomerList.aspx.designer.cs | 23 + .../CustomerOrders.aspx | 36 + .../CustomerOrders.aspx.cs | 77 + .../CustomerOrders.aspx.designer.cs | 50 + .../CustomerView.aspx | 32 + .../CustomerView.aspx.cs | 69 + .../CustomerView.aspx.designer.cs | 41 + .../Spring.Northwind.Web.ConvWA/Default.aspx | 13 + .../Default.aspx.cs | 53 + .../Default.aspx.designer.cs | 23 + .../FulfillmentResult.aspx | 20 + .../FulfillmentResult.aspx.cs | 65 + .../FulfillmentResult.aspx.designer.cs | 32 + .../Spring.Northwind.Web.ConvWA/Global.asax | 36 + .../Img/bg-spring.png | Bin 0 -> 2834 bytes .../Img/footern.gif | Bin 0 -> 540 bytes .../Img/header-spring.png | Bin 0 -> 91308 bytes .../Spring.Northwind.Web.ConvWA/Img/logo.png | Bin 0 -> 17587 bytes .../Img/springNet_release.png | Bin 0 -> 22673 bytes .../Shared/MasterPage.master | 45 + .../Shared/MasterPage.master.cs | 9 + .../Shared/MasterPage.master.designer.cs | 32 + .../Spring.Northwind.Web.ConvWA.2008.csproj | 238 ++++ .../Spring.Northwind.Web.ConvWA.2010.csproj | 235 +++ .../Spring.Northwind.Web.ConvWA/Web.config | 73 + .../Web.net30.config | 74 + .../Web.net40.config | 73 + .../src/Spring.Northwind.Web.ConvWA/Web.xml | 135 ++ .../readme/port_conversation.txt | 196 +++ .../readme/sof_aboult_samble_app.htm | 1255 +++++++++++++++++ .../readme/sof_aboult_samble_app.pdf | Bin 0 -> 58235 bytes .../4c4f1be011a447efbce49c1811022e7a.png | Bin 0 -> 12197 bytes .../6ee355d0469e16a5fc5bb0dc9c949a75.png | Bin 0 -> 745 bytes .../adzerk1_2_4_43adzerk2_2_17_45.js | 1 + .../sof_aboult_samble_app_arquivos/all.css | 1 + .../c948197f3e40bfcbe8a2d960d26728db.png | Bin 0 -> 2794 bytes .../fb0e2390755d48f7a025211792dd87a7.png | Bin 0 -> 865 bytes .../full-anon.js | 94 ++ .../full-anon_002.js | 94 ++ .../sof_aboult_samble_app_arquivos/ga.js | 61 + .../sof_aboult_samble_app_arquivos/ga_002.js | 61 + .../sof_aboult_samble_app_arquivos/jquery.js | 4 + .../prettify-full.js | 50 + .../sof_aboult_samble_app_arquivos/quant.js | 28 + .../quant_002.js | 28 + .../sidebar.css | 1 + .../sof_aboult_samble_app_arquivos/stub.js | 43 + .../Spring.Northwind.Web.2008.csproj | 439 +++--- .../Spring.Northwind.Web.2010.csproj | 432 +++--- .../src/Spring.Northwind.Web/Web.config | 4 +- .../src/Spring.Northwind.Web/Web.net30.config | 71 + .../src/Spring.Northwind.Web/Web.net40.config | 71 + 71 files changed, 4797 insertions(+), 435 deletions(-) create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Dao.NHibernate/Dao/DaoConvWA.xml create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/App_Data/Northwind.db create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/App_Themes/Spring/Spring.skin create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CSS/style.css create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Config/Aspects.xml create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Config/Log4Net.xml create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Controller/ICustomerEditController.cs create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Controller/NHibernateCustomerEditController.cs create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/ConversationPage.cs create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerEditor.aspx create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerEditor.aspx.cs create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerEditor.aspx.designer.cs create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerList.aspx create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerList.aspx.cs create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerList.aspx.designer.cs create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerOrders.aspx create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerOrders.aspx.cs create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerOrders.aspx.designer.cs create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerView.aspx create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerView.aspx.cs create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerView.aspx.designer.cs create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Default.aspx create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Default.aspx.cs create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Default.aspx.designer.cs create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/FulfillmentResult.aspx create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/FulfillmentResult.aspx.cs create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/FulfillmentResult.aspx.designer.cs create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Global.asax create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Img/bg-spring.png create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Img/footern.gif create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Img/header-spring.png create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Img/logo.png create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Img/springNet_release.png create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Shared/MasterPage.master create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Shared/MasterPage.master.cs create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Shared/MasterPage.master.designer.cs create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Spring.Northwind.Web.ConvWA.2008.csproj create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Spring.Northwind.Web.ConvWA.2010.csproj create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Web.config create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Web.net30.config create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Web.net40.config create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Web.xml create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/port_conversation.txt create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app.htm create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app.pdf create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app_arquivos/4c4f1be011a447efbce49c1811022e7a.png create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app_arquivos/6ee355d0469e16a5fc5bb0dc9c949a75.png create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app_arquivos/adzerk1_2_4_43adzerk2_2_17_45.js create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app_arquivos/all.css create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app_arquivos/c948197f3e40bfcbe8a2d960d26728db.png create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app_arquivos/fb0e2390755d48f7a025211792dd87a7.png create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app_arquivos/full-anon.js create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app_arquivos/full-anon_002.js create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app_arquivos/ga.js create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app_arquivos/ga_002.js create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app_arquivos/jquery.js create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app_arquivos/prettify-full.js create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app_arquivos/quant.js create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app_arquivos/quant_002.js create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app_arquivos/sidebar.css create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app_arquivos/stub.js create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web/Web.net30.config create mode 100644 examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web/Web.net40.config diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/Spring.Northwind.2008.sln b/examples/Spring/Spring.Data.NHibernate.Northwind/Spring.Northwind.2008.sln index d89f19f2..4ea2f8f0 100644 --- a/examples/Spring/Spring.Data.NHibernate.Northwind/Spring.Northwind.2008.sln +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/Spring.Northwind.2008.sln @@ -9,7 +9,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Northwind.Dao.NHiber EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Northwind.IntegrationTests.2008", "test\Spring.Northwind.IntegrationTests\Spring.Northwind.IntegrationTests.2008.csproj", "{2D0C5DF7-3BDB-44FB-BC1B-58E60B170BAD}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Northwind.Web", "src\Spring.Northwind.Web\Spring.Northwind.Web.2008.csproj", "{2967CA64-7352-46E3-89C0-6BB3A0A13FC1}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Northwind.Web.2008", "src\Spring.Northwind.Web\Spring.Northwind.Web.2008.csproj", "{2967CA64-7352-46E3-89C0-6BB3A0A13FC1}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Northwind.Web.ConvWA.2008", "src\Spring.Northwind.Web.ConvWA\Spring.Northwind.Web.ConvWA.2008.csproj", "{8DCDA20D-DF9F-4723-9649-BC6934B36DC4}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -71,6 +73,16 @@ Global {2967CA64-7352-46E3-89C0-6BB3A0A13FC1}.Release|Any CPU.Build.0 = Release|Any CPU {2967CA64-7352-46E3-89C0-6BB3A0A13FC1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {2967CA64-7352-46E3-89C0-6BB3A0A13FC1}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {8DCDA20D-DF9F-4723-9649-BC6934B36DC4}.Debug|.NET.ActiveCfg = Debug|Any CPU + {8DCDA20D-DF9F-4723-9649-BC6934B36DC4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8DCDA20D-DF9F-4723-9649-BC6934B36DC4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8DCDA20D-DF9F-4723-9649-BC6934B36DC4}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {8DCDA20D-DF9F-4723-9649-BC6934B36DC4}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {8DCDA20D-DF9F-4723-9649-BC6934B36DC4}.Release|.NET.ActiveCfg = Release|Any CPU + {8DCDA20D-DF9F-4723-9649-BC6934B36DC4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8DCDA20D-DF9F-4723-9649-BC6934B36DC4}.Release|Any CPU.Build.0 = Release|Any CPU + {8DCDA20D-DF9F-4723-9649-BC6934B36DC4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {8DCDA20D-DF9F-4723-9649-BC6934B36DC4}.Release|Mixed Platforms.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/Spring.Northwind.2010.sln b/examples/Spring/Spring.Data.NHibernate.Northwind/Spring.Northwind.2010.sln index 64aa54eb..03c3e02c 100644 --- a/examples/Spring/Spring.Data.NHibernate.Northwind/Spring.Northwind.2010.sln +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/Spring.Northwind.2010.sln @@ -1,6 +1,6 @@  Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 +# Visual Web Developer Express 2010 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Northwind.Service.2010", "src\Spring.Northwind.Service\Spring.Northwind.Service.2010.csproj", "{9E15876F-E9E0-43B7-9874-B54F163757D6}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Northwind.Dao.2010", "src\Spring.Northwind.Dao\Spring.Northwind.Dao.2010.csproj", "{7F45EEA2-50AC-44E2-85A6-2FFB02E38C44}" @@ -11,6 +11,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Northwind.Integratio EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Northwind.Web.2010", "src\Spring.Northwind.Web\Spring.Northwind.Web.2010.csproj", "{2967CA64-7352-46E3-89C0-6BB3A0A13FC1}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Spring.Northwind.Web.ConvWA.2010", "src\Spring.Northwind.Web.ConvWA\Spring.Northwind.Web.ConvWA.2010.csproj", "{8EEAB62E-DBAF-4C5F-9906-77B2A817F945}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|.NET = Debug|.NET @@ -71,6 +73,16 @@ Global {2967CA64-7352-46E3-89C0-6BB3A0A13FC1}.Release|Any CPU.Build.0 = Release|Any CPU {2967CA64-7352-46E3-89C0-6BB3A0A13FC1}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {2967CA64-7352-46E3-89C0-6BB3A0A13FC1}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {8EEAB62E-DBAF-4C5F-9906-77B2A817F945}.Debug|.NET.ActiveCfg = Debug|Any CPU + {8EEAB62E-DBAF-4C5F-9906-77B2A817F945}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8EEAB62E-DBAF-4C5F-9906-77B2A817F945}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8EEAB62E-DBAF-4C5F-9906-77B2A817F945}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {8EEAB62E-DBAF-4C5F-9906-77B2A817F945}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {8EEAB62E-DBAF-4C5F-9906-77B2A817F945}.Release|.NET.ActiveCfg = Release|Any CPU + {8EEAB62E-DBAF-4C5F-9906-77B2A817F945}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8EEAB62E-DBAF-4C5F-9906-77B2A817F945}.Release|Any CPU.Build.0 = Release|Any CPU + {8EEAB62E-DBAF-4C5F-9906-77B2A817F945}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {8EEAB62E-DBAF-4C5F-9906-77B2A817F945}.Release|Mixed Platforms.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/lib/net/2.0/Common.Logging.Log4Net.dll b/examples/Spring/Spring.Data.NHibernate.Northwind/lib/net/2.0/Common.Logging.Log4Net.dll index 3900bb877270d8bc14313c9649b8d85160a19dda..519caa6eb3d7185986cc22d49af06c31f4da1b86 100644 GIT binary patch literal 13312 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 Y2q1~^$&yZGJa4|i-hS)a|2P8w0W;eZ3jhEB diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Dao.NHibernate/Dao/DaoConvWA.xml b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Dao.NHibernate/Dao/DaoConvWA.xml new file mode 100644 index 00000000..2db27c0b --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Dao.NHibernate/Dao/DaoConvWA.xml @@ -0,0 +1,74 @@ + + + + + The Northwind object definitions for the Data Access Objects. + + + + + + + + + + + + + + + + Spring.Northwind.Dao.NHibernate + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Dao.NHibernate/Spring.Northwind.Dao.NHibernate.2008.csproj b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Dao.NHibernate/Spring.Northwind.Dao.NHibernate.2008.csproj index 68ff5706..6e130430 100644 --- a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Dao.NHibernate/Spring.Northwind.Dao.NHibernate.2008.csproj +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Dao.NHibernate/Spring.Northwind.Dao.NHibernate.2008.csproj @@ -95,6 +95,9 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Controller/ICustomerEditController.cs b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Controller/ICustomerEditController.cs new file mode 100644 index 00000000..9ee8ad98 --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Controller/ICustomerEditController.cs @@ -0,0 +1,8 @@ +using Spring.Northwind.Domain; + +public interface ICustomerEditController +{ + void EditCustomer(Customer customer); + void Clear(); + Customer CurrentCustomer { get; } +} diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Controller/NHibernateCustomerEditController.cs b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Controller/NHibernateCustomerEditController.cs new file mode 100644 index 00000000..dd72166c --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Controller/NHibernateCustomerEditController.cs @@ -0,0 +1,46 @@ +using NHibernate; +using Spring.Data.NHibernate; +using Spring.Northwind.Domain; + +/// +/// +/// erich.eichinger +public class NHibernateCustomerEditController : ICustomerEditController +{ + private readonly ISessionFactory sessionFactory; + private Customer currentCustomer; + + public NHibernateCustomerEditController(ISessionFactory sessionFactory) + { + this.sessionFactory = sessionFactory; + } + + private ISession Session + { + get { return sessionFactory.GetCurrentSession(); } + } + + public void EditCustomer(Customer customer) + { + currentCustomer = customer; + } + + public void Clear() + { + currentCustomer = null; + } + + public Customer CurrentCustomer + { + get + { + Customer customer = currentCustomer; + + //since the Customer entity may have been retrieved from a prior request, we need to reattach it to the current session + // in order to support lazy-loading, etc. on the Customer + Session.Lock(customer, LockMode.None); + + return customer; + } + } +} diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/ConversationPage.cs b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/ConversationPage.cs new file mode 100644 index 00000000..75fc7648 --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/ConversationPage.cs @@ -0,0 +1,37 @@ +using System; +using System.Data; +using System.Configuration; +using System.Linq; +using System.Web; +using System.Web.Security; +using System.Web.UI; +using System.Web.UI.HtmlControls; +using System.Web.UI.WebControls; +using System.Web.UI.WebControls.WebParts; +using Spring.ConversationWA; + +/// +/// Base classe for page's that suport conversation. +/// +public class ConversationPage : Spring.Web.UI.Page +{ + private IConversationState conversation = null; + /// + /// Converastion exposed to pages. + /// + public IConversationState Conversation + { + get { return conversation; } + set { conversation = value; } + } + + /// + /// Here start/resume conversation to reconnect the ISession. + /// + /// + protected override void OnInit(EventArgs e) + { + this.Conversation.StartResumeConversation(); + base.OnInit(e); + } +} diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerEditor.aspx b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerEditor.aspx new file mode 100644 index 00000000..769500bb --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerEditor.aspx @@ -0,0 +1,37 @@ +<%@ Page Language="C#" MasterPageFile="~/Shared/MasterPage.master" + Inherits="CustomerEditor" Codebehind="CustomerEditor.aspx.cs" %> + + +

+ Update customer information

+
+ +
+ Customer details + + + + + + + + + + + + +
+ ID: +
+ Contact: +
+
+
+
+
+ « Back to customer list | + Cancel edit » +
+
+
diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerEditor.aspx.cs b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerEditor.aspx.cs new file mode 100644 index 00000000..ece38b25 --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerEditor.aspx.cs @@ -0,0 +1,71 @@ +using System; +using Spring.Northwind.Dao; +using Spring.Northwind.Domain; +using Spring.Web.UI; + +public partial class CustomerEditor : Page +{ + private ICustomerEditController customerEditController; + private ICustomerDao customerDao; + + public ICustomerDao CustomerDao + { + set { customerDao = value; } + } + + public ICustomerEditController CustomerEditController + { + set { customerEditController = value; } + } + + public Customer CurrentCustomer + { + get + { + return customerEditController.CurrentCustomer; + } + } + + public CustomerEditor() + { + InitializeControls += Page_InitializeControls; + DataBound += Page_DataBound; + DataUnbound += Page_DataUnbound; + } + + override protected void InitializeDataBindings() + { + base.InitializeDataBindings(); + + // do the "one time" setup for databinding + } + + private void Page_DataBound(object sender, EventArgs e) + { + // perform custom tasks for binding data from model to the form + } + + private void Page_DataUnbound(object sender, EventArgs e) + { + // perform custom tasks for unbinding data from form to the model + } + + private void Page_InitializeControls(object sender, EventArgs e) + { + btnSave.Click += BtnSave_Click; + } + + private void BtnSave_Click(object sender, EventArgs e) + { + customerDao.Update(CurrentCustomer); + SetResult("ViewCustomer"); + } + protected void customerList_Click(object sender, EventArgs e) + { + SetResult("CustomerList"); + } + protected void cancel_Click(object sender, EventArgs e) + { + SetResult("CancelEdit"); + } +} diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerEditor.aspx.designer.cs b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerEditor.aspx.designer.cs new file mode 100644 index 00000000..1adfaefa --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerEditor.aspx.designer.cs @@ -0,0 +1,41 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.5448 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + + + +public partial class CustomerEditor { + + /// + /// btnSave control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button btnSave; + + /// + /// customerList control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.LinkButton customerList; + + /// + /// cancel control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.LinkButton cancel; +} diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerList.aspx b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerList.aspx new file mode 100644 index 00000000..5ad12d5f --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerList.aspx @@ -0,0 +1,55 @@ +<%@ Page Language="C#" MasterPageFile="~/Shared/MasterPage.master" Inherits="CustomerList" Codebehind="CustomerList.aspx.cs" %> +<%@ Reference page="CustomerEditor.aspx" %> + + + +

Customers in database

+ +

+ Below you can see all customers in the database paged to grid. + By clicking customer name you enter the details and edit information. + By clicking orders you can see all orders that customer has. Orders can + be in shipped state (they have shipped date) or they can be waiting for + shipment. You can ship orders that aren't shipped yet on the orders screen. +

+

+ The customer entity is created with Spring and injected with an ICustomerClassificationCalculator + which includes basic calculation algorithm that we can use to calculate customer's value to us. +

+
+ + + + + + + + + + + +
+
+ + + + + + + +
+
+
+
+
+
+
\ No newline at end of file diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerList.aspx.cs b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerList.aspx.cs new file mode 100644 index 00000000..e45dbc25 --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerList.aspx.cs @@ -0,0 +1,151 @@ +using System; +using System.Collections; +using System.Web.UI.WebControls; +using Spring.Northwind.Dao; +using Spring.Northwind.Domain; +using System.Collections.Generic; +using System.Web.UI.HtmlControls; +using System.Web.UI; + +public partial class CustomerList : ConversationPage +{ + private ICustomerEditController customerEditController; + private ICustomerDao customerDao; + + public ICustomerDao CustomerDao + { + set { this.customerDao = value; } + } + + public ICustomerEditController CustomerEditController + { + set { this.customerEditController = value; } + } + + public Customer SelectedCustomer + { + get + { + return (Customer) this.customerList.SelectedItem.DataItem; + } + } + + public CustomerList() + { + this.InitializeControls+=new EventHandler(Page_InitializeControls); + this.DataBound+=new EventHandler(Page_DataBound); + this.DataUnbound+=new EventHandler(Page_DataUnbound); + } + + override protected void InitializeDataBindings() + { + base.InitializeDataBindings(); + + // do the "one time" setup for databinding + } + + private void Page_DataBound(object sender, EventArgs e) + { + // perform custom tasks for binding data from model to the form + } + + private void Page_DataUnbound(object sender, EventArgs e) + { + // perform custom tasks for unbinding data from form to the model + } + + /// + /// List not attached. This page will make searching the database only once per conversation. + /// + private IList CustomersLoadedOncePerConvList + { + get + { + return (IList)this.Conversation["CustomersLoadedOncePerConvList"]; + } + set + { + this.Conversation["CustomersLoadedOncePerConvList"] = value; + } + } + + private void Page_InitializeControls(object sender, EventArgs e) + { + //searching the database only once per conversation. + if (this.CustomersLoadedOncePerConvList == null) + { + // create/initialize controls here + this.CustomersLoadedOncePerConvList = customerDao.GetAll(); + } + + customerList.DataSource = this.CustomersLoadedOncePerConvList; + customerList.ItemCommand+=new DataGridCommandEventHandler(CustomerList_ItemCommand); + customerList.PageIndexChanged+=new DataGridPageChangedEventHandler(CustomerList_PageIndexChanged); + if (!IsPostBack) + { + customerList.DataBind(); + } + else + { + customerList.ItemCreated+=new DataGridItemEventHandler(this.CustomerList_ItemCreated); + } + } + + private void CustomerList_PageIndexChanged(object source, DataGridPageChangedEventArgs e) + { + customerList.CurrentPageIndex = e.NewPageIndex; + customerList.DataBind(); + } + + private void CustomerList_ItemCommand(object source, DataGridCommandEventArgs e) + { + switch(e.CommandName) + { + case "ViewOrders": + case "ViewCustomer": + customerList.SelectedIndex = e.Item.ItemIndex; + customerEditController.EditCustomer(this.SelectedCustomer); + SetResult(e.CommandName); + break; + } + } + + private void CustomerList_ItemCreated(object sender, DataGridItemEventArgs e) + { + if(e.Item.DataSetIndex > -1) + { + e.Item.DataItem = ((IList) customerList.DataSource)[e.Item.DataSetIndex]; + } + } + + protected void BtnShowOrders_Click(object sender, EventArgs e) + { + Button BtnShowOrders = (Button)sender; + DataGridItem dgi = (DataGridItem)BtnShowOrders.NamingContainer; + DataGrid DtgCustomerOrderList = (DataGrid)dgi.FindControl("DtgCustomerOrderList"); + HtmlControl DivCustomerOrderList = (HtmlControl)dgi.FindControl("DivCustomerOrderList"); + if (BtnShowOrders.Text == "+") + { + //discovery index for Customer + int customerIndex; + customerIndex = (this.customerList.PageSize * this.customerList.CurrentPageIndex) + dgi.ItemIndex; + Customer customerFromLine = this.CustomersLoadedOncePerConvList[customerIndex]; + DtgCustomerOrderList.DataSource = customerFromLine.Orders; + DtgCustomerOrderList.DataBind(); + DtgCustomerOrderList.Visible = true; + DivCustomerOrderList.Visible = true; + //background-color:White; position:absolute; left:-180px. Positioning, just visual. + DivCustomerOrderList.Style[HtmlTextWriterStyle.BackgroundColor] = "White"; + DivCustomerOrderList.Style[HtmlTextWriterStyle.Position] = "absolute"; + DivCustomerOrderList.Style[HtmlTextWriterStyle.Left] = "-380px"; + + BtnShowOrders.Text = "-"; + } + else + { + DtgCustomerOrderList.Visible = false; + DivCustomerOrderList.Visible = false; + BtnShowOrders.Text = "+"; + } + } +} diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerList.aspx.designer.cs b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerList.aspx.designer.cs new file mode 100644 index 00000000..3a282ead --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerList.aspx.designer.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.5448 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + + + +public partial class CustomerList { + + /// + /// customerList control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.DataGrid customerList; +} diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerOrders.aspx b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerOrders.aspx new file mode 100644 index 00000000..00c1b2db --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerOrders.aspx @@ -0,0 +1,36 @@ +<%@ Page Language="C#" MasterPageFile="~/Shared/MasterPage.master" AutoEventWireup="true" Inherits="CustomerOrders" Codebehind="CustomerOrders.aspx.cs" %> + + + +

Orders for customer

+ +

+ On this screen you can see all orders that customer has. By clicking "Process Orders" you + can send service request to ship all unshipped orders for that customer. Behind the scenes + Spring.NET will begin service level transaction that propagates to DAO layer which then + automatically participates int the existing transaction. +

+ +
+ + + + + + + + + + + +

+ +

+
+ « Back to customer list +
+
+
diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerOrders.aspx.cs b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerOrders.aspx.cs new file mode 100644 index 00000000..61df7222 --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerOrders.aspx.cs @@ -0,0 +1,77 @@ +using System; +using System.Collections; +using System.Web.UI.WebControls; + +using NHibernate; + +using Spring.Northwind.Domain; + +public partial class CustomerOrders : ConversationPage +{ + private ICustomerEditController customerEditController; + + public ICustomerEditController CustomerEditController + { + set { customerEditController = value; } + } + + public Customer SelectedCustomer + { + get { return customerEditController.CurrentCustomer; } + } + + public CustomerOrders() + { + InitializeControls += Page_InitializeControls; + DataBound += Page_DataBound; + DataUnbound += Page_DataUnbound; + } + + protected override void InitializeDataBindings() + { + base.InitializeDataBindings(); + + // do the "one time" setup for databinding + } + + private void Page_DataBound(object sender, EventArgs e) + { + // perform custom tasks for binding data from model to the form + } + + private void Page_DataUnbound(object sender, EventArgs e) + { + // perform custom tasks for unbinding data from form to the model + } + + private void Page_InitializeControls(object sender, EventArgs e) + { + // create/initialize controls here + customerOrders.DataSource = SelectedCustomer.Orders; + customerName.Text = SelectedCustomer.CompanyName; + if (!IsPostBack) + { + customerOrders.DataBind(); + } + else + { + customerOrders.ItemCreated += CustomerList_ItemCreated; + } + } + + private void CustomerList_ItemCreated(object sender, DataGridItemEventArgs e) + { + if (e.Item.DataSetIndex > -1) + { + e.Item.DataItem = ((IList) customerOrders.DataSource)[e.Item.DataSetIndex]; + } + } + protected void customerList_Click(object sender, EventArgs e) + { + SetResult("CustomerList"); + } + protected void processOrders_Click(object sender, EventArgs e) + { + SetResult("ProcessOrders"); + } +} \ No newline at end of file diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerOrders.aspx.designer.cs b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerOrders.aspx.designer.cs new file mode 100644 index 00000000..05976a30 --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerOrders.aspx.designer.cs @@ -0,0 +1,50 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.5448 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + + + +public partial class CustomerOrders { + + /// + /// customerName control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Literal customerName; + + /// + /// customerOrders control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.DataGrid customerOrders; + + /// + /// processOrders control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Button processOrders; + + /// + /// customerList control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.LinkButton customerList; +} diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerView.aspx b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerView.aspx new file mode 100644 index 00000000..9d69542f --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerView.aspx @@ -0,0 +1,32 @@ +<%@ Page Language="C#" MasterPageFile="~/Shared/MasterPage.master" + Inherits="CustomerView" Codebehind="CustomerView.aspx.cs" %> + + +
+ +
+ Customer details + + + + + + + + + +
+ ID: + <%= CurrentCustomer.Id %> +
+ Contact: + <%= CurrentCustomer.ContactName %> +
+
+
+
+ « Back to customer list | + Edit Customer » +
+
+
diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerView.aspx.cs b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerView.aspx.cs new file mode 100644 index 00000000..84452f82 --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerView.aspx.cs @@ -0,0 +1,69 @@ +using System; +using System.Web; +using Spring.Northwind.Dao; +using Spring.Northwind.Domain; +using Spring.Web.UI; + +public partial class CustomerView : ConversationPage +{ + private ICustomerEditController customerEditController; + private ICustomerDao customerDao; + + public ICustomerDao CustomerDao + { + set { this.customerDao = value; } + } + + public ICustomerEditController CustomerEditController + { + set { this.customerEditController = value; } + } + + public Customer CurrentCustomer + { + get { return customerEditController.CurrentCustomer; } + } + + // public static void Edit( Customer customer ) + // { + // HttpContext.Current.Session[typeof(CustomerEditor).FullName + ".Customer"] = customer; + // } + + public CustomerView() + { + this.InitializeControls += new EventHandler(Page_InitializeControls); + this.DataBound += new EventHandler(Page_DataBound); + this.DataUnbound += new EventHandler(Page_DataUnbound); + } + + override protected void InitializeDataBindings() + { + base.InitializeDataBindings(); + + // do the "one time" setup for databinding + } + + private void Page_DataBound(object sender, EventArgs e) + { + // perform custom tasks for binding data from model to the form + } + + private void Page_DataUnbound(object sender, EventArgs e) + { + // perform custom tasks for unbinding data from form to the model + } + + private void Page_InitializeControls(object sender, EventArgs e) + { + + } + + protected void customerList_Click(object sender, EventArgs e) + { + SetResult("CustomerList"); + } + protected void editCustomer_Click(object sender, EventArgs e) + { + SetResult("EditCustomer"); + } +} diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerView.aspx.designer.cs b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerView.aspx.designer.cs new file mode 100644 index 00000000..3d6cd23c --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/CustomerView.aspx.designer.cs @@ -0,0 +1,41 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.5448 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + + + +public partial class CustomerView { + + /// + /// panel control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::Spring.Web.UI.Controls.DataBindingPanel panel; + + /// + /// customerList control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.LinkButton customerList; + + /// + /// editCustomer control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.LinkButton editCustomer; +} diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Default.aspx b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Default.aspx new file mode 100644 index 00000000..8095e6e7 --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Default.aspx @@ -0,0 +1,13 @@ +<%@ Page Language="C#" MasterPageFile="~/Shared/MasterPage.master" AutoEventWireup="true" Inherits="_Default" Codebehind="Default.aspx.cs" %> + + + +

Welcome to Spring.NET Northwind sample application!

+ +

+This sample demostrates Spring.NET NHibernate integration and concepts. All data access is done using NHibernate and +all transactions are automatically handled by Spring.NET. +

+ +Proceed to customer listing » +
\ No newline at end of file diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Default.aspx.cs b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Default.aspx.cs new file mode 100644 index 00000000..b273b41e --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Default.aspx.cs @@ -0,0 +1,53 @@ +using System; +using System.Diagnostics; +using Spring.Northwind.Dao; +using Spring.Northwind.Domain; +using Spring.Northwind.Service; + +public partial class _Default : ConversationPage +{ + private ICustomerDao customerDao; + private IFulfillmentService fulfillmentService; + + public IFulfillmentService FulfillmentService + { + set { this.fulfillmentService = value; } + } + + public ICustomerDao CustomerDao + { + set { this.customerDao = value; } + } + + protected void Button1_Click(object sender, EventArgs e) + { + ProcessCustomer(); + } + + public void ProcessCustomer() + { + string customerId = "ERNSH"; + + // check, if exists + Customer customer = customerDao.Get(customerId); + + //Find all orders for customer and ship them + this.fulfillmentService.ProcessCustomer(customer.Id); + //assertions.... + + // prepare for display - note that OrderDetails are loaded lazy here! + foreach (Order order in customer.Orders) + { + Debug.Assert(order.OrderDetails.Count > 0); + foreach(OrderDetail details in order.OrderDetails) + { + details.Quantity = details.Quantity - 1; + // do something here + } + } + } + protected void customerList_Click(object sender, EventArgs e) + { + SetResult("CustomerList"); + } +} \ No newline at end of file diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Default.aspx.designer.cs b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Default.aspx.designer.cs new file mode 100644 index 00000000..34205d0b --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Default.aspx.designer.cs @@ -0,0 +1,23 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.5448 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + + + +public partial class _Default { + + /// + /// customerList control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.LinkButton customerList; +} diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/FulfillmentResult.aspx b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/FulfillmentResult.aspx new file mode 100644 index 00000000..1b7a18ff --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/FulfillmentResult.aspx @@ -0,0 +1,20 @@ +<%@ Page Language="C#" MasterPageFile="~/Shared/MasterPage.master" AutoEventWireup="true" Inherits="FullfillmentResult" Codebehind="FulfillmentResult.aspx.cs" %> + +<%@ Register Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" + Namespace="System.Web.UI" TagPrefix="asp" %> + +

Order processing results

+ +

+ Below you can see the results from order fullfilment. +

+ +
+
+ +
+
+ « Back to customer order list +
+
+
diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/FulfillmentResult.aspx.cs b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/FulfillmentResult.aspx.cs new file mode 100644 index 00000000..9cd8cb71 --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/FulfillmentResult.aspx.cs @@ -0,0 +1,65 @@ +using System; +using System.IO; + +using log4net.Appender; +using log4net.Core; +using log4net.Layout; +using log4net.Repository; + +using Spring.Northwind.Service; +using Spring.Web.UI; + +using LogManager=log4net.LogManager; + +public partial class FullfillmentResult : ConversationPage +{ + private IFulfillmentService fulfillmentService; + private ICustomerEditController customerEditController; + + public IFulfillmentService FulfillmentService + { + set { fulfillmentService = value; } + } + + public ICustomerEditController CustomerEditController + { + set { customerEditController = value; } + } + + protected void Page_Load(object sender, EventArgs e) + { + // gather log4net output with small hack to get results... + ILoggerRepository repository = LogManager.GetRepository(); + IAppender[] appenders = repository.GetAppenders(); + MemoryAppender appender = null; + foreach (IAppender a in appenders) + { + if (a is MemoryAppender) + { + // we found our appender to look results from + appender = a as MemoryAppender; + break; + } + } + + if (appender != null) + { + appender.Clear(); + fulfillmentService.ProcessCustomer(customerEditController.CurrentCustomer.Id); + LoggingEvent[] events = appender.GetEvents(); + StringWriter stringWriter = new StringWriter(); + PatternLayout layout = new PatternLayout("%date{HH:mm:ss} %-5level %logger{1}: %message
"); + foreach (LoggingEvent loggingEvent in events) + { + layout.Format(stringWriter, loggingEvent); + } + + results.Text = stringWriter.ToString(); + } + + } + protected void customerOrders_Click(object sender, EventArgs e) + { + SetResult("Back"); + } +} diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/FulfillmentResult.aspx.designer.cs b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/FulfillmentResult.aspx.designer.cs new file mode 100644 index 00000000..d45888dd --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/FulfillmentResult.aspx.designer.cs @@ -0,0 +1,32 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.5448 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + + + +public partial class FullfillmentResult { + + /// + /// results control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.Label results; + + /// + /// customerOrders control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.LinkButton customerOrders; +} diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Global.asax b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Global.asax new file mode 100644 index 00000000..ff1b8a7e --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Global.asax @@ -0,0 +1,36 @@ +<%@ Application Language="C#" %> + + diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Img/bg-spring.png b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Img/bg-spring.png new file mode 100644 index 0000000000000000000000000000000000000000..fdb377cd712d805fce02bc83c84390a7501ed50b GIT binary patch literal 2834 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 literal 0 HcmV?d00001 diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Img/footern.gif b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Img/footern.gif new file mode 100644 index 0000000000000000000000000000000000000000..8375fea1e23a55170fa0689ebff32c4545a226f4 GIT binary patch literal 540 zcmZ?wbhEHbJkO-WaD;*3;p?N%-(Pt9`S!!tN1nbr`|ivA&);AC{`39*t3%&@zJ2rQ z)}OyW{{R2?;=|=<@6LVt{_Os%ga7~kXCN9V{$v5G)d7(pI~iF2E2uaHX3oo4wJzuN zz5<=|CAs%2*1fNJ|Np>(0uLRj{u5U-JiV;uUszG%wKi(~jWuQ2DSbO0Y^d+ z+=L)c0zH#%`Z9~qhEIfA}J$`b5@u~pR)7Nj_Zee|)#K`{c>$mUIxp_Z& zvvBbBiH(bo_bWJe{n0qU$W*5h zJabjd$xTa7Pd7+DHOF)Fva_=-ieKG1xq12d`3}uovR+$OTwLriSu6I`mX(*62Q2oQ z>$P>&)zuN3v+kbSy88P1gu`93-rLsP+?;WFRqW|)Yj1BaczkNE_x5#ncUOFVb@%l4 z_4oHTFmucK?AY+|aEGvV+?gF4A0MBf>^;wC=ccEpXBcPSJF|21^YaUwyXAa$ZFzZl SMeyplv%9utpHO6Aum%8T797_A literal 0 HcmV?d00001 diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Img/header-spring.png b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Img/header-spring.png new file mode 100644 index 0000000000000000000000000000000000000000..c112ff2a0015a18baf075c0cf2f9fc19f8921138 GIT binary patch literal 91308 zcmV)lK%c*fP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=00004XF*Lt006O$eEU(80000WV@Og>004R=004l4008;_004mL004C` z008P>0026e000+nl3&F}00CLYNklPp@^(jMxZ6Wj zRG8)PdEo!~U;pnSA|n5n|Lgxb7(xMrGW|n{5cyvr002-#RUsmf2$EC)su1yT5kU7} z7l@FADg+cpgor3qAQaL`p=!P?K!#8SL5c`~>0Ja06;PNTF(gEw0>OAU65|Ib1VHBd zi}r6I+`kAV82Ociq=*6#iG2P3-p3b_d;#t6mY9_X(m@km;B>fe5dhzl3 z^C#~A;qgM8{>%Pn>|ZcnfB$*e|C8Lm;r^nSe*)tJk6*;}Y4O&F>-S1-e-Mv;vENx} z|FeovK#>SKNkRVrTz1pAuFi^u%9GJS@8hy;W{NFl~`?w6HUu_CIX1~Zxh z3ILiPuU|Hq*Z#P&8i7{hJU#$4%A2dmOvD#G!H_x8s> z*vBva`O_9O2wyi}7J2u+KnYS-jvbcyq z)lA9~wmKwAffflBnB+1G7r21fyzinO%v+R;^itF)%VKLOW@e>a)>UC<#jIE<5SVH6 z*8IA)*XFM^>ekv;+qmJ!F67?#NRkYA3hVlm${GA6!9yL9j+^ zQH6c~4*>(gFcYX~J|mFJf@NV@v93=`xu{DK{2%|P|HFU&&wmnq`TY8?Ay=r1z?(Dg zNyPPavr<&Gwykd0r>D#7>x-dWE>EpFpdWtt@a5%&eXU6`Yps6%@(F5Bmv^tPTk{G; zi+Z_SKK=UXvRr{(3f zZLj?44?n(s*?#%;^*{W_cR&5~hyUe&{?{+BZCT~#pWlD}bp7(FJwGk~@-NR%&maEw z_h0_@*UwK+3{d9mzS5n{oAV*e)zDG>&IU|NAM4STz~xG$AA0R zPoH03&E(zl@`oRPc=_`A<>eZb4Ea zU;b}>W7@Zxh#1?-dG7)R5@g>=m^*DQB>}T*7=N|b(~!RD zqpZc)5GjoOtE~O`s0l)XLgYRrWE@MLbF-8+>-b*aw8iEJn|~+rEA;L1sE-h2_26iA z82v(F6t;ci?~fmE{~ZtD_!;&~B;$f}F9UZaeSf4$dDx0fbyL8jfE|C}_?n!51#i6; z<*n}IQ7;6{9U13FX#X3YzV7(x{W9$DfTN)sw<&+1fBd5;%5gCzPM`1mHltwn-^yRW z&E1)=aQ2%JG8nRd%s9UP=oS=`^_Zh+A%(|dOt_sS+C7=rO+FnUInE^8qmqWZGY%$^p}i0f->ZqH9J>usl*dK2HG2p5yu zq;B}~rG9z+73KQFkI(O(Ke&g`i(xdX0;u+GHON5rtz%Oim!dC3fY4ACNI(PP!louv zisnuw0yu*p5kNp_Y6ew?!eJC4RYJxV9ikz0Q4vC%$8!Y;geFn|%LfD^qM{}+)dDH1 z1yIrK;w6Ia9*lnX^C6+MCJd2)3KUR^i706TP#`oFK=N+73rW?n`zS&nq5^~j86iOk zC7jK}(TfHk8X*W#p^b+oD2+nPA_GIo=em^ATD-h$;bOXirWBQcxJWQUpfH1psH+Ld z=F!4Y)FXm~s(Z^#zt!eWCMANTR5gQ1*Y3(l+YjSqkK=I0lD&>|hL7LTsPzLZC` z&l)Pz=~w2)H;Wy{7sdGOW78hZ+TP6de@6Skqr;1H-#J#loVzce zLuPU;?;VQaeiOO>_~;f!CF$KT8RY0|j%%3zE2d>Kp9*;D04YLMl!8)pzxo~D(c=-@ z0iJPE=p77>s@VJfzEE(x9HBc}IJ&6g!u0+K5K44FXtbEo8z$gr^ZM(XX?_}2%}){$ z4CYp)5TTf=3PCD*X%Z3k8Wz1UH&Li5mL+=-ac4qQBI2!ii={|WaY}1qs*AxOZR7PC zmvwo%n70POWhvpkTtV7TukO0|lF;!uf zcpnR(A~2=EL!g!&NCX9HW@CqlTo=JeTsR`}rsF`AMM3+aD|(Z$x1sl5il_8|(gB*<3YJ``frg7nlh(bwjTcrS^Bt4qDD-@JsOLnCs z&CtBfhf}?+g~!f2Acv!7^}Ru62qdv*)p6MDkUaO=-p@FB%IVl_2cLHUWR%2S41}0= zw(8B#=|)uJVhR0C;cPu?GYy!;$cyqaE!i5 zp8*Rz=rcOXf~k?1uNlrIInG0q{S9?0c+;zm|H9i55Wmthoxcqp<0GdoTnJg4zi$L&UEJsuG3qn!Dk zkG|pDP2EjQc+;NsRs{oVWX>{0?>jG6Rj9%W%yhKSm{G84(uC1M;50Go zWfB6>KEgp?ije!6SZ`8t7r+kwLsfebRL#1!AL^yQY_>bGw}v8UwJ~UB(@+*Vz?tR@ zie`CN5oIv6*O~&4g$Mp6+ve^xwX&K>yuSMDwFRXtRvW*(Z0@lvx~xcS zrYvYxBBT@(NOd~n)2A>0_{T5Hy8Pwmpa1m7pM`w%QA|6?L5zIgD9l+STbZ;_7my>@L`(uz(MlxH=u>m;U8QFX& z;O-Grg;3n7ie<^dn{A|aEKQ+?ZL6&XMT!-HMueKG8pbo4!@gFVhbuHjQ3z60gY?#x zr7Xo1kih{kvj|4SS{5_2oNWPS7Vhp2pcG3`R83oJ6fy+R%cZ!By8v3ZCMwY=;8H|$ zcqZZ=9@(-GrtVUTLeV^Gb4Cz61RL(CM`vD8+ZB6~vd z<`GfM?w?}_TI;C3>_D^Iyr$ z5s>@w9^AK85D5;# zDL=JLGqib8Pz|au73>{2Pcx;d725I0y(yW7h?pPz35v(jt@o9m<$wC!VC?9KjuQk# zRIv{ad!0STGzmZCNGP{p%{^jFqr{!0s4b)T2dFCHl1E_xsv02? zygaQ5JC`E0lA&3#TJ`PPo}MmhLWGAGgEwBUv{IIfy32KoPhUR$^6NidUO!(h>$|6S zDuAJb38R$?chW^@2Gib+Ap0pD=##1@Oh7XFvO>RF{g@0@>8(bnGW!@) z>8D{2k2nT}?3X=(c!-!KPbx+!i0m%`QB_rq2#@GpoiOhvMaCZxL?n8qeI`BzBhZ{e z$#}uRm%@&n4gOrNgPhWY=R}3>NeDz|mLfmYN6jISJ<9(E#9{+GBrEXwq*#~H4_Uq2RO-luUh1t)Lu2~J?d zJp8$*Ht>LJj=2!_-i1>Y{0cVkaE`&Z;RimXgzhu<^Ix1V>*>`vtq$CE9^```zM+G1 zKQ7;mb>c+gm>?mZzAC2$d2^Z{=6PoVb3ELG`+6XQ42dLPQ%tpU zA_b$&h#Dx;@{p)~n%;qz>4LNt3bSGY(ITxeLK5;(#dh`WwG~rUii$UBO#ob;)txUd zErRdgUvl%Mh!&~tF1S3c%SGIIt*u4-^76?Fe*E#rckkXS)FWF1xH}SJ>T`!CLNzr@ z=A~ItE6DN#B_$NS!Qu`G>{Bzj?L z0Ky~axwm+-1D@+*SkyIRx)oW&|MMPVzrm8?|E!-2M=|>cDfEKjyru^0w^_SF(JX;f2e}qn|lw>>So2DXx>y+L`=05%fU)1mK?0d z-NtcDy{Rs{+TqYdeh8fpe^*v<)Bwo+oVxFv$JzCs zBhb%mycK|qsk|_zqV+cWLidv;rc!#wT5k9*r!M5-a3UUZJHDgy;6X{b!AI_AIehCS z=V?367|C4Vajq~tLo6~e8%|$&6iV#S!^0+N#%dq1Q|HsSaH48v>mnlAtDfGNnA;M-df^~`&TDBvPPwhzwwIXsR@1Y;;~8Thg0WrX zAIGZ=rfQ1Q&?nC%6Cd6iGMqOh-7W0T8{jaK$Sp(U8S+T)wlKt`I=#s;k9cn~G@?+_(`Ri6a2wNc5r!*Wm zB3aCqveeorG&3~~kC}kt;mfjEF$$Z9dlL~WWj<9!I3R}vjm$Ekra`JE+gZ#cB7{^^ zuM}Z;D@D{85oU;>2URu5Rs(>QkPTm}P1RJ9w2xY=0*RqzW1Qz91@WkrX9g0>CWagnQGx7f*Rhu^^4}7 zLn{U&VlEtdN9x1fIr4!Dfjd8bke_c5{?S$UgIaK>sy`AsjNh2(V%WjzX(qw>q(09P z_TqsVMY&__Po?WzUiYK?K>ueN-D&mAm?pX z=iQy0Z^#KdnE!V?0JKi36x{blc=)+-I+Wu8-_HZNV*!lyGqr{%n#zqXS>|r$JeHb~ zBoNd10fQX5zw&q$p7ceWo7nuYF_SO=If<)9?pH~dzV5V*A+hQ;5SZoODcjZodq56C z3FSOzI?XMnCK`jqS&CYLM}Rw7XJXLqj9X3|>gh)DU{2#SNW}wA@aV*_4^5_eHvTjk z6Ft6f2iteN<-mJ7pHWBihQ8qt!BjV3p9PVk$vo^u2+{ftRuiFkOEygOs!Z`J3cXxP zXG>5bni|W3*B9BY?fL2Q^i(3GHkM)}n>SDvvtkh7)618?{o}76KmTe)|M;grUDiu$ zo`*smol^>I47!*Z^s=n)pWm&^vRJvS>(f)YT+~Xax~O-O`k0*%eY`@6Y-9jYQ%bV} zEh0t~*|j6ld730c(E)()WAeux(jXyHio$XQs)#TmXE>&o6B8LH-!X=dkmv(>7fk)6 zdro}DkQ@~4cg9Risa-)RHdwJRhDSt)$0=x$L$cmA_QQ41+fLdSX1}xdw*AAixqBb? zct{YqZuRxL0Ud$J<2&h+QfXDoE+fZht>uH0)fzx+)ry%}Yb_~Aq!cRZ|M4 zRIQXHobF*-45EtK8WF`HBDGdi6L48UN^5bsEd7b6M1&dvX>BmKgWmcnj!bpivEk$u zXjQ`Fklu)dM{TV;L6DtSo1?JcV{GGOuyBGOfcq-a=K_7Z#@Hlgc?Y=@v-*)|a?!vE zU&S=jc(k3(nDIVzKNp{=Xkl#cdUK9`j2q1I%M%Ur@mOMRHOA3WMdbT1i8s#g*B8U75kVYf3pYQSMsb(-`ikfv4eD zE{}*qsC)(l7=x~XBpMHJBH|!5MC{aOp2*Q0ZN`pHjHC39;LSE4lat1D;de5r>_j3C zSue*_dQ9W?Pr);V<90csH%jQxPVzE4iCwt=?a7QJyR`)H$3;2!o=0bO{>6Er?cm1F zz1X1*?&|s*G$k7#GadLthl+*+j)Z$MUUy(7H}3>F7>pLhRM8K+?x6|>A|#cKwNiwo zsFmE@86Kr5gCf|rh#-W^Y9iWdG!L^r0QvHzMzp7=)hti+EQ@X%-Q}`Am7=w>*7oVk zuYdpLuP*JwAAWfE{DFO&HW6hELS+sMfMvZDTb5;cetNzF8eO;ft#6eEGX&UdFQW$C3y1;7v) z?WZ3ogq~lpYj?FsczE~_o%JzH-hsSmrn)QziZ^*14+|#l-Kua1UeD@N?8rWL>S|3p>yF$WjnE+XQeL>1}7mC$>x~7oXsZo-kCg6i4S)E_z$_v_Cq~xIjy`S81Vj* z$Rv|F^%;|Ri#H}Dch^|~Gc8Njb1HCuU#C7`SaPxJ4g@mKO?U{;c7$dJGS8@1mm~mC zO%>*Grk0a{C35>4?ZzN_XXoQVA(7+<9XvtG(6MwFGDR=JyzDUR0~$cWBgW}URRY*xRgaz!((>VaSt;qWqDdJPft&3wyx{DckkDAy*#Z?Ps`J#tV>ZtDGEd>rUj9b z785mv!iqwXEeM2VQ8fsdG?ZPo)77nmW2ECy=svE)n0c$AHKtIbLmF1{OIb1Pi=o$J zGTgJx=+_}N$Kf3`vT+Db^25-+4j6;d+uxxJ+lOBQr68Ox;+=?vR=pb>1@p`K!SxYn zXEG}G&I397h;R=lBPg|btu1BMI0#any^L8gv(|E&prx3HrwEGlvAwnoxQ+38+EuFFDUniei=r{lER09ls48Y86DI{pwKOI}clkOnYB zMctcwEXz_B3#I@B$*aglF(~2GoR>grZ4{Vkj4_8h6-t-XkFc}0_eq>U#arwws2s?u zCTzxZtGm`~Yt0!+;7CuJ@DOwbyV>YlkAwK*ZbKfi3~xIFayp~#-kX3NGS{0K>rpVG zpRsO>BxXkf0Va9E{zj)Cxfv922Cct#;OAMthuJVh&a&JasRkY(BAm=P9`pow*aP8o zbfn;+trowxalu_@fJbT)JYsm<_;G;W+c4p)P2L;7frqWmEgh72=*bG4UgOkd+z51c zZswz5AWr3+lLilxB>TiYZ;ZcYF2^ywo9A=0kZf92>{A;|^T*LW3nzE9p^HI6$U{hi zon0KAgMUmZZbjA;%T_=&n$Z@(jx{k6Gl$J;w;;hV!Q?)a+)H~u#*B4@9i)^QG)a^M zgUQI`ucQ{ zbt$heU~sD+KY#gKaQpDX^Ygn4!&RxIM5uO(j1^ngwUlDEJYU{l*5|c6UDkJ(@^o1) z&(D{q_hoq}QkpHH780Qf?E>b2<+l?nfVwWau9wU5wCJVCrRbU>5~8J=FIRB@J{E-y zS6t6p3KEQ<$^iZ&B)ZJIs2&Px)$|?}h)5MULxk{PkWficD}9g(H5~+YnmM5yhH}iV z*B~k|QKi!JY1a}ePNl+SwMA0!LU;_IFYSO+&?_iZgs32bsjJWsG}q4R@K!h98e6(z zfh8X>6BGBQTEaz9OwH67T5wTYt9t-iw6R6FDl{2;gb=C3u0i$#;|>b2HSpMS0G`tIHH4?lcRMYK5ZF%75` z(_*@;%jNR4F3Ykkm&@g{Ue;y3te2;!r*$o*;OSyzQHn!JHo!G&@}OHnVJUnRF|*5h z*#{_z6dgm2efWhw7Toul7-X09?n2ihODTCEHBU!1Xmoi6hGeQMiNaZHztagg?JBBd z>1n!Dq+7!{A0KFkAX>kz1Mi65hW012Q(1GUmdIAF*aS! z0MFlG;=Wz)@g42M4ZMN3fA){BX*zunffR<j$s7{lnX!QzDoy{aNu-~Q z{tl!Q({lu9h8T2G{@|Xc&1L5+Mz@Q|S&`tlgUN9dVX_xhl!0zl6cJ8K_%~2n17uk( zJ+{4(uBM?T_3GD`wk+%OlbI2e#mchS^~xN$FKhr<#JilTTCs~LW`6FE2^qV zYXo3PFiD5aJf53bV*WO+@zLuZFkZ3*1Y+ILLj+PxmtxT41}O}p!!w$U(N+ety(k3$ z+`DsH-VR}(Zh$l(rvWBn2gU;hgH#>RnKHtAkC0E+XmR$iiqw}%dRfLaKphTr39ERB z2OB-btF_gLh@e`57^unEFxa{-5s|N&pnrm8?w-;N4_DxNy_%U8^9VDggu9y}f)MRi zJ(O;1GlaO#ZXuujQcvDc32$9xqY}ZK@`Q(4R`)PdRZV~QQn0KdA+E!7eO$Q3x+^>^8*~l;APDL3>bvm39Zd5Hp+l4ND zv_u=giQYYdG2E4yJUeHkbNSKbkCQ_J!{Q+%tSAO4QakT1aTtQaMujW|#gbKko&28q zkyFLm4AzkC1w z{d-d#Su>Jjl(JY^mSUx-mXh#U4=ljH+CqVKj=ZzYBpR3(rY}6o-FzE2x$UqIGCu(o?d~oD( zQh`l*S^|-5HUhDA8?W*|=Y=Ba5)$13-3MUp}l01=U3L&iQ1wk#vsx~}Pa!H{BQzrqm_WWpg< ziU7@QD_lo%6dB)S%$~n?zC65n>TmU!4Mfl83vozOe5L% z(CEy}VW5J0|A;r}efW+O_32Q0uVWbx+mXOB_NJ3jHx2^Y3=_w&Y2t(#;6#e#?ZkRA z+&sp~xYwrQ7R5hak#iS`y9;PC)Z9)1{lAeKU-Tv{9zkUAvYcafgez&fdks3^Z>rzTtEt>)>r7Wsi zGGWzh$zjTRS(j9)TrL-Tdbagq%c@prg-}OHsKhonfZ-HEW&no{U)SstH3w?K zQV@GjH26L<3_h-2T4HNg1RtV_W008ON_IKkGsC=jqwspYZnf3ws#dIYXAYqVe2i(r zqivOBGGrqNs5cjisa>zvx@~5~TYADK>QF4lLKLVajzXcTF3W;pkdh6rnTdcBxh9j@ zYbust#&D}&ii*nCYEr7NuU9MmdGw$+7K548TI<$SbtwyjtyK|ORt2Qimb5Dhw{0`C zwlOHq5X%@7A@U235ufE6$#Iwr#b{dUX@_kfInYt`9aeJ+6WRQw!3IedE2ftDM`>pw z0{8FYZSYPo@#fh5{G*VQNh4-8>2%OMxjgS0lMb$(#vxs5dkz-Gtd|=>1JlNiJ66C= z=*ErJ6yC7j!flm4S|uJn1e7Un{Ehm0Ptue_%=O0m{#LWmo1qd;9wA?WOdhAn|Be9) zzWb+e&)hht@ZG>7ykTTMfCPZ^(ivyiBL+QN5;=)d_I~*sjB@IGCe-0@v)Ctw7`8}r zobUVsz%)!b<211gVb8Sb*`6d_IXETN?fjFIsO7ltv!J|>50YSb>b5Xt_f8h9d)#tN zUTw4UqnrdgkFx7|8V_|-b{?<4PkBzhx~ZelVO);A!D28@Mj$$o5+=1pkfve^p(G)G zZ}+^pK*~}C@Q~(geIJAq+ZH0oK#WqlV^z>$4B@9Q*UYtFRxkn@)~!f4D=3ERCR>Y_ z>!(j&{sH5UfB5k9^aP+@HzA>fVkt|prIb=iNi-s(NlGcpvMy!0ESIOt)6>)C^0X|A zu9vc|C3&UGVx?$WwB;~Gx_^0kPwNp!0%;yr zoUwE7K_Z;cbSODyXCx!iA7u>wrh`@{s)z_og2_$=M8e}RP?vq>aT2amm1(gh7^IW2 z33p<3bivx$IF-3tv0|GyR7RaRkMuHf$Dm=hwGRHc597kS60)sT1k)4R5FW* zH?Q83pj=8x8chl@viw3(vdih|D$zCyxvrh+VQOlK0E4AyxF}G}gwn!WYnO{s#9Mv} z&3Q#@9>G!y1@6*XRTxyfF+*Ks@7+zzWV_Zxz?f|r!-gO}f)Uh`u_mE{r68x1I=gc9 zpqTVUm0D%19udt$y15S7v--F!OKVJULm{{s^EsXaMy&~%-wJQi94JJkMN2!^OKKe3%u9ozA^Lp zO)}bhfzAocz#9o_yg8HqyWx#*ifH(Tl=rBYd_Z-@#NM6P#wluL*Gc7JcQV%8)B1KS zVeTx>WQn6;=wi!c8cp?mkM}qdfA-D}a|+Myz??2#w+biBCek;k+nyPVI0DNK+Ubd+ zg0F&IWR{MkZX{(Mvp3S{Ely8Uw;Ok(0>{JZPrKU@)fyHBn0K^UBspN?9y#izqxpC!h+{P3jg) zSuSfS1tRV>Pk9u6{)@5B6Z_-+{Xs_Gn#`gY)=l37pC@}$Rm4;m5$lwbWUmO4w4rLL@0H>E-VLEt)oj~pHiaU>Kx>g8p_)c`imlu|1sFMs zN=AqcYp;C*sYP0=+H>8~>3i|N(}DH<+7w*M^VkN*J7OxR)%>=0yFMIgtq6Gbs=28)XhV5;8i9PR47DSYyDD3 zx{bKIXE+=q(h~knY-5&y%+$8GxD9#EJ7EsMj;+dVock#1vyR}D-geZz-2@$XX&W~` zkLe7xr_jp{T#Se62SDEJFs7h~N3h4J)7_f#aP;_gN&W^Q6ptqHzoY*15uJr^Hz@f2 zNr`+ zIl}<&r=gR!DG{Hm7ZDNs+Uqq0VG7&T%cAK*ov*n=P#S;^7K^7lEhWLT+E%6D5b0` zGB)M&>o1>Qeie!LAKoqNno>{8*mMy9MT-i|(%sxl4XS2X*X6RTm*ukBa#=6$KYVz8 zdRo`@a=EO_x~v`NSl5zN4c(>2V_)sYr74hYoX26Ezd0TjH3{!3=#h-0=;`#@^I38D z5rpUYKiu7*5O^DgV4Ybh!_zDqJLhl)%e$P7YGUsgqdn8U11OC|UI!t(-Cc!d0To+ zOle=egX99?ylR|rKds}Bh~v*@wZOhu^%&WJAHou zX$)HqnIg7tlTM}~HtzWgI6~GA1pP+%aWoB>yteU`l6pE}%~$9lBydmYkcTvpN7a^( z)Sve>8U8bd8V@o}CLSPX`RMs=`5WHq+XC8$T-L)F?q*sc=Mmfa%A7q~aEgE3k5-&# zBIi7_9^0}v@{xIK=%+67MqNb!jNOJ~I)LAt*n1Q#rm#OAK)`7TGGsJ3skG*cAUF_? z9N_GYO9;ug`Ox!+9|zDp0cY%I2Rv{WHakVU?%2mr!sr|ii{rB#bM&K_jK~5E8*}W@ zGQ;O|e}MCNJxriw?yUNpAd|#B_KY!r^JA7fN7^j*PadQvHT4K*cJ|@=@W4pRQIik= z+ZJ{6jAk_zcdISb(gI69e!SM!p5I+;(Xp1aHg2`0i$->Rn{WU4<*%>X^}~nvfBNH3 zX4Yyu#0ki~xSOW|P_rx>MT=Qk*UQu8Xq zC%6Y>R9r+ZK<$RV6b83iTXP7k7&P�d-6g_r3eY4JaEDnMj)guEy3Pgthtgbu%q% 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
  • i-e>*?iotE-)*|2X`?qu7x-+%ufck9Ea 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ⅈ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 Nr6{Wgsg^bk{69weS*`#8 literal 0 HcmV?d00001 diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Img/logo.png b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8236a42a085f96e3f8f6be85c1a1072952163344 GIT binary patch literal 17587 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౐}_{#Fbir3iJLSbus7^XOdr$XIOx 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 M07*qoM6N<$f>ksutN;K2 literal 0 HcmV?d00001 diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Img/springNet_release.png b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Img/springNet_release.png new file mode 100644 index 0000000000000000000000000000000000000000..a2f9f65cf8501e6a3978e9e9b621c3503713d8eb GIT binary patch literal 22673 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 literal 0 HcmV?d00001 diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Shared/MasterPage.master b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Shared/MasterPage.master new file mode 100644 index 00000000..4d24b77c --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Shared/MasterPage.master @@ -0,0 +1,45 @@ +<%@ Master Language="C#" AutoEventWireup="true" Inherits="Shared_MasterPage" Codebehind="MasterPage.master.cs" %> + + + + Spring.NET NHibernate Northwind Example + + + +
    + +
    +
    + + + + + + + + + + + + +
    + +
    + Goes Northwind
    with NHibernate +
    +
    +
    + + + +
    +
    +
    +
    +
    + + + diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Shared/MasterPage.master.cs b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Shared/MasterPage.master.cs new file mode 100644 index 00000000..fe86ea4c --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Shared/MasterPage.master.cs @@ -0,0 +1,9 @@ +using System; + +public partial class Shared_MasterPage : System.Web.UI.MasterPage +{ + protected void Page_Load(object sender, EventArgs e) + { + + } +} diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Shared/MasterPage.master.designer.cs b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Shared/MasterPage.master.designer.cs new file mode 100644 index 00000000..bde2a7ed --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Shared/MasterPage.master.designer.cs @@ -0,0 +1,32 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:2.0.50727.5448 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + + + +public partial class Shared_MasterPage { + + /// + /// form1 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// content control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::System.Web.UI.WebControls.ContentPlaceHolder content; +} diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Spring.Northwind.Web.ConvWA.2008.csproj b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Spring.Northwind.Web.ConvWA.2008.csproj new file mode 100644 index 00000000..5a8403d6 --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Spring.Northwind.Web.ConvWA.2008.csproj @@ -0,0 +1,238 @@ + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {8DCDA20D-DF9F-4723-9649-BC6934B36DC4} + {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} + Library + Properties + Spring.Northwind.Web + Spring.Northwind.Web + v3.5 + + + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\ + TRACE + prompt + 4 + + + + False + ..\..\..\..\..\bin\net\3.5\debug\Common.Logging.dll + + + False + ..\..\lib\net\2.0\Common.Logging.Log4Net.dll + + + False + ..\..\..\..\..\lib\NHibernate32\net\3.5\Iesi.Collections.dll + + + False + ..\..\lib\net\2.0\log4net.dll + + + False + ..\..\..\..\..\lib\NHibernate32\net\3.5\NHibernate.dll + + + False + ..\..\..\..\..\bin\net\3.5\debug\Spring.Aop.dll + + + False + ..\..\..\..\..\bin\net\3.5\debug\Spring.ConversationWA.NH32.dll + + + False + ..\..\..\..\..\bin\net\3.5\debug\Spring.Core.dll + + + False + ..\..\..\..\..\bin\net\3.5\debug\Spring.Data.dll + + + False + ..\..\..\..\..\bin\net\3.5\debug\Spring.Data.NHibernate32.dll + + + False + ..\..\..\..\..\bin\net\3.5\debug\Spring.Web.dll + + + + + 3.5 + + + 3.5 + + + False + ..\..\lib\net\2.0\System.Data.SQLite.DLL + + + 3.5 + + + 3.5 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ASPXCodeBehind + + + CustomerEditor.aspx + + + CustomerList.aspx + + + CustomerOrders.aspx + + + CustomerView.aspx + + + Default.aspx + + + FulfillmentResult.aspx + + + + + CustomerEditor.aspx + ASPXCodeBehind + + + CustomerList.aspx + ASPXCodeBehind + + + CustomerOrders.aspx + ASPXCodeBehind + + + CustomerView.aspx + ASPXCodeBehind + + + Default.aspx + ASPXCodeBehind + + + FulfillmentResult.aspx + ASPXCodeBehind + + + MasterPage.master + ASPXCodeBehind + + + MasterPage.master + + + + + + + + + + + {6E4F55A0-C281-4706-A08B-BDEC2D2FBDA4} + Spring.Northwind.Dao.NHibernate.2008 + + + {7F45EEA2-50AC-44E2-85A6-2FFB02E38C44} + Spring.Northwind.Dao.2008 + + + {9E15876F-E9E0-43B7-9874-B54F163757D6} + Spring.Northwind.Service.2008 + + + + + + + + + + + + + + + + + + + + False + True + 60934 + / + + + False + False + + + False + + + + + + copy "$(ProjectDir)Web.net30.config" "$(ProjectDir)Web.config" /Y + + \ No newline at end of file diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Spring.Northwind.Web.ConvWA.2010.csproj b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Spring.Northwind.Web.ConvWA.2010.csproj new file mode 100644 index 00000000..2d65b1fb --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Spring.Northwind.Web.ConvWA.2010.csproj @@ -0,0 +1,235 @@ + + + + Debug + AnyCPU + 9.0.30729 + 2.0 + {8EEAB62E-DBAF-4C5F-9906-77B2A817F945} + {349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc} + Library + Properties + Spring.Northwind.Web + Spring.Northwind.Web + v4.0 + + + 3.5 + + + false + + + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\ + TRACE + prompt + 4 + + + + False + ..\..\..\..\..\bin\net\4.0\debug\Common.Logging.dll + + + False + ..\..\lib\net\2.0\Common.Logging.Log4Net.dll + + + False + ..\..\..\..\..\lib\NHibernate32\net\4.0\Iesi.Collections.dll + + + False + ..\..\lib\net\2.0\log4net.dll + + + ..\..\..\..\..\lib\NHibernate32\net\4.0\NHibernate.dll + + + False + ..\..\..\..\..\bin\net\4.0\debug\Spring.Aop.dll + + + ..\..\..\..\..\bin\net\4.0\debug\Spring.ConversationWA.NH32.dll + + + False + ..\..\..\..\..\bin\net\4.0\debug\Spring.Core.dll + + + False + ..\..\..\..\..\bin\net\4.0\debug\Spring.Data.dll + + + False + ..\..\..\..\..\bin\net\4.0\debug\Spring.Data.NHibernate32.dll + + + False + ..\..\..\..\..\bin\net\4.0\debug\Spring.Web.dll + + + + + + False + ..\..\lib\net\2.0\System.Data.SQLite.DLL + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ASPXCodeBehind + + + CustomerEditor.aspx + + + CustomerList.aspx + + + CustomerOrders.aspx + + + CustomerView.aspx + + + Default.aspx + + + FulfillmentResult.aspx + + + + + CustomerEditor.aspx + ASPXCodeBehind + + + CustomerList.aspx + ASPXCodeBehind + + + CustomerOrders.aspx + ASPXCodeBehind + + + CustomerView.aspx + ASPXCodeBehind + + + Default.aspx + ASPXCodeBehind + + + FulfillmentResult.aspx + ASPXCodeBehind + + + MasterPage.master + ASPXCodeBehind + + + MasterPage.master + + + + + + + + + + + {6E4F55A0-C281-4706-A08B-BDEC2D2FBDA4} + Spring.Northwind.Dao.NHibernate.2010 + + + {7F45EEA2-50AC-44E2-85A6-2FFB02E38C44} + Spring.Northwind.Dao.2010 + + + {9E15876F-E9E0-43B7-9874-B54F163757D6} + Spring.Northwind.Service.2010 + + + + + + + + + + + + + + + + + + False + True + 60934 + / + + + False + False + + + False + + + + + + copy "$(ProjectDir)Web.net40.config" "$(ProjectDir)Web.config" /Y + + \ No newline at end of file diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Web.config b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Web.config new file mode 100644 index 00000000..3b9cfa3f --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Web.config @@ -0,0 +1,73 @@ + + + + + +
    + + +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Web.net30.config b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Web.net30.config new file mode 100644 index 00000000..875cea62 --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Web.net30.config @@ -0,0 +1,74 @@ + + + + + +
    + + +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Web.net40.config b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Web.net40.config new file mode 100644 index 00000000..3b9cfa3f --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Web.net40.config @@ -0,0 +1,73 @@ + + + + + +
    + + +
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Web.xml b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Web.xml new file mode 100644 index 00000000..250282e9 --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/Web.xml @@ -0,0 +1,135 @@ + + + + + + + The Northwind web layer definitions + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + conversationManager + + + + + + + + + diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/port_conversation.txt b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/port_conversation.txt new file mode 100644 index 00000000..7e0c3a12 --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/port_conversation.txt @@ -0,0 +1,196 @@ + I prepared the sample application and posted in +https://jira.springsource.org/browse/SPRNET-1431 as the file +"Spring.ConversationWA.example.zip.". + Below explanations to clarify (or not) what I did. + + This "sample application" is a modification of "Spring.Data.NHibernate.Northwind" +contained in the version "1.3.0" of "Spring.NET" to use Conversation. + Currently, the "Spring.Net" has no "conversation scope" or implements the +concept of "Extended Persistence Context" ("session per conversation strategy"). + +In this Sample Application the objective is demonstrate: +1) How to keep instances of objects in a mimicry of "conversation scope". + Shown in [expression="@(convCustomer)['CustomerEditController']"]. +2) How to enjoy the "extended persistence context". "Lazy load errors" do not happen + anymore and repeated calls of "ISession.Get" to a "same record" do not cause + numerous visits to the database, we take advantage of NHibernatecache. + The modifications on "CustomerList.aspx" demonstrate this. + To verify the effectiveness of Conversation, comment on + "App_Code\ConversationPage.cs" the line + "this.Conversation.StartResumeConversation ();" then you will see the error + "failed to lazily initialize a collection of role" occurring at the click + of the button "+" on "CustomerList.aspx". + + +IMPORTANT: Never use a single conversation for the entire application (with the + same duration of the "HTTP Session"). Remember, NHibernate keeps a cache of all + loaded objects, if the conversation is held for a long time this cache tends to + grow indefinitely (the limit is the amount of database records). That is, each + conversation should be limited to a subset of the application pages, and must + be discarded at the end of interaction with this subset + (IConversationState.EndConversation()). + In "Spring.ConversationWA.Imple.WebConversationManager" keep + [] is recommended, so when you start + a conversation the others are discarded. + +ADDITIONAL INFORMATION: The unit tests ("Spring.Northwind.IntegrationTests.2008") + are not working. But there is no problem because it is not related to the + changes made to support conversation, in fact they were already resulting in + errors even before that. + + +List of changes in "Spring.Data.NHibernate.Northwind": + + -Spring.Northwind.Web.References.2008 + Adding links to schemes to enable auto complete. + -web.config + -module, added: + + + -module, removed: + + + -web.xml + -module configurations + + + + + + + + + + + conversationManager + + + + + + + + + -conversation manager + + + + + + -Customer Conversation + + + + + + + + + + + + + -Change "CustomerEditController" scope, remove [scope="session"] and put [singleton="false"]: + + + + ... + + -Change reference for 'CustomerEditController' remove [ref="CustomerEditController"] and put [expression="@(convCustomer)['CustomerEditController']"] + + + + + + ... + + + + + + + + + + + + + ... + + + + + + + + + + + + ... + + + + + + + + + ... + + + + + + + + + + + -Added "ConversationPage.cs" + -Base page with support for conversation. + -CustomerList.aspx + -Allow list the "Order's" on the same page without lazy initialization error + occurs. All objects stay attached to ISession (NHibernate). + -CustomerList.aspx.cs: + -Added property "IList CustomersDetachedList". List not attached. + Searching the database only once per conversation. + -Changing the "Page_InitializeControls" for consider "CustomersDetachedList". + -Change "Page_InitializeControls" to "Page_Init". + -The method "BtnShowOrders_Click" performe a implicitly a "lazy load" on + "Customer.Orders". + -Change [CustomerEditor : Spring.Web.UI.Page] to [CustomerEditor : Spring.Web.UI.Page] on: + -CustomerEditor.aspx.cs + -CustomerList.aspx.cs + -CustomerOrders.aspx.cs + -CustomerView.aspx.cs + -FullfillmentResult.aspx.cs + -Default.aspx.cs + -Dao.xml + - Added [] to avoid + disconnection and reconnection before and after each IDbCommand execution. + This is important because we will do more lazyload outside the transaction + boundaries. + - Added: + ... + + + ... + -Default.aspx.cs + -Remove (they are never used): + -customerDao; + -fulfillmentService; + -CustomerDao; + -Button1_Click(object sender, EventArgs e); + -ProcessCustomer(); + -Config\Log4Net.xml. + ... + + + + + ... + + + + diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app.htm b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app.htm new file mode 100644 index 00000000..bb9c286d --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app.htm @@ -0,0 +1,1255 @@ + + + + + + + .net - Nhibernate session per conversation example - Stack Overflow + + + + + + + + + + + + + + + + + + + + + +
    +
    +
    + +
    + + + + + +
    + + + + +
    + + +
    + + +
    + +
    +
    + + + + + + + + + + + +
    + + + + + +
    +
    +

    Hello can some pros with nhibernate give me example +implementation of Nhibernate session per conversation or unhaddins +implementation? +Or explain how to do that. +Best regards +Endiss

    + +
    + + + + + + + +
    +
    link|improve this question
    +
    + + +
    + +
    +
    +
    +
    + + + + + + + + + + +
    Added tags to increase visibility – EtherDragon 20 hours ago
    +
    + + +
    + feedback +
    + +
    +
    + + + +
    + + +
    +
    +

    1 Answer

    +
    + active +oldest +votes + +
    +
    +
    + + + + +
    + + + + + + + + + + + +
    + + +
    + + up vote + 1 + down vote +accepted +
    + +
    +

    I work with NHibernate to 4 years. Previously I worked with the "open-session-per-operation" antipattern. + The objects were always detached. So, to persist, I had to reattach +them or copy their values to attached objects. This causes many lines of + code and many "lazy initialization exeption".

    + +

    Recently, I studied the "Conversation pattern" and I did an implementation over the the "Spring.Net" infrastructure. The implementation was submitted to "jira.springsource" at the Issue SPRNET-1431 (Workaround for 'conversation scope' and "session-per-conversation").

    + +

    I made no "sample application", but if you're interested I can do that.

    + +

    Hailton

    + +

    Supplementary Answer:

    + +

    I prepared the sample application and posted in SPRNET-1431 Workaround for 'conversation scope' and "session-per-conversation" as the file "Spring.ConversationWA.example.7z".

    + +

    Below, I wrote explanations to clarify (or not) what I did.

    + +

    This "sample application" is a modification of +"Spring.Data.NHibernate.Northwind" contained in the version "1.3.0" of +"Spring.NET" to use Conversation. + Currently, the "Spring.Net" has no "conversation scope" nor implements + the concept of "Extended Persistence Context" ("session per +conversation strategy").

    + +

    In this Sample Application the objective is demonstrate:

    + +
      +
    1. How to keep instances of objects in a mimicry of "conversation scope". Shown in expression="@(convCustomer)['CustomerEditController']".
    2. +
    3. How to enjoy the "extended persistence context". "Lazy load errors" do not happen anymore and repeated calls to ISession.Get + to a "same record" do not cause numerous visits to the database, more +efficient use of the NHibernate cache. The modifications on +"CustomerList.aspx" demonstrate this. To verify the effectiveness of +Conversation, comment on "App_Code\ConversationPage.cs" the line this.Conversation.StartResumeConversation(); + then you will see the error "failed to lazily initialize a collection +of role" occurring at the click of the button "+" on +"CustomerList.aspx".
    4. +
    + +

    IMPORTANT: Never use a single conversation for the entire application + (with the same duration of the "HTTP Session"). Remember, NHibernate +keeps a cache of all loaded objects, if the conversation is held for a +long time this cache tends to grow indefinitely (the limit is the amount + of database records). That is, each conversation should be limited to a + subset of the application pages, and must be discarded at the end of +interaction with this subset (IConversationState.EndConversation()). Recommendation: Keep <property name="EndPaused" value="true"/> in "Spring.ConversationWA.Imple.WebConversationManager", so when start a conversation the others are discarded.

    + +

    ADDITIONAL INFORMATION: The unit tests +("Spring.Northwind.IntegrationTests.2008") are not working. But there is + no problem because it is not related to the changes made to support +conversation, in fact they were already resulting in errors even before +that.

    + +

    List of changes in "Spring.Data.NHibernate.Northwind":

    + +
      +
    • Spring.Northwind.Web.References.2008 +
        +
      • Adding links to schems to enable auto complete.
      • +
    • +
    • web.config

      + +
        +
      • module, added: +

        + +
        <add 
         
        name="ConversationModule"
         
        type="Spring.ConversationWA.HttpModule.ConversationModule, Spring.ConversationWA"/>  
        <add
         
        name="ConversationModule"
         
        type="Spring.ConversationWA.HttpModule.ConversationModule, Spring.ConversationWA"/>
      • +
      • module, removed: +

        + +
        <add 
         
        name="OpenSessionInView"
         
        type="Spring.Data.NHibernate.Support.OpenSessionInViewModule, Spring.Data.NHibernate21"/>
      • +
    • +
    • web.xml

      + +
        +
      • module configurations +

        + +
        <!--Configuration for Spring HttpModule interceptor's-->
        <object
           
        name="HttpApplicationConfigurer"
           
        type="Spring.Context.Support.HttpApplicationConfigurer, Spring.Web">
         
        <property name="ModuleTemplates">
           
        <dictionary>
             
        <entry key="ConversationModule">
               
        <!-- this name must match the module name -->
               
        <object>
                 
        <!--
                  select "view source" in your browser on any page to
                  see the appended html comment
                  -->

                 
        <property name="ConversationManagerNameList">
                   
        <list element-type="string">
                     
        <value>conversationManager</value>
                   
        </list>
                 
        </property>
               
        </object>
             
        </entry>
           
        </dictionary>
         
        </property>
        </object>
      • +
      • conversation manager +

        + +
        <!--Conversation Manager-->
        <object
           
        name="conversationManager"
           
        type="Spring.ConversationWA.Imple.WebConversationManager, Spring.ConversationWA"
           
        scope="session">
         
        <property name="SessionFactory" ref="NHibernateSessionFactory"/>
         
        <property name="EndPaused" value="true"/>
        </object>
      • +
      • Customer Conversation +

        + +
        <!--
         Conversation for 'CustomerEditor.aspx', 'CustomerList.aspx',
         'CustomerOrders.aspx', 'CustomerView.aspx',  and 'FulfillmentResult.aspx'
        -->

        <!--
         Important: If the application had other parties
         ("management employees" for example), they should use another
         conversation.
        -->

        <object
           
        name="convCustomer"
           
        type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA"
           
        scope="session">
         
        <property name="Id" value="convCustomer"></property>
         
        <property name="TimeOut" value="0"></property>
         
        <property name="ConversationManager" ref="conversationManager"></property>
         
        <property name="SessionFactory" ref="NHibernateSessionFactory"/>
         
        <property name="DbProvider" ref="DbProvider"/>
         
        <!--
            Using workaround for 'conversation scope' to reference for
            'CustomerEditController'. It is not as volatile as "request scope"
            not as durable as the "session scope"
          -->

         
        <property name="['CustomerEditController']" ref="CustomerEditController"></property>
        </object>
      • +
      • Change "CustomerEditController" scope, remove [scope="session"] and put [singleton="false"]: +

        + +
        <object 
           
        name="CustomerEditController"
           
        type="NHibernateCustomerEditController"
           
        singleton="false">
         
        <constructor-arg name="sessionFactory" ref="NHibernateSessionFactory"/>
        </object>
        ...
      • +
      • Change reference for "CustomerEditController", remove ref="CustomerEditController" and put expression="@(convCustomer)['CustomerEditController']" (Simulating "conversation scope"): +

        + +
        <!--
          Using workaround for 'conversation scope' to reference for
          'CustomerEditController'. It is not as volatile as "request scope"
          not as durable as the "session scope"
        -->

        <object name="CustomerEditPage" abstract="true">
         
        <property
           
        name="CustomerEditController"
           
        expression="@(convCustomer)['CustomerEditController']"/>
         
        <property name="Conversation" ref="convCustomer"/>
        </object>
      • +
    • +
    + +
            <!--
              Using workaround for 'conversation scope' to reference for
              'CustomerEditController'. It is not as volatile as "request scope"
              not as durable as the "session scope"
            -->

           
    <object type="CustomerView.aspx">
             
    <property name="CustomerDao" ref="CustomerDao" />
             
    <property
               
    name="CustomerEditController"
               
    expression="@(convCustomer)['CustomerEditController']" />
             
    <property name="Conversation" ref="convCustomer"/>
             
    <property name="Results">
               
    <dictionary>
                 
    <entry key="EditCustomer" value="redirect:CustomerEditor.aspx" />
                 
    <entry key="CustomerList" value="redirect:CustomerList.aspx" />
               
    </dictionary>
             
    </property>
           
    </object>
    + +
            <!--
              Using workaround for 'conversation scope' to reference for
              'CustomerEditController'. It is not as volatile as "request scope"
              not as durable as the "session scope"
            -->

           
    <object type="FulfillmentResult.aspx">
             
    <property name="FulfillmentService" ref="FulfillmentService" />
             
    <property
               
    name="CustomerEditController"
               
    expression="@(convCustomer)['CustomerEditController']" />
             
    <property name="Conversation" ref="convCustomer"/>
             
    <property name="Results">
               
    <dictionary>
                 
    <entry key="Back" value="redirect:CustomerOrders.aspx" />
               
    </dictionary>
             
    </property>
           
    </object>
    + +
            <object type="Default.aspx">
             
    <property name="Conversation" ref="convDefault"/>
             
    <property name="Results">
               
    <dictionary>
                 
    <entry key="CustomerList" value="redirect:CustomerList.aspx" />
               
    </dictionary>
             
    </property>
           
    </object>
    + +
            <!--Conversation for 'Default.aspx'-->
           
    <!--
              "convDefault" will have only one functionality: trigger the release
              of other conversations when started (StartResumeConversation())
            -->

           
    <object
               
    name="convDefault"
               
    type="Spring.ConversationWA.Imple.WebConversationSpringState, Spring.ConversationWA"
               
    scope="session">
             
    <property name="Id" value="convDefault"></property>
             
    <property name="TimeOut" value="0"></property>
             
    <property name="ConversationManager" ref="conversationManager"></property>
             
    <property name="SessionFactory" ref="NHibernateSessionFactory"/>
             
    <property name="DbProvider" ref="DbProvider"/>
           
    </object>
    + +
      +
    • Added "ConversationPage.cs". Base page with support for conversation.
    • +
    • CustomerList.aspx +
        +
      • Allow list the "Order's" on the same page without "lazy +initialization error". All objects stay attached to ISession +(NHibernate).
      • +
    • +
    • CustomerList.aspx.cs: +
        +
      • Added property IList<Customer> CustomersLoadedOncePerConvList. List loaded only once, searching the database only once per conversation.
      • +
      • Changing the Page_InitializeControls for consider CustomersLoadedOncePerConvList.
      • +
      • The method BtnShowOrders_Click performe implicitly a "lazy load" on Customer.Orders.
      • +
    • +
    • Change ??? : Spring.Web.UI.Page to ??? : Spring.Web.UI.Page on: +
        +
      • CustomerEditor.aspx.cs
      • +
      • CustomerList.aspx.cs
      • +
      • CustomerOrders.aspx.cs
      • +
      • CustomerView.aspx.cs
      • +
      • FullfillmentResult.aspx.cs
      • +
      • Default.aspx.cs
      • +
    • +
    • Dao.xml

      + +
        +
      • Added <entry key="connection.release_mode" value="on_close"/> + to avoid disconnection and reconnection before and after each +IDbCommand execution. This is important because we will do more lazyload + outside the transaction boundaries.
      • +
      • Added: +

        + +
        ...
        <entry key="show_sql" value="true"/>
        <entry key="format_sql" value="true"/>
        ...
      • +
    • +
    • Remove from "Default.aspx.cs" (they are never used):

      + +
        +
      • customerDao;
      • +
      • fulfillmentService;
      • +
      • CustomerDao;
      • +
      • Button1_Click(object sender, EventArgs e);
      • +
      • ProcessCustomer();
      • +
    • +
    • Config\Log4Net.xml. +

      + +
      ...
      <!--detail's about SQL's. To view sql commands on Logs\log.txt-->
      <logger name="NHibernate.SQL">
       
      <level value="DEBUG" />
      </logger>
      ...
      <!--detail's about Conversation-->
      <logger name="Spring.ConversationWA">
        <level value="DEBUG" /
      >
      </logger>
    • +
    + +

    Hailton de Castro.

    +
    + + + + + + + + +
    +
    link|improve this answer
    + + + + +
    +
    +
    + + + + + + + + + + +
    Can you make some sample it will help me a lot :) – Endiss yesterday
    +
    + + +
    Was this post useful to you?     
    + +
    +
    + + + + + + + +
    +
    + + + + +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app.pdf b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app.pdf new file mode 100644 index 0000000000000000000000000000000000000000..9899e331615676898c53214713f73a3fa66d3459 GIT binary patch literal 58235 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 literal 0 HcmV?d00001 diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app_arquivos/4c4f1be011a447efbce49c1811022e7a.png b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app_arquivos/4c4f1be011a447efbce49c1811022e7a.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8b581a6483b357fa1f8582c5031c94caa9a504 GIT binary patch literal 12197 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 b$x8nNjO!ISb~pGl00000NkvXXu0mjfN1j*X literal 0 HcmV?d00001 diff --git a/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app_arquivos/adzerk1_2_4_43adzerk2_2_17_45.js b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app_arquivos/adzerk1_2_4_43adzerk2_2_17_45.js new file mode 100644 index 00000000..ba3cc4de --- /dev/null +++ b/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web.ConvWA/readme/sof_aboult_samble_app_arquivos/adzerk1_2_4_43adzerk2_2_17_45.js @@ -0,0 +1 @@ + function cssLoad(css){var s=document.createElement('style');document.getElementsByTagName('head')[0].appendChild(s);if(!!window.ActiveXObject){document.styleSheets[document.styleSheets.length-1].cssText=css;}else{stylenode=document.createTextNode(css);s.appendChild(stylenode);}}function azHtmlLoad(div,content){var azDiv=document.getElementById(div);azDiv.innerHTML=content;}function azScriptSRCLoad(div,script){var newScript=document.createElement('script');newScript.type='text/javascript';newScript.src=script;var azDiv=document.getElementById(div);azDiv.appendChild(newScript);}function azScriptInlineLoad(div,script,interval){var newScript=document.createElement('script');newScript.type='text/javascript';if(/msie/.test(navigator.userAgent.toLowerCase())){newScript.text=script;}else{newScript.innerHTML=script;}var azDiv=document.getElementById(div);azDiv.appendChild(newScript);}function azLoad(div,code){var azDiv=document.getElementById(div);if(azDiv){code();}else {setTimeout(function(){azLoad(div,code)},100);}}var zItems=[];function zshow(div){if(zItems[div]){document.write(zItems[div]);}}function ados_frameLoaded(x, y) {};function ados_loadFIframe(a,b,c,d,e){adzerkDiv=document.getElementById(a);ifrm=document.createElement("iframe");ifrm.frameBorder=0;ifrm.scrolling="no";ifrm.noresize="noresize";ifrm.marginheight=0;ifrm.marginwidth=0;if(d!=0){ifrm.height=d}if(e!=0){ifrm.width=e}ifrm.onload=function(){ados_frameLoaded(a,c)};adzerkDiv.innerHtml="";adzerkDiv.appendChild(ifrm);ifrm.contentWindow.contents='