diff --git a/.gitignore b/.gitignore
index cbb98db..75874de 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,4 +4,10 @@ bin/
obj/
src/WebApplication/node_modules/
*.xproj.user
-*.lock.json
\ No newline at end of file
+*.lock.json
+*.dll
+*.pdb
+*.log
+tools/
+packages/
+artifacts/
\ No newline at end of file
diff --git a/LICENSE.txt b/LICENSE.txt
index b864880..f740c05 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -1,4 +1,4 @@
-Copyright © 2015 Dmitry Sikorsky. All rights reserved.
+Copyright © 2017 f7q. All rights reserved.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use
these files except in compliance with the License. You may obtain a copy of the
@@ -9,4 +9,6 @@ http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed
under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied. See the License for the
-specific language governing permissions and limitations under the License.
\ No newline at end of file
+specific language governing permissions and limitations under the License.
+
+Fork by Product http://github.com/ExtCore/ExtCore
diff --git a/NuGet.config b/NuGet.config
new file mode 100644
index 0000000..154a770
--- /dev/null
+++ b/NuGet.config
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/README.md b/README.md
index 01dd987..35fe9ac 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,8 @@
-# ExtCore 1.0.0-alpha9 Sample
-
-[](https://gitter.im/ExtCore/ExtCore?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+# ExtCore 1.0.0-alpha901 Sample
## Introduction
-[ExtCore](https://github.com/ExtCore/ExtCore) is free, open source and cross-platform framework for creating
+[ExtCore](https://github.com/f7q/ExtCore) is free, open source and cross-platform framework for creating
modular and extendable web applications based on ASP.NET Core. It is built using the best and the most modern
tools and languages (Visual Studio 2015, C# etc). Join our team!
@@ -36,19 +34,6 @@ All you need to do to have modular and extendable web application is:
Please take a look at this sample.
-You can also download our [ready to use sample](http://extcore.net/files/ExtCore-Sample-1.0.0-alpha9.zip).
-It contains everything you need to run ExtCore-based web application from Visual Studio 2015, including SQLite
+You can also download our [ready to use sample](https://github.com/f7q/ExtCore-Sample).
+It contains everything you need to run ExtCore-based web application from Visual Studio 2017, including SQLite
database with the test data.
-
-### Projects
-
-Please take a look at [Platformus](https://github.com/Platformus/Platformus) on GitHub. It is CMS
-built on ExtCore framework with 8 extensions and 58 projects.
-
-## Links
-
-Sources on GitHub: https://github.com/ExtCore/ExtCore
-
-Website: http://extcore.net/ (under construction)
-
-Docs: http://docs.extcore.net/ (under construction)
\ No newline at end of file
diff --git a/WebApplication.sln b/WebApplication.sln
index 7b3ff39..bdb70c8 100644
--- a/WebApplication.sln
+++ b/WebApplication.sln
@@ -1,30 +1,156 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 14
-VisualStudioVersion = 14.0.25420.1
+# Visual Studio 15
+VisualStudioVersion = 15.0.26403.7
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{0D7AEFA3-ABB0-4AF1-A4C1-F8E05C241753}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{ABB81F71-8F88-41F7-A235-9458DB99BB7D}"
- ProjectSection(SolutionItems) = preProject
- global.json = global.json
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ExtensionA", "ExtensionA", "{F92B44CF-63EE-4781-8244-48ACC5386A8C}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ExtensionB", "ExtensionB", "{4EA56716-702B-485A-A23A-10E110A85D78}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NLog", "NLog", "{511BD310-4C03-407B-92EA-34110884C547}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Swagger", "Swagger", "{8327C820-20D1-4095-8771-E03613D1969F}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WebAPI", "WebAPI", "{FDEA400A-7F71-4A17-8419-030D80F74A3F}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Elm", "Elm", "{C49636B1-231E-45A2-8901-10EC68C7CB55}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Script", "Script", "{925D6751-630E-48FF-9AF8-8DA9E09968CF}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "EFCoreRawQuery", "EFCoreRawQuery", "{28B1769B-CEA4-4B6F-B383-8A0FAF22F108}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebApplication", "src\WebApplication\WebApplication.csproj", "{B511B595-A980-4D5C-BC2A-BCCB4065B433}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebApplication.ExtensionA", "src\WebApplication.ExtensionA\WebApplication.ExtensionA.csproj", "{8D722841-4E2C-4673-A7CC-C2690EFE3915}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebApplication.ExtensionB", "src\WebApplication.ExtensionB\WebApplication.ExtensionB.csproj", "{396A8530-C500-469E-9F6F-A2D9C286C47D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebApplication.NLog", "src\WebApplication.NLog\WebApplication.NLog.csproj", "{9E4B65AB-3F34-4C81-B02D-8E5643D2B3B9}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebApplication.Swagger", "src\WebApplication.Swagger\WebApplication.Swagger.csproj", "{95E5595E-410B-4A6D-8822-4C07FDC3CF21}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebApplication.WebAPI", "src\WebApplication.WebAPI\WebApplication.WebAPI.csproj", "{7DE66111-BBB6-4C93-B864-9E65CAFD505B}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebApplication.Elm", "src\WebApplication.Elm\WebApplication.Elm.csproj", "{A5C5400D-DD78-4192-B34B-06D81996F0DA}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebApplication.Script", "src\WebApplication.Script\WebApplication.Script.csproj", "{8DC07B1F-ADAA-492C-8F2D-46B9EE579B44}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WebApplication.EFCoreRawQuery", "src\WebApplication.EFCoreRawQuery\WebApplication.EFCoreRawQuery.csproj", "{9E153732-43ED-4DA7-B464-32C391CC443E}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "DomainModel", "DomainModel", "{CA30C73C-6C4B-410F-AFDB-07A2BCEED456}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DomainModel.Extentions", "src\DomainModel\Extentions\DomainModel.Extentions.csproj", "{95B1064A-D20B-4867-A208-057F54E0F984}"
+ ProjectSection(ProjectDependencies) = postProject
+ {4D5CA518-C87B-4886-BD63-DA3FBDF5DE8F} = {4D5CA518-C87B-4886-BD63-DA3FBDF5DE8F}
+ {C948C12E-D584-46FF-B85C-A81AA341A1ED} = {C948C12E-D584-46FF-B85C-A81AA341A1ED}
+ {F16CCC3E-227F-48ED-95B7-64B39622B530} = {F16CCC3E-227F-48ED-95B7-64B39622B530}
+ {B0AA4F66-55A2-4DA2-A3E6-65824A3EBF38} = {B0AA4F66-55A2-4DA2-A3E6-65824A3EBF38}
+ {BB096868-3D0B-431F-BDF5-37388F1E4D18} = {BB096868-3D0B-431F-BDF5-37388F1E4D18}
+ {37D1D188-9191-4766-8171-678620C702C4} = {37D1D188-9191-4766-8171-678620C702C4}
+ {DE6A91AA-3C4B-4723-8B6B-82E31B5DE127} = {DE6A91AA-3C4B-4723-8B6B-82E31B5DE127}
+ {AF6B52DE-2DB1-4328-9F70-BAFAD7B06C22} = {AF6B52DE-2DB1-4328-9F70-BAFAD7B06C22}
EndProjectSection
EndProject
-Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "WebApplication", "src\WebApplication\WebApplication.xproj", "{B511B595-A980-4D5C-BC2A-BCCB4065B433}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DomainModel.Controllers", "src\DomainModel\Controllers\DomainModel.Controllers.csproj", "{B0AA4F66-55A2-4DA2-A3E6-65824A3EBF38}"
+ ProjectSection(ProjectDependencies) = postProject
+ {4D5CA518-C87B-4886-BD63-DA3FBDF5DE8F} = {4D5CA518-C87B-4886-BD63-DA3FBDF5DE8F}
+ {BB096868-3D0B-431F-BDF5-37388F1E4D18} = {BB096868-3D0B-431F-BDF5-37388F1E4D18}
+ {DE6A91AA-3C4B-4723-8B6B-82E31B5DE127} = {DE6A91AA-3C4B-4723-8B6B-82E31B5DE127}
+ EndProjectSection
EndProject
-Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "WebApplication.ExtensionA", "src\WebApplication.ExtensionA\WebApplication.ExtensionA.xproj", "{8D722841-4E2C-4673-A7CC-C2690EFE3915}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DomainModel.Services", "src\DomainModel\Services\DomainModel.Services.csproj", "{37D1D188-9191-4766-8171-678620C702C4}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ExtensionA", "ExtensionA", "{F92B44CF-63EE-4781-8244-48ACC5386A8C}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DomainModel.Infrastracture.Services", "src\DomainModel\Infrastracture.Service\DomainModel.Infrastracture.Services.csproj", "{DE6A91AA-3C4B-4723-8B6B-82E31B5DE127}"
+ ProjectSection(ProjectDependencies) = postProject
+ {4D5CA518-C87B-4886-BD63-DA3FBDF5DE8F} = {4D5CA518-C87B-4886-BD63-DA3FBDF5DE8F}
+ EndProjectSection
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ExtensionB", "ExtensionB", "{4EA56716-702B-485A-A23A-10E110A85D78}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DomainModel.Infrastracture.Repositorys", "src\DomainModel\Infrastracture.Repository\DomainModel.Infrastracture.Repositorys.csproj", "{BB096868-3D0B-431F-BDF5-37388F1E4D18}"
+ ProjectSection(ProjectDependencies) = postProject
+ {4D5CA518-C87B-4886-BD63-DA3FBDF5DE8F} = {4D5CA518-C87B-4886-BD63-DA3FBDF5DE8F}
+ EndProjectSection
EndProject
-Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "WebApplication.ExtensionB.Data.Models", "src\WebApplication.ExtensionB.Data.Models\WebApplication.ExtensionB.Data.Models.xproj", "{6EB08C04-9CA2-48B7-9404-3188AFA3E2DF}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DomainModel.Repositorys", "src\DomainModel\Repository\DomainModel.Repositorys.csproj", "{C948C12E-D584-46FF-B85C-A81AA341A1ED}"
+ ProjectSection(ProjectDependencies) = postProject
+ {4D5CA518-C87B-4886-BD63-DA3FBDF5DE8F} = {4D5CA518-C87B-4886-BD63-DA3FBDF5DE8F}
+ {BB096868-3D0B-431F-BDF5-37388F1E4D18} = {BB096868-3D0B-431F-BDF5-37388F1E4D18}
+ EndProjectSection
EndProject
-Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "WebApplication.ExtensionB", "src\WebApplication.ExtensionB\WebApplication.ExtensionB.xproj", "{396A8530-C500-469E-9F6F-A2D9C286C47D}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DomainModel.Models", "src\DomainModel\Models\DomainModel.Models.csproj", "{4D5CA518-C87B-4886-BD63-DA3FBDF5DE8F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DomainModel.Infrastracture.Daos", "src\DomainModel\DomainModel.Infrastracture.Daos\DomainModel.Infrastracture.Daos.csproj", "{F16CCC3E-227F-48ED-95B7-64B39622B530}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DomainModel.Daos", "src\DomainModel\DomainModel.Daos\DomainModel.Daos.csproj", "{AF6B52DE-2DB1-4328-9F70-BAFAD7B06C22}"
+ ProjectSection(ProjectDependencies) = postProject
+ {F16CCC3E-227F-48ED-95B7-64B39622B530} = {F16CCC3E-227F-48ED-95B7-64B39622B530}
+ EndProjectSection
EndProject
-Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "WebApplication.ExtensionB.Data.Abstractions", "src\WebApplication.ExtensionB.Data.Abstractions\WebApplication.ExtensionB.Data.Abstractions.xproj", "{922E22BD-10F8-4261-9ACC-9CD10A4C8147}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Package", "Package", "{51171CE2-9F5D-4DF3-B3A8-0CAB3AB537F6}"
EndProject
-Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "WebApplication.ExtensionB.Data.EntityFramework.Sqlite", "src\WebApplication.ExtensionB.Data.EntityFramework.Sqlite\WebApplication.ExtensionB.Data.EntityFramework.Sqlite.xproj", "{AF7B3C14-BC6E-4964-BD0B-5233428349B6}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Package.Extentions", "src\Package\Package.Extentions\Package.Extentions.csproj", "{371DF498-06E5-4E4E-9A1F-59C83D5AB013}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Package.Controllers", "src\Package\Package.Controllers\Package.Controllers.csproj", "{4911558D-1790-4C07-8375-8B26A209BFC2}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Package.Models", "src\Package\Package.Models\Package.Models.csproj", "{633AB8A0-F6CB-4ECF-9AB0-E087B7DCBC2F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Package.Infrastracture.Repositorys", "src\Package\Package.Infrastracture.Repositorys\Package.Infrastracture.Repositorys.csproj", "{E0D7FFAC-116E-422C-8261-33E8DFEE0CBB}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Package.Repositorys", "src\Package\Package.Repositorys\Package.Repositorys.csproj", "{36A51092-10EE-4D1A-B10A-2E0ADDF235D8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Package.Infrastracture.Services", "src\Package\Package.Infrastracture.Services\Package.Infrastracture.Services.csproj", "{8A3F63E4-7DC5-44B0-97B6-3CF14275A31B}"
+ ProjectSection(ProjectDependencies) = postProject
+ {E0D7FFAC-116E-422C-8261-33E8DFEE0CBB} = {E0D7FFAC-116E-422C-8261-33E8DFEE0CBB}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Package.Services", "src\Package\Package.Services\Package.Services.csproj", "{A69333CC-A224-49C7-9107-F00EA30448C4}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PackageCustum", "PackageCustum", "{4F4FE0B9-BADD-456C-A970-799F85FB7AC9}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageCustum.Models", "src\PackageCustum\PackageCustum.Models\PackageCustum.Models.csproj", "{19F406F8-4E9A-4B56-84C6-3E26E22427C5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageCustum.Repositorys", "src\PackageCustum\PackageCustum.Repositorys\PackageCustum.Repositorys.csproj", "{5F2ADE5B-6CC1-47AF-9263-7DC44EE79A6A}"
+ ProjectSection(ProjectDependencies) = postProject
+ {36A51092-10EE-4D1A-B10A-2E0ADDF235D8} = {36A51092-10EE-4D1A-B10A-2E0ADDF235D8}
+ {633AB8A0-F6CB-4ECF-9AB0-E087B7DCBC2F} = {633AB8A0-F6CB-4ECF-9AB0-E087B7DCBC2F}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageCustum.Services", "src\PackageCustum\PackageCustum.Services\PackageCustum.Services.csproj", "{8FD1C854-9C2D-49A9-9BD4-07DBF59F95A9}"
+ ProjectSection(ProjectDependencies) = postProject
+ {E0D7FFAC-116E-422C-8261-33E8DFEE0CBB} = {E0D7FFAC-116E-422C-8261-33E8DFEE0CBB}
+ {8A3F63E4-7DC5-44B0-97B6-3CF14275A31B} = {8A3F63E4-7DC5-44B0-97B6-3CF14275A31B}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageCustum.Controllers", "src\PackageCustum\PackageCustum.Controllers\PackageCustum.Controllers.csproj", "{49616BDF-FD9B-4B58-AAC3-162B56F2EB66}"
+ ProjectSection(ProjectDependencies) = postProject
+ {8FD1C854-9C2D-49A9-9BD4-07DBF59F95A9} = {8FD1C854-9C2D-49A9-9BD4-07DBF59F95A9}
+ {19F406F8-4E9A-4B56-84C6-3E26E22427C5} = {19F406F8-4E9A-4B56-84C6-3E26E22427C5}
+ EndProjectSection
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageCusum.Extentions", "src\PackageCustum\PackageCusum.Extentions\PackageCusum.Extentions.csproj", "{2D12879E-225A-42D6-B8F9-EA02A596AE28}"
+ ProjectSection(ProjectDependencies) = postProject
+ {19F406F8-4E9A-4B56-84C6-3E26E22427C5} = {19F406F8-4E9A-4B56-84C6-3E26E22427C5}
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PackageDefaultCustom", "PackageDefaultCustom", "{A50DAFE1-CE3E-476A-A240-8252FCEC2D8F}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageDefaultCustom.Controllers", "src\PackageDefaultCustom\PackageDefaultCustom.Controllers\PackageDefaultCustom.Controllers.csproj", "{E8B8A9F3-84F1-4031-9958-0462ACCFA8E7}"
+ ProjectSection(ProjectDependencies) = postProject
+ {633AB8A0-F6CB-4ECF-9AB0-E087B7DCBC2F} = {633AB8A0-F6CB-4ECF-9AB0-E087B7DCBC2F}
+ EndProjectSection
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageDefaultCustom.Extentions", "src\PackageDefaultCustom\PackageDefaultCustom.Extentions\PackageDefaultCustom.Extentions.csproj", "{3878E755-0389-4004-9E2B-DD01CC3660CB}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageDefaultCustom.Models", "src\PackageDefaultCustom\PackageDefaultCustom.Models\PackageDefaultCustom.Models.csproj", "{78B4C680-84C8-4DE7-870B-213C8A29EC88}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageDefaultCustom.Repositorys", "src\PackageDefaultCustom\PackageDefaultCustom.Repositorys\PackageDefaultCustom.Repositorys.csproj", "{680BEEDD-716A-42D4-9743-6E17346F09FE}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageDefaultCustom.Services", "src\PackageDefaultCustom\PackageDefaultCustom.Services\PackageDefaultCustom.Services.csproj", "{E9DE4910-4796-4906-AB72-63607448CFDA}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Package.Infrastracture.Controllers", "src\Package\Package.Infrastracture.Controllers\Package.Infrastracture.Controllers.csproj", "{EE2900A8-DD6F-4FFB-9748-6FC0B2EA0F44}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -40,34 +166,194 @@ Global
{8D722841-4E2C-4673-A7CC-C2690EFE3915}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8D722841-4E2C-4673-A7CC-C2690EFE3915}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8D722841-4E2C-4673-A7CC-C2690EFE3915}.Release|Any CPU.Build.0 = Release|Any CPU
- {6EB08C04-9CA2-48B7-9404-3188AFA3E2DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6EB08C04-9CA2-48B7-9404-3188AFA3E2DF}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6EB08C04-9CA2-48B7-9404-3188AFA3E2DF}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6EB08C04-9CA2-48B7-9404-3188AFA3E2DF}.Release|Any CPU.Build.0 = Release|Any CPU
{396A8530-C500-469E-9F6F-A2D9C286C47D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{396A8530-C500-469E-9F6F-A2D9C286C47D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{396A8530-C500-469E-9F6F-A2D9C286C47D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{396A8530-C500-469E-9F6F-A2D9C286C47D}.Release|Any CPU.Build.0 = Release|Any CPU
- {922E22BD-10F8-4261-9ACC-9CD10A4C8147}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {922E22BD-10F8-4261-9ACC-9CD10A4C8147}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {922E22BD-10F8-4261-9ACC-9CD10A4C8147}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {922E22BD-10F8-4261-9ACC-9CD10A4C8147}.Release|Any CPU.Build.0 = Release|Any CPU
- {AF7B3C14-BC6E-4964-BD0B-5233428349B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AF7B3C14-BC6E-4964-BD0B-5233428349B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AF7B3C14-BC6E-4964-BD0B-5233428349B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AF7B3C14-BC6E-4964-BD0B-5233428349B6}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9E4B65AB-3F34-4C81-B02D-8E5643D2B3B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9E4B65AB-3F34-4C81-B02D-8E5643D2B3B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9E4B65AB-3F34-4C81-B02D-8E5643D2B3B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9E4B65AB-3F34-4C81-B02D-8E5643D2B3B9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {95E5595E-410B-4A6D-8822-4C07FDC3CF21}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {95E5595E-410B-4A6D-8822-4C07FDC3CF21}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {95E5595E-410B-4A6D-8822-4C07FDC3CF21}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {95E5595E-410B-4A6D-8822-4C07FDC3CF21}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7DE66111-BBB6-4C93-B864-9E65CAFD505B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7DE66111-BBB6-4C93-B864-9E65CAFD505B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7DE66111-BBB6-4C93-B864-9E65CAFD505B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7DE66111-BBB6-4C93-B864-9E65CAFD505B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A5C5400D-DD78-4192-B34B-06D81996F0DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A5C5400D-DD78-4192-B34B-06D81996F0DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A5C5400D-DD78-4192-B34B-06D81996F0DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A5C5400D-DD78-4192-B34B-06D81996F0DA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8DC07B1F-ADAA-492C-8F2D-46B9EE579B44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8DC07B1F-ADAA-492C-8F2D-46B9EE579B44}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8DC07B1F-ADAA-492C-8F2D-46B9EE579B44}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8DC07B1F-ADAA-492C-8F2D-46B9EE579B44}.Release|Any CPU.Build.0 = Release|Any CPU
+ {9E153732-43ED-4DA7-B464-32C391CC443E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9E153732-43ED-4DA7-B464-32C391CC443E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9E153732-43ED-4DA7-B464-32C391CC443E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9E153732-43ED-4DA7-B464-32C391CC443E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {95B1064A-D20B-4867-A208-057F54E0F984}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {95B1064A-D20B-4867-A208-057F54E0F984}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {95B1064A-D20B-4867-A208-057F54E0F984}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {95B1064A-D20B-4867-A208-057F54E0F984}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B0AA4F66-55A2-4DA2-A3E6-65824A3EBF38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B0AA4F66-55A2-4DA2-A3E6-65824A3EBF38}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B0AA4F66-55A2-4DA2-A3E6-65824A3EBF38}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B0AA4F66-55A2-4DA2-A3E6-65824A3EBF38}.Release|Any CPU.Build.0 = Release|Any CPU
+ {37D1D188-9191-4766-8171-678620C702C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {37D1D188-9191-4766-8171-678620C702C4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {37D1D188-9191-4766-8171-678620C702C4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {37D1D188-9191-4766-8171-678620C702C4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {DE6A91AA-3C4B-4723-8B6B-82E31B5DE127}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DE6A91AA-3C4B-4723-8B6B-82E31B5DE127}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DE6A91AA-3C4B-4723-8B6B-82E31B5DE127}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DE6A91AA-3C4B-4723-8B6B-82E31B5DE127}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BB096868-3D0B-431F-BDF5-37388F1E4D18}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BB096868-3D0B-431F-BDF5-37388F1E4D18}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BB096868-3D0B-431F-BDF5-37388F1E4D18}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BB096868-3D0B-431F-BDF5-37388F1E4D18}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C948C12E-D584-46FF-B85C-A81AA341A1ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C948C12E-D584-46FF-B85C-A81AA341A1ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C948C12E-D584-46FF-B85C-A81AA341A1ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C948C12E-D584-46FF-B85C-A81AA341A1ED}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4D5CA518-C87B-4886-BD63-DA3FBDF5DE8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4D5CA518-C87B-4886-BD63-DA3FBDF5DE8F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4D5CA518-C87B-4886-BD63-DA3FBDF5DE8F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4D5CA518-C87B-4886-BD63-DA3FBDF5DE8F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {F16CCC3E-227F-48ED-95B7-64B39622B530}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {F16CCC3E-227F-48ED-95B7-64B39622B530}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {F16CCC3E-227F-48ED-95B7-64B39622B530}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {F16CCC3E-227F-48ED-95B7-64B39622B530}.Release|Any CPU.Build.0 = Release|Any CPU
+ {AF6B52DE-2DB1-4328-9F70-BAFAD7B06C22}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {AF6B52DE-2DB1-4328-9F70-BAFAD7B06C22}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {AF6B52DE-2DB1-4328-9F70-BAFAD7B06C22}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {AF6B52DE-2DB1-4328-9F70-BAFAD7B06C22}.Release|Any CPU.Build.0 = Release|Any CPU
+ {371DF498-06E5-4E4E-9A1F-59C83D5AB013}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {371DF498-06E5-4E4E-9A1F-59C83D5AB013}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {371DF498-06E5-4E4E-9A1F-59C83D5AB013}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {371DF498-06E5-4E4E-9A1F-59C83D5AB013}.Release|Any CPU.Build.0 = Release|Any CPU
+ {4911558D-1790-4C07-8375-8B26A209BFC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4911558D-1790-4C07-8375-8B26A209BFC2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4911558D-1790-4C07-8375-8B26A209BFC2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4911558D-1790-4C07-8375-8B26A209BFC2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {633AB8A0-F6CB-4ECF-9AB0-E087B7DCBC2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {633AB8A0-F6CB-4ECF-9AB0-E087B7DCBC2F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {633AB8A0-F6CB-4ECF-9AB0-E087B7DCBC2F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {633AB8A0-F6CB-4ECF-9AB0-E087B7DCBC2F}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E0D7FFAC-116E-422C-8261-33E8DFEE0CBB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E0D7FFAC-116E-422C-8261-33E8DFEE0CBB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E0D7FFAC-116E-422C-8261-33E8DFEE0CBB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E0D7FFAC-116E-422C-8261-33E8DFEE0CBB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {36A51092-10EE-4D1A-B10A-2E0ADDF235D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {36A51092-10EE-4D1A-B10A-2E0ADDF235D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {36A51092-10EE-4D1A-B10A-2E0ADDF235D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {36A51092-10EE-4D1A-B10A-2E0ADDF235D8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8A3F63E4-7DC5-44B0-97B6-3CF14275A31B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8A3F63E4-7DC5-44B0-97B6-3CF14275A31B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8A3F63E4-7DC5-44B0-97B6-3CF14275A31B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8A3F63E4-7DC5-44B0-97B6-3CF14275A31B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {A69333CC-A224-49C7-9107-F00EA30448C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {A69333CC-A224-49C7-9107-F00EA30448C4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {A69333CC-A224-49C7-9107-F00EA30448C4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {A69333CC-A224-49C7-9107-F00EA30448C4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {19F406F8-4E9A-4B56-84C6-3E26E22427C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {19F406F8-4E9A-4B56-84C6-3E26E22427C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {19F406F8-4E9A-4B56-84C6-3E26E22427C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {19F406F8-4E9A-4B56-84C6-3E26E22427C5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5F2ADE5B-6CC1-47AF-9263-7DC44EE79A6A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5F2ADE5B-6CC1-47AF-9263-7DC44EE79A6A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5F2ADE5B-6CC1-47AF-9263-7DC44EE79A6A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5F2ADE5B-6CC1-47AF-9263-7DC44EE79A6A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8FD1C854-9C2D-49A9-9BD4-07DBF59F95A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8FD1C854-9C2D-49A9-9BD4-07DBF59F95A9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8FD1C854-9C2D-49A9-9BD4-07DBF59F95A9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8FD1C854-9C2D-49A9-9BD4-07DBF59F95A9}.Release|Any CPU.Build.0 = Release|Any CPU
+ {49616BDF-FD9B-4B58-AAC3-162B56F2EB66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {49616BDF-FD9B-4B58-AAC3-162B56F2EB66}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {49616BDF-FD9B-4B58-AAC3-162B56F2EB66}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {49616BDF-FD9B-4B58-AAC3-162B56F2EB66}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2D12879E-225A-42D6-B8F9-EA02A596AE28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2D12879E-225A-42D6-B8F9-EA02A596AE28}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2D12879E-225A-42D6-B8F9-EA02A596AE28}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2D12879E-225A-42D6-B8F9-EA02A596AE28}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E8B8A9F3-84F1-4031-9958-0462ACCFA8E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E8B8A9F3-84F1-4031-9958-0462ACCFA8E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E8B8A9F3-84F1-4031-9958-0462ACCFA8E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E8B8A9F3-84F1-4031-9958-0462ACCFA8E7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {3878E755-0389-4004-9E2B-DD01CC3660CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {3878E755-0389-4004-9E2B-DD01CC3660CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {3878E755-0389-4004-9E2B-DD01CC3660CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {3878E755-0389-4004-9E2B-DD01CC3660CB}.Release|Any CPU.Build.0 = Release|Any CPU
+ {78B4C680-84C8-4DE7-870B-213C8A29EC88}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {78B4C680-84C8-4DE7-870B-213C8A29EC88}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {78B4C680-84C8-4DE7-870B-213C8A29EC88}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {78B4C680-84C8-4DE7-870B-213C8A29EC88}.Release|Any CPU.Build.0 = Release|Any CPU
+ {680BEEDD-716A-42D4-9743-6E17346F09FE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {680BEEDD-716A-42D4-9743-6E17346F09FE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {680BEEDD-716A-42D4-9743-6E17346F09FE}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {680BEEDD-716A-42D4-9743-6E17346F09FE}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E9DE4910-4796-4906-AB72-63607448CFDA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E9DE4910-4796-4906-AB72-63607448CFDA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E9DE4910-4796-4906-AB72-63607448CFDA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E9DE4910-4796-4906-AB72-63607448CFDA}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EE2900A8-DD6F-4FFB-9748-6FC0B2EA0F44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EE2900A8-DD6F-4FFB-9748-6FC0B2EA0F44}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EE2900A8-DD6F-4FFB-9748-6FC0B2EA0F44}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EE2900A8-DD6F-4FFB-9748-6FC0B2EA0F44}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
- {B511B595-A980-4D5C-BC2A-BCCB4065B433} = {0D7AEFA3-ABB0-4AF1-A4C1-F8E05C241753}
- {8D722841-4E2C-4673-A7CC-C2690EFE3915} = {F92B44CF-63EE-4781-8244-48ACC5386A8C}
{F92B44CF-63EE-4781-8244-48ACC5386A8C} = {0D7AEFA3-ABB0-4AF1-A4C1-F8E05C241753}
{4EA56716-702B-485A-A23A-10E110A85D78} = {0D7AEFA3-ABB0-4AF1-A4C1-F8E05C241753}
- {6EB08C04-9CA2-48B7-9404-3188AFA3E2DF} = {4EA56716-702B-485A-A23A-10E110A85D78}
+ {511BD310-4C03-407B-92EA-34110884C547} = {0D7AEFA3-ABB0-4AF1-A4C1-F8E05C241753}
+ {8327C820-20D1-4095-8771-E03613D1969F} = {0D7AEFA3-ABB0-4AF1-A4C1-F8E05C241753}
+ {FDEA400A-7F71-4A17-8419-030D80F74A3F} = {0D7AEFA3-ABB0-4AF1-A4C1-F8E05C241753}
+ {C49636B1-231E-45A2-8901-10EC68C7CB55} = {0D7AEFA3-ABB0-4AF1-A4C1-F8E05C241753}
+ {925D6751-630E-48FF-9AF8-8DA9E09968CF} = {0D7AEFA3-ABB0-4AF1-A4C1-F8E05C241753}
+ {28B1769B-CEA4-4B6F-B383-8A0FAF22F108} = {0D7AEFA3-ABB0-4AF1-A4C1-F8E05C241753}
+ {B511B595-A980-4D5C-BC2A-BCCB4065B433} = {0D7AEFA3-ABB0-4AF1-A4C1-F8E05C241753}
+ {8D722841-4E2C-4673-A7CC-C2690EFE3915} = {F92B44CF-63EE-4781-8244-48ACC5386A8C}
{396A8530-C500-469E-9F6F-A2D9C286C47D} = {4EA56716-702B-485A-A23A-10E110A85D78}
- {922E22BD-10F8-4261-9ACC-9CD10A4C8147} = {4EA56716-702B-485A-A23A-10E110A85D78}
- {AF7B3C14-BC6E-4964-BD0B-5233428349B6} = {4EA56716-702B-485A-A23A-10E110A85D78}
+ {9E4B65AB-3F34-4C81-B02D-8E5643D2B3B9} = {511BD310-4C03-407B-92EA-34110884C547}
+ {95E5595E-410B-4A6D-8822-4C07FDC3CF21} = {8327C820-20D1-4095-8771-E03613D1969F}
+ {7DE66111-BBB6-4C93-B864-9E65CAFD505B} = {FDEA400A-7F71-4A17-8419-030D80F74A3F}
+ {A5C5400D-DD78-4192-B34B-06D81996F0DA} = {C49636B1-231E-45A2-8901-10EC68C7CB55}
+ {8DC07B1F-ADAA-492C-8F2D-46B9EE579B44} = {925D6751-630E-48FF-9AF8-8DA9E09968CF}
+ {9E153732-43ED-4DA7-B464-32C391CC443E} = {28B1769B-CEA4-4B6F-B383-8A0FAF22F108}
+ {CA30C73C-6C4B-410F-AFDB-07A2BCEED456} = {0D7AEFA3-ABB0-4AF1-A4C1-F8E05C241753}
+ {95B1064A-D20B-4867-A208-057F54E0F984} = {CA30C73C-6C4B-410F-AFDB-07A2BCEED456}
+ {B0AA4F66-55A2-4DA2-A3E6-65824A3EBF38} = {CA30C73C-6C4B-410F-AFDB-07A2BCEED456}
+ {37D1D188-9191-4766-8171-678620C702C4} = {CA30C73C-6C4B-410F-AFDB-07A2BCEED456}
+ {DE6A91AA-3C4B-4723-8B6B-82E31B5DE127} = {CA30C73C-6C4B-410F-AFDB-07A2BCEED456}
+ {BB096868-3D0B-431F-BDF5-37388F1E4D18} = {CA30C73C-6C4B-410F-AFDB-07A2BCEED456}
+ {C948C12E-D584-46FF-B85C-A81AA341A1ED} = {CA30C73C-6C4B-410F-AFDB-07A2BCEED456}
+ {4D5CA518-C87B-4886-BD63-DA3FBDF5DE8F} = {CA30C73C-6C4B-410F-AFDB-07A2BCEED456}
+ {F16CCC3E-227F-48ED-95B7-64B39622B530} = {CA30C73C-6C4B-410F-AFDB-07A2BCEED456}
+ {AF6B52DE-2DB1-4328-9F70-BAFAD7B06C22} = {CA30C73C-6C4B-410F-AFDB-07A2BCEED456}
+ {51171CE2-9F5D-4DF3-B3A8-0CAB3AB537F6} = {0D7AEFA3-ABB0-4AF1-A4C1-F8E05C241753}
+ {371DF498-06E5-4E4E-9A1F-59C83D5AB013} = {51171CE2-9F5D-4DF3-B3A8-0CAB3AB537F6}
+ {4911558D-1790-4C07-8375-8B26A209BFC2} = {51171CE2-9F5D-4DF3-B3A8-0CAB3AB537F6}
+ {633AB8A0-F6CB-4ECF-9AB0-E087B7DCBC2F} = {51171CE2-9F5D-4DF3-B3A8-0CAB3AB537F6}
+ {E0D7FFAC-116E-422C-8261-33E8DFEE0CBB} = {51171CE2-9F5D-4DF3-B3A8-0CAB3AB537F6}
+ {36A51092-10EE-4D1A-B10A-2E0ADDF235D8} = {51171CE2-9F5D-4DF3-B3A8-0CAB3AB537F6}
+ {8A3F63E4-7DC5-44B0-97B6-3CF14275A31B} = {51171CE2-9F5D-4DF3-B3A8-0CAB3AB537F6}
+ {A69333CC-A224-49C7-9107-F00EA30448C4} = {51171CE2-9F5D-4DF3-B3A8-0CAB3AB537F6}
+ {4F4FE0B9-BADD-456C-A970-799F85FB7AC9} = {0D7AEFA3-ABB0-4AF1-A4C1-F8E05C241753}
+ {19F406F8-4E9A-4B56-84C6-3E26E22427C5} = {4F4FE0B9-BADD-456C-A970-799F85FB7AC9}
+ {5F2ADE5B-6CC1-47AF-9263-7DC44EE79A6A} = {4F4FE0B9-BADD-456C-A970-799F85FB7AC9}
+ {8FD1C854-9C2D-49A9-9BD4-07DBF59F95A9} = {4F4FE0B9-BADD-456C-A970-799F85FB7AC9}
+ {49616BDF-FD9B-4B58-AAC3-162B56F2EB66} = {4F4FE0B9-BADD-456C-A970-799F85FB7AC9}
+ {2D12879E-225A-42D6-B8F9-EA02A596AE28} = {4F4FE0B9-BADD-456C-A970-799F85FB7AC9}
+ {A50DAFE1-CE3E-476A-A240-8252FCEC2D8F} = {0D7AEFA3-ABB0-4AF1-A4C1-F8E05C241753}
+ {E8B8A9F3-84F1-4031-9958-0462ACCFA8E7} = {A50DAFE1-CE3E-476A-A240-8252FCEC2D8F}
+ {3878E755-0389-4004-9E2B-DD01CC3660CB} = {A50DAFE1-CE3E-476A-A240-8252FCEC2D8F}
+ {78B4C680-84C8-4DE7-870B-213C8A29EC88} = {A50DAFE1-CE3E-476A-A240-8252FCEC2D8F}
+ {680BEEDD-716A-42D4-9743-6E17346F09FE} = {A50DAFE1-CE3E-476A-A240-8252FCEC2D8F}
+ {E9DE4910-4796-4906-AB72-63607448CFDA} = {A50DAFE1-CE3E-476A-A240-8252FCEC2D8F}
+ {EE2900A8-DD6F-4FFB-9748-6FC0B2EA0F44} = {51171CE2-9F5D-4DF3-B3A8-0CAB3AB537F6}
EndGlobalSection
EndGlobal
diff --git a/build.cake b/build.cake
new file mode 100644
index 0000000..e91f3fb
--- /dev/null
+++ b/build.cake
@@ -0,0 +1,185 @@
+var target = Argument("target", "Default");
+var configuration = Argument("configuration", "Release");
+
+///////////////////////////////////////////////////////////////////////////////
+// GLOBAL VARIABLES
+///////////////////////////////////////////////////////////////////////////////
+var packPath1 = Directory("./src/WebApplication");
+var packPath2 = Directory("./src/WebApplication.EFCoreRawQuery");
+var packPath3 = Directory("./src/WebApplication.Elm");
+var packPath4 = Directory("./src/WebApplication.ExtensionA");
+var packPath5 = Directory("./src/WebApplication.ExtensionB");
+var packPath6 = Directory("./src/WebApplication.NLog");
+var packPath7 = Directory("./src/WebApplication.Script");
+var packPath8 = Directory("./src/WebApplication.Swagger");
+var packPath9 = Directory("./src/WebApplication.WebAPI");
+var packPath10 = Directory("./src/DomainModel/Extentions");
+var buildArtifacts = Directory("./artifacts/packages");
+
+var isAppVeyor = AppVeyor.IsRunningOnAppVeyor;
+var isWindows = IsRunningOnWindows();
+var netcore = "netcoreapp1.0";
+var netstandard = "netstandard1.6";
+
+///////////////////////////////////////////////////////////////////////////////
+// Clean
+///////////////////////////////////////////////////////////////////////////////
+Task("Clean")
+ .Does(() =>
+{
+ CleanDirectories(new DirectoryPath[] { buildArtifacts });
+});
+
+///////////////////////////////////////////////////////////////////////////////
+// Restore
+///////////////////////////////////////////////////////////////////////////////
+Task("Restore")
+ .Does(() =>
+{
+ var settings = new DotNetCoreRestoreSettings
+ {
+ Sources = new [] {
+ "packages",
+ "https://api.nuget.org/v3/index.json"
+ }
+ };
+
+ var projects = GetFiles("./**/*.csproj");
+
+ foreach(var project in projects)
+ {
+ DotNetCoreRestore(project.GetDirectory().FullPath, settings);
+ }
+});
+
+///////////////////////////////////////////////////////////////////////////////
+// Build
+///////////////////////////////////////////////////////////////////////////////
+Task("Build")
+ .IsDependentOn("Clean")
+ .IsDependentOn("Restore")
+ .Does(() =>
+{
+ var settings = new DotNetCoreBuildSettings
+ {
+ Configuration = configuration
+ };
+
+ // libraries
+ var projects = GetFiles("./src/**/*.csproj");
+
+ if (!isWindows)
+ {
+ Information("Not on Windows - building only for " + netstandard);
+ settings.Framework = netstandard;
+ }
+
+ /*
+ foreach(var project in projects)
+ {
+ DotNetCoreBuild(project.GetDirectory().FullPath, settings);
+ }
+ */
+ //settings.Framework = netstandard;
+ DotNetCoreBuild(packPath2, settings);
+ DotNetCoreBuild(packPath3, settings);
+ DotNetCoreBuild(packPath4, settings);
+ DotNetCoreBuild(packPath5, settings);
+ DotNetCoreBuild(packPath6, settings);
+ DotNetCoreBuild(packPath7, settings);
+ DotNetCoreBuild(packPath8, settings);
+ DotNetCoreBuild(packPath9, settings);
+ DotNetCoreBuild(packPath10, settings);
+ //settings.Framework = netcore;
+ DotNetCoreBuild(packPath1, settings);
+
+ // tests
+ projects = GetFiles("./test/**/*.csproj");
+
+ if (!isWindows)
+ {
+ Information("Not on Windows - building only for " + netcore);
+ settings.Framework = netcore;
+ }
+
+ /*
+ foreach(var project in projects)
+ {
+ DotNetCoreBuild(project.GetDirectory().FullPath, settings);
+ }
+ */
+});
+
+///////////////////////////////////////////////////////////////////////////////
+// Test
+///////////////////////////////////////////////////////////////////////////////
+Task("Test")
+ .IsDependentOn("Restore")
+ .IsDependentOn("Clean")
+ .Does(() =>
+{
+ var settings = new DotNetCoreTestSettings
+ {
+ Configuration = configuration
+ };
+
+ var projects = GetFiles("./test/**/*.csproj");
+
+ if (!isWindows)
+ {
+ Information("Not on Windows - testing only for " + netcore);
+ settings.Framework = netcore;
+ }
+
+ foreach(var project in projects)
+ {
+ DotNetCoreTest(project.FullPath, settings);
+ }
+});
+
+///////////////////////////////////////////////////////////////////////////////
+// Pack
+///////////////////////////////////////////////////////////////////////////////
+Task("Pack")
+ .IsDependentOn("Restore")
+ .IsDependentOn("Clean")
+ .Does(() =>
+{
+ if (!isWindows)
+ {
+ Information("Not on Windows - skipping pack");
+ return;
+ }
+
+ var settings = new DotNetCorePackSettings
+ {
+ Configuration = configuration,
+ OutputDirectory = buildArtifacts,
+ };
+
+ // add build suffix for CI builds
+ if(isAppVeyor)
+ {
+ settings.VersionSuffix = "build" + AppVeyor.Environment.Build.Number.ToString().PadLeft(5,'0');
+ }
+ //settings.Framework = netstandard;
+ DotNetCorePack(packPath2, settings);
+ DotNetCorePack(packPath3, settings);
+ DotNetCorePack(packPath4, settings);
+ DotNetCorePack(packPath5, settings);
+ DotNetCorePack(packPath6, settings);
+ DotNetCorePack(packPath7, settings);
+ DotNetCorePack(packPath8, settings);
+ DotNetCorePack(packPath9, settings);
+ DotNetCorePack(packPath10, settings);
+ //settings.Framework = netcore;
+ DotNetCorePack(packPath1, settings);
+});
+
+
+Task("Default")
+ .IsDependentOn("Build");
+ //.IsDependentOn("Test")
+ //.IsDependentOn("Pack");
+
+RunTarget(target);
\ No newline at end of file
diff --git a/build.cmd b/build.cmd
new file mode 100644
index 0000000..7d4894c
--- /dev/null
+++ b/build.cmd
@@ -0,0 +1,2 @@
+@ECHO OFF
+PowerShell -NoProfile -NoLogo -ExecutionPolicy unrestricted -Command "[System.Threading.Thread]::CurrentThread.CurrentCulture = ''; [System.Threading.Thread]::CurrentThread.CurrentUICulture = '';& '%~dp0build.ps1' %*; exit $LASTEXITCODE"
\ No newline at end of file
diff --git a/build.ps1 b/build.ps1
new file mode 100644
index 0000000..44de579
--- /dev/null
+++ b/build.ps1
@@ -0,0 +1,189 @@
+##########################################################################
+# This is the Cake bootstrapper script for PowerShell.
+# This file was downloaded from https://github.com/cake-build/resources
+# Feel free to change this file to fit your needs.
+##########################################################################
+
+<#
+
+.SYNOPSIS
+This is a Powershell script to bootstrap a Cake build.
+
+.DESCRIPTION
+This Powershell script will download NuGet if missing, restore NuGet tools (including Cake)
+and execute your Cake build script with the parameters you provide.
+
+.PARAMETER Script
+The build script to execute.
+.PARAMETER Target
+The build script target to run.
+.PARAMETER Configuration
+The build configuration to use.
+.PARAMETER Verbosity
+Specifies the amount of information to be displayed.
+.PARAMETER Experimental
+Tells Cake to use the latest Roslyn release.
+.PARAMETER WhatIf
+Performs a dry run of the build script.
+No tasks will be executed.
+.PARAMETER Mono
+Tells Cake to use the Mono scripting engine.
+.PARAMETER SkipToolPackageRestore
+Skips restoring of packages.
+.PARAMETER ScriptArgs
+Remaining arguments are added here.
+
+.LINK
+http://cakebuild.net
+
+#>
+
+[CmdletBinding()]
+Param(
+ [string]$Script = "build.cake",
+ [string]$Target = "Default",
+ [ValidateSet("Release", "Debug")]
+ [string]$Configuration = "Release",
+ [ValidateSet("Quiet", "Minimal", "Normal", "Verbose", "Diagnostic")]
+ [string]$Verbosity = "Verbose",
+ [switch]$Experimental,
+ [Alias("DryRun","Noop")]
+ [switch]$WhatIf,
+ [switch]$Mono,
+ [switch]$SkipToolPackageRestore,
+ [Parameter(Position=0,Mandatory=$false,ValueFromRemainingArguments=$true)]
+ [string[]]$ScriptArgs
+)
+
+[Reflection.Assembly]::LoadWithPartialName("System.Security") | Out-Null
+function MD5HashFile([string] $filePath)
+{
+ if ([string]::IsNullOrEmpty($filePath) -or !(Test-Path $filePath -PathType Leaf))
+ {
+ return $null
+ }
+
+ [System.IO.Stream] $file = $null;
+ [System.Security.Cryptography.MD5] $md5 = $null;
+ try
+ {
+ $md5 = [System.Security.Cryptography.MD5]::Create()
+ $file = [System.IO.File]::OpenRead($filePath)
+ return [System.BitConverter]::ToString($md5.ComputeHash($file))
+ }
+ finally
+ {
+ if ($file -ne $null)
+ {
+ $file.Dispose()
+ }
+ }
+}
+
+Write-Host "Preparing to run build script..."
+
+if(!$PSScriptRoot){
+ $PSScriptRoot = Split-Path $MyInvocation.MyCommand.Path -Parent
+}
+
+$TOOLS_DIR = Join-Path $PSScriptRoot "tools"
+$NUGET_EXE = Join-Path $TOOLS_DIR "nuget.exe"
+$CAKE_EXE = Join-Path $TOOLS_DIR "Cake/Cake.exe"
+$NUGET_URL = "https://dist.nuget.org/win-x86-commandline/latest/nuget.exe"
+$PACKAGES_CONFIG = Join-Path $TOOLS_DIR "packages.config"
+$PACKAGES_CONFIG_MD5 = Join-Path $TOOLS_DIR "packages.config.md5sum"
+
+# Should we use mono?
+$UseMono = "";
+if($Mono.IsPresent) {
+ Write-Verbose -Message "Using the Mono based scripting engine."
+ $UseMono = "-mono"
+}
+
+# Should we use the new Roslyn?
+$UseExperimental = "";
+if($Experimental.IsPresent -and !($Mono.IsPresent)) {
+ Write-Verbose -Message "Using experimental version of Roslyn."
+ $UseExperimental = "-experimental"
+}
+
+# Is this a dry run?
+$UseDryRun = "";
+if($WhatIf.IsPresent) {
+ $UseDryRun = "-dryrun"
+}
+
+# Make sure tools folder exists
+if ((Test-Path $PSScriptRoot) -and !(Test-Path $TOOLS_DIR)) {
+ Write-Verbose -Message "Creating tools directory..."
+ New-Item -Path $TOOLS_DIR -Type directory | out-null
+}
+
+# Make sure that packages.config exist.
+if (!(Test-Path $PACKAGES_CONFIG)) {
+ Write-Verbose -Message "Downloading packages.config..."
+ try { (New-Object System.Net.WebClient).DownloadFile("http://cakebuild.net/download/bootstrapper/packages", $PACKAGES_CONFIG) } catch {
+ Throw "Could not download packages.config."
+ }
+}
+
+# Try find NuGet.exe in path if not exists
+if (!(Test-Path $NUGET_EXE)) {
+ Write-Verbose -Message "Trying to find nuget.exe in PATH..."
+ $existingPaths = $Env:Path -Split ';' | Where-Object { (![string]::IsNullOrEmpty($_)) -and (Test-Path $_) }
+ $NUGET_EXE_IN_PATH = Get-ChildItem -Path $existingPaths -Filter "nuget.exe" | Select -First 1
+ if ($NUGET_EXE_IN_PATH -ne $null -and (Test-Path $NUGET_EXE_IN_PATH.FullName)) {
+ Write-Verbose -Message "Found in PATH at $($NUGET_EXE_IN_PATH.FullName)."
+ $NUGET_EXE = $NUGET_EXE_IN_PATH.FullName
+ }
+}
+
+# Try download NuGet.exe if not exists
+if (!(Test-Path $NUGET_EXE)) {
+ Write-Verbose -Message "Downloading NuGet.exe..."
+ try {
+ (New-Object System.Net.WebClient).DownloadFile($NUGET_URL, $NUGET_EXE)
+ } catch {
+ Throw "Could not download NuGet.exe."
+ }
+}
+
+# Save nuget.exe path to environment to be available to child processed
+$ENV:NUGET_EXE = $NUGET_EXE
+
+# Restore tools from NuGet?
+if(-Not $SkipToolPackageRestore.IsPresent) {
+ Push-Location
+ Set-Location $TOOLS_DIR
+
+ # Check for changes in packages.config and remove installed tools if true.
+ [string] $md5Hash = MD5HashFile($PACKAGES_CONFIG)
+ if((!(Test-Path $PACKAGES_CONFIG_MD5)) -Or
+ ($md5Hash -ne (Get-Content $PACKAGES_CONFIG_MD5 ))) {
+ Write-Verbose -Message "Missing or changed package.config hash..."
+ Remove-Item * -Recurse -Exclude packages.config,nuget.exe
+ }
+
+ Write-Verbose -Message "Restoring tools from NuGet..."
+ $NuGetOutput = Invoke-Expression "&`"$NUGET_EXE`" install -ExcludeVersion -OutputDirectory `"$TOOLS_DIR`""
+
+ if ($LASTEXITCODE -ne 0) {
+ Throw "An error occured while restoring NuGet tools."
+ }
+ else
+ {
+ $md5Hash | Out-File $PACKAGES_CONFIG_MD5 -Encoding "ASCII"
+ }
+ Write-Verbose -Message ($NuGetOutput | out-string)
+ Pop-Location
+}
+
+# Make sure that Cake has been installed.
+if (!(Test-Path $CAKE_EXE)) {
+ Throw "Could not find Cake.exe at $CAKE_EXE"
+}
+
+# Start Cake
+Write-Host "Running build script..."
+Invoke-Expression "& `"$CAKE_EXE`" `"$Script`" -target=`"$Target`" -configuration=`"$Configuration`" -verbosity=`"$Verbosity`" $UseMono $UseDryRun $UseExperimental $ScriptArgs"
+exit $LASTEXITCODE
\ No newline at end of file
diff --git a/build.sh b/build.sh
new file mode 100644
index 0000000..6e8f207
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,101 @@
+#!/usr/bin/env bash
+
+##########################################################################
+# This is the Cake bootstrapper script for Linux and OS X.
+# This file was downloaded from https://github.com/cake-build/resources
+# Feel free to change this file to fit your needs.
+##########################################################################
+
+# Define directories.
+SCRIPT_DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+TOOLS_DIR=$SCRIPT_DIR/tools
+NUGET_EXE=$TOOLS_DIR/nuget.exe
+CAKE_EXE=$TOOLS_DIR/Cake/Cake.exe
+PACKAGES_CONFIG=$TOOLS_DIR/packages.config
+PACKAGES_CONFIG_MD5=$TOOLS_DIR/packages.config.md5sum
+
+# Define md5sum or md5 depending on Linux/OSX
+MD5_EXE=
+if [[ "$(uname -s)" == "Darwin" ]]; then
+ MD5_EXE="md5 -r"
+else
+ MD5_EXE="md5sum"
+fi
+
+# Define default arguments.
+SCRIPT="build.cake"
+TARGET="Default"
+CONFIGURATION="Release"
+VERBOSITY="verbose"
+DRYRUN=
+SHOW_VERSION=false
+SCRIPT_ARGUMENTS=()
+
+# Parse arguments.
+for i in "$@"; do
+ case $1 in
+ -s|--script) SCRIPT="$2"; shift ;;
+ -t|--target) TARGET="$2"; shift ;;
+ -c|--configuration) CONFIGURATION="$2"; shift ;;
+ -v|--verbosity) VERBOSITY="$2"; shift ;;
+ -d|--dryrun) DRYRUN="-dryrun" ;;
+ --version) SHOW_VERSION=true ;;
+ --) shift; SCRIPT_ARGUMENTS+=("$@"); break ;;
+ *) SCRIPT_ARGUMENTS+=("$1") ;;
+ esac
+ shift
+done
+
+# Make sure the tools folder exist.
+if [ ! -d "$TOOLS_DIR" ]; then
+ mkdir "$TOOLS_DIR"
+fi
+
+# Make sure that packages.config exist.
+if [ ! -f "$TOOLS_DIR/packages.config" ]; then
+ echo "Downloading packages.config..."
+ curl -Lsfo "$TOOLS_DIR/packages.config" http://cakebuild.net/download/bootstrapper/packages
+ if [ $? -ne 0 ]; then
+ echo "An error occured while downloading packages.config."
+ exit 1
+ fi
+fi
+
+# Download NuGet if it does not exist.
+if [ ! -f "$NUGET_EXE" ]; then
+ echo "Downloading NuGet..."
+ curl -Lsfo "$NUGET_EXE" https://dist.nuget.org/win-x86-commandline/latest/nuget.exe
+ if [ $? -ne 0 ]; then
+ echo "An error occured while downloading nuget.exe."
+ exit 1
+ fi
+fi
+
+# Restore tools from NuGet.
+pushd "$TOOLS_DIR" >/dev/null
+if [ ! -f $PACKAGES_CONFIG_MD5 ] || [ "$( cat $PACKAGES_CONFIG_MD5 | sed 's/\r$//' )" != "$( $MD5_EXE $PACKAGES_CONFIG | awk '{ print $1 }' )" ]; then
+ find . -type d ! -name . | xargs rm -rf
+fi
+
+mono "$NUGET_EXE" install -ExcludeVersion
+if [ $? -ne 0 ]; then
+ echo "Could not restore NuGet packages."
+ exit 1
+fi
+
+$MD5_EXE $PACKAGES_CONFIG | awk '{ print $1 }' >| $PACKAGES_CONFIG_MD5
+
+popd >/dev/null
+
+# Make sure that Cake has been installed.
+if [ ! -f "$CAKE_EXE" ]; then
+ echo "Could not find Cake.exe at '$CAKE_EXE'."
+ exit 1
+fi
+
+# Start Cake
+if $SHOW_VERSION; then
+ exec mono "$CAKE_EXE" -version
+else
+ exec mono "$CAKE_EXE" $SCRIPT -verbosity=$VERBOSITY -configuration=$CONFIGURATION -target=$TARGET $DRYRUN "${SCRIPT_ARGUMENTS[@]}"
+fi
\ No newline at end of file
diff --git a/global.json b/global.json
deleted file mode 100644
index d5427d4..0000000
--- a/global.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "projects": [ "src" ],
- "sdk": {
- "version": "1.0.0-preview2-003121"
- }
-}
\ No newline at end of file
diff --git a/packages/.gitkeep b/packages/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/DomainModel/Controllers/DomainModel.Controllers.csproj b/src/DomainModel/Controllers/DomainModel.Controllers.csproj
new file mode 100644
index 0000000..8d81cf9
--- /dev/null
+++ b/src/DomainModel/Controllers/DomainModel.Controllers.csproj
@@ -0,0 +1,20 @@
+
+
+
+ netstandard1.6
+ DomainModel.Controllers
+ DomainModel.Controllers
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ DomainModel.Controllers
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/DomainModel/Controllers/ItemController.cs b/src/DomainModel/Controllers/ItemController.cs
new file mode 100644
index 0000000..3ed4461
--- /dev/null
+++ b/src/DomainModel/Controllers/ItemController.cs
@@ -0,0 +1,44 @@
+using System;
+using Microsoft.AspNetCore.Mvc;
+using DomainModel.Infrastracture.Services;
+using DomainModel.Models;
+
+namespace DomainModel.Controllers
+{
+ [Route("api/domainmodel/[controller]")]
+ public class ItemsController : Controller
+ {
+ private IService- _itemService { get; set; }
+
+ public ItemsController(IService
- itemService)
+ {
+ _itemService = itemService;
+ }
+
+ [HttpGet]
+ public IActionResult Get()
+ {
+ return Ok(_itemService.All());
+ }
+ [HttpGet("{id}")]
+ public IActionResult Get(long id)
+ {
+ return Ok(_itemService.Find(id));
+ }
+ [HttpPost]
+ public void Post([FromBody]Item value)
+ {
+ _itemService.Add(value);
+ }
+ [HttpPut("{id}")]
+ public void Put(long id, [FromBody]Item value)
+ {
+ _itemService.Update(id, value);
+ }
+ [HttpDelete("{id}")]
+ public void Delete(long id)
+ {
+ _itemService.Delete(id);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/DomainModel/DomainModel.Daos/DomainModel.Daos.csproj b/src/DomainModel/DomainModel.Daos/DomainModel.Daos.csproj
new file mode 100644
index 0000000..061bdfd
--- /dev/null
+++ b/src/DomainModel/DomainModel.Daos/DomainModel.Daos.csproj
@@ -0,0 +1,19 @@
+
+
+
+ netstandard1.6
+ DomainModel.Daos
+ DomainModel.Daos
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ DomainModel.Daos
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/DomainModel/DomainModel.Daos/WorkDao.cs b/src/DomainModel/DomainModel.Daos/WorkDao.cs
new file mode 100644
index 0000000..26bcbe7
--- /dev/null
+++ b/src/DomainModel/DomainModel.Daos/WorkDao.cs
@@ -0,0 +1,48 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using DomainModel.Infrastracture.Daos;
+using DomainModel.Models;
+using Dapper;
+using Microsoft.EntityFrameworkCore;
+using System.Dynamic;
+
+namespace DomainModel.Daos
+{
+ public class WorkDao : IDao
-
+ {
+ private ItemDbContext _itemDbContext { get; set; }
+ public WorkDao(ItemDbContext itemDbContext)
+ {
+ _itemDbContext = itemDbContext;
+ }
+
+ public void Add(Item value)
+ {
+ var connection = _itemDbContext.Database.GetDbConnection();
+ dynamic exObj = connection.Query(@"select * from item");
+ ExpandoObject obj = new ExpandoObject();
+ throw new NotImplementedException();
+ }
+
+ public System.Collections.Generic.IEnumerable
- All()
+ {
+ throw new NotImplementedException();
+ }
+
+ public void Delete(long id)
+ {
+ throw new NotImplementedException();
+ }
+
+ public Item Find(long id)
+ {
+ throw new NotImplementedException();
+ }
+
+ public void Update(long id, Item value)
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
diff --git a/src/DomainModel/DomainModel.Infrastracture.Daos/DomainModel.Infrastracture.Daos.csproj b/src/DomainModel/DomainModel.Infrastracture.Daos/DomainModel.Infrastracture.Daos.csproj
new file mode 100644
index 0000000..954020d
--- /dev/null
+++ b/src/DomainModel/DomainModel.Infrastracture.Daos/DomainModel.Infrastracture.Daos.csproj
@@ -0,0 +1,7 @@
+
+
+
+ netstandard1.4
+
+
+
\ No newline at end of file
diff --git a/src/DomainModel/DomainModel.Infrastracture.Daos/IDao.cs b/src/DomainModel/DomainModel.Infrastracture.Daos/IDao.cs
new file mode 100644
index 0000000..fc32a82
--- /dev/null
+++ b/src/DomainModel/DomainModel.Infrastracture.Daos/IDao.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+
+namespace DomainModel.Infrastracture.Daos
+{
+ public interface IDao : IInDaos, IOutDaos
+ {
+ new IEnumerable All();
+ new T Find(long id);
+ new void Add(T value);
+ new void Update(long id, T value);
+ void Delete(long id);
+ }
+}
diff --git a/src/DomainModel/DomainModel.Infrastracture.Daos/IInDaos.cs b/src/DomainModel/DomainModel.Infrastracture.Daos/IInDaos.cs
new file mode 100644
index 0000000..e011b7b
--- /dev/null
+++ b/src/DomainModel/DomainModel.Infrastracture.Daos/IInDaos.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace DomainModel.Infrastracture.Daos
+{
+ public interface IInDaos
+ {
+ void Add(T value);
+ void Update(long id, T value);
+ }
+}
diff --git a/src/DomainModel/DomainModel.Infrastracture.Daos/IOutDaos.cs b/src/DomainModel/DomainModel.Infrastracture.Daos/IOutDaos.cs
new file mode 100644
index 0000000..7eecf61
--- /dev/null
+++ b/src/DomainModel/DomainModel.Infrastracture.Daos/IOutDaos.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace DomainModel.Infrastracture.Daos
+{
+ public interface IOutDaos
+ {
+ IEnumerable All();
+ T Find(long id);
+ }
+}
\ No newline at end of file
diff --git a/src/DomainModel/Extentions/DomainModel.Extentions.csproj b/src/DomainModel/Extentions/DomainModel.Extentions.csproj
new file mode 100644
index 0000000..ea88a9c
--- /dev/null
+++ b/src/DomainModel/Extentions/DomainModel.Extentions.csproj
@@ -0,0 +1,25 @@
+
+
+
+ netstandard1.6
+ DomainModel.Extentions
+ DomainModel.Extentions
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ DomainModel.Extentions
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/DomainModel/Extentions/Extention.cs b/src/DomainModel/Extentions/Extention.cs
new file mode 100644
index 0000000..eebad09
--- /dev/null
+++ b/src/DomainModel/Extentions/Extention.cs
@@ -0,0 +1,88 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using ExtCore.Infrastructure;
+using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Routing;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.EntityFrameworkCore;
+using DomainModel.Infrastracture.Repositorys;
+using DomainModel.Infrastracture.Services;
+using DomainModel.Infrastracture.Daos;
+using DomainModel.Repositorys;
+using DomainModel.Services;
+using DomainModel.Models;
+using DomainModel.Controllers;
+//using DomainModel.Daos;
+
+namespace DomainModel.Extentions
+{
+ public class Extention : IExtension
+ {
+ private IConfigurationRoot configurationRoot;
+
+ public string Name
+ {
+ get
+ {
+ return "Extension DomainModel";
+ }
+ }
+
+ public IDictionary> RouteRegistrarsByPriorities
+ {
+ get
+ {
+ Dictionary> routeRegistrarsByPriorities = new Dictionary>();
+
+ routeRegistrarsByPriorities.Add(
+ 2000,
+ routeBuilder =>
+ {
+ routeBuilder.MapRoute(name: "Extension DomainModel", template: "{controller=Home}/{action=Index}/{id?}");
+ }
+ );
+
+ return routeRegistrarsByPriorities;
+ }
+ }
+
+
+ public int ConfigureServicesPriorities
+ {
+ get
+ {
+ return 2001;
+ }
+ }
+ public int ConfigurePriorities
+ {
+ get
+ {
+ return 2001;
+ }
+ }
+ public void SetConfigurationRoot(IConfigurationRoot configurationRoot)
+ {
+ this.configurationRoot = configurationRoot;
+ }
+
+ public void ConfigureServices(IServiceCollection services)
+ {
+ services.AddEntityFrameworkSqlite();
+ services.AddDbContext(options =>
+ {
+ options.UseSqlite(this.configurationRoot["Data:DefaultConnection:ConnectionString"]);
+ });
+ services.AddScoped, ItemService>();
+ services.AddScoped, ItemRepository>();
+ //services.AddScoped, WorkDao>();
+ }
+
+ public void Configure(IApplicationBuilder applicationBuilder)
+ {
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/DomainModel/Infrastracture.Repository/DomainModel.Infrastracture.Repositorys.csproj b/src/DomainModel/Infrastracture.Repository/DomainModel.Infrastracture.Repositorys.csproj
new file mode 100644
index 0000000..ae5c4fd
--- /dev/null
+++ b/src/DomainModel/Infrastracture.Repository/DomainModel.Infrastracture.Repositorys.csproj
@@ -0,0 +1,15 @@
+
+
+
+ netstandard1.6
+ DomainModel.Infrastracture.Repositorys
+ DomainModel.Infrastracture.Repositorys
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ DomainModel.Infrastracture.Repositorys
+
+
+
\ No newline at end of file
diff --git a/src/DomainModel/Infrastracture.Repository/IInRepositorys.cs b/src/DomainModel/Infrastracture.Repository/IInRepositorys.cs
new file mode 100644
index 0000000..fe8b41c
--- /dev/null
+++ b/src/DomainModel/Infrastracture.Repository/IInRepositorys.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace DomainModel.Infrastracture.Repositorys
+{
+ public interface IInRepositorys
+ {
+ void Add(T value);
+ void Update(long id, T value);
+ }
+}
diff --git a/src/DomainModel/Infrastracture.Repository/IOutRepositorys.cs b/src/DomainModel/Infrastracture.Repository/IOutRepositorys.cs
new file mode 100644
index 0000000..f5c2b42
--- /dev/null
+++ b/src/DomainModel/Infrastracture.Repository/IOutRepositorys.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace DomainModel.Infrastracture.Repositorys
+{
+ public interface IOutRepositorys
+ {
+ IEnumerable All();
+ T Find(long id);
+ }
+}
diff --git a/src/DomainModel/Infrastracture.Repository/IRepository.cs b/src/DomainModel/Infrastracture.Repository/IRepository.cs
new file mode 100644
index 0000000..10e5d4b
--- /dev/null
+++ b/src/DomainModel/Infrastracture.Repository/IRepository.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+
+namespace DomainModel.Infrastracture.Repositorys
+{
+ public interface IRepository : IInRepositorys, IOutRepositorys
+ {
+ new IEnumerable All();
+ new T Find(long id);
+ new void Add(T value);
+ new void Update(long id, T value);
+ void Delete(long id);
+ }
+}
diff --git a/src/DomainModel/Infrastracture.Service/DomainModel.Infrastracture.Services.csproj b/src/DomainModel/Infrastracture.Service/DomainModel.Infrastracture.Services.csproj
new file mode 100644
index 0000000..d161c46
--- /dev/null
+++ b/src/DomainModel/Infrastracture.Service/DomainModel.Infrastracture.Services.csproj
@@ -0,0 +1,15 @@
+
+
+
+ netstandard1.6
+ DomainModel.Infrastracture.Service
+ DomainModel.Infrastracture.Service
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ DomainModel.Infrastracture.Services
+
+
+
\ No newline at end of file
diff --git a/src/DomainModel/Infrastracture.Service/IInService.cs b/src/DomainModel/Infrastracture.Service/IInService.cs
new file mode 100644
index 0000000..b6aa0a5
--- /dev/null
+++ b/src/DomainModel/Infrastracture.Service/IInService.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace DomainModel.Infrastracture.Services
+{
+ public interface IInService
+ {
+ void Add(T value);
+ void Update(long id, T value);
+ }
+}
diff --git a/src/DomainModel/Infrastracture.Service/IOutService.cs b/src/DomainModel/Infrastracture.Service/IOutService.cs
new file mode 100644
index 0000000..a6932d1
--- /dev/null
+++ b/src/DomainModel/Infrastracture.Service/IOutService.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace DomainModel.Infrastracture.Services
+{
+ public interface IOutService
+ {
+ IEnumerable All();
+ T Find(long id);
+ }
+}
diff --git a/src/DomainModel/Infrastracture.Service/IService.cs b/src/DomainModel/Infrastracture.Service/IService.cs
new file mode 100644
index 0000000..d474fba
--- /dev/null
+++ b/src/DomainModel/Infrastracture.Service/IService.cs
@@ -0,0 +1,13 @@
+using System.Collections.Generic;
+
+namespace DomainModel.Infrastracture.Services
+{
+ public interface IService : IInService, IOutService
+ {
+ new IEnumerable All();
+ new T Find(long id);
+ new void Add(T value);
+ new void Update(long id, T value);
+ void Delete(long id);
+ }
+}
diff --git a/src/DomainModel/Models/DomainModel.Models.csproj b/src/DomainModel/Models/DomainModel.Models.csproj
new file mode 100644
index 0000000..095b30c
--- /dev/null
+++ b/src/DomainModel/Models/DomainModel.Models.csproj
@@ -0,0 +1,19 @@
+
+
+
+ netstandard1.6
+ DomainModel.Models
+ DomainModel.Models
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ DomainModel.Models
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/DomainModel/Models/Item.cs b/src/DomainModel/Models/Item.cs
new file mode 100644
index 0000000..ce5f556
--- /dev/null
+++ b/src/DomainModel/Models/Item.cs
@@ -0,0 +1,11 @@
+// Copyright © 2015 Dmitry Sikorsky. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace DomainModel.Models
+{
+ public class Item
+ {
+ public int Id { get; set; }
+ public string Name { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/src/DomainModel/Models/ItemDbContext.cs b/src/DomainModel/Models/ItemDbContext.cs
new file mode 100644
index 0000000..3cdc976
--- /dev/null
+++ b/src/DomainModel/Models/ItemDbContext.cs
@@ -0,0 +1,19 @@
+// Copyright © 2015 Dmitry Sikorsky. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using Microsoft.EntityFrameworkCore;
+
+namespace DomainModel.Models
+{
+ public class ItemDbContext : DbContext
+ {
+ public ItemDbContext(DbContextOptions options) :base(options)
+ { }
+ public DbSet
- Items { get; set; }
+ protected override void OnModelCreating(ModelBuilder builder)
+ {
+ builder.Entity
- ().HasKey(m => m.Id);
+ base.OnModelCreating(builder);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/DomainModel/Repository/DomainModel.Repositorys.csproj b/src/DomainModel/Repository/DomainModel.Repositorys.csproj
new file mode 100644
index 0000000..c7acd1d
--- /dev/null
+++ b/src/DomainModel/Repository/DomainModel.Repositorys.csproj
@@ -0,0 +1,20 @@
+
+
+
+ netstandard1.6
+ DomainModel.Repository
+ DomainModel.Repository
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ DomainModel.Repositorys
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/DomainModel/Repository/ItemRepository.cs b/src/DomainModel/Repository/ItemRepository.cs
new file mode 100644
index 0000000..650ada2
--- /dev/null
+++ b/src/DomainModel/Repository/ItemRepository.cs
@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using DomainModel.Models;
+using DomainModel.Infrastracture.Repositorys;
+
+namespace DomainModel.Repositorys
+{
+ public class ItemRepository : IRepository
-
+ {
+ private ItemDbContext _itemDbContext { get; set; }
+ public ItemRepository(ItemDbContext itemDbContext)
+ {
+ _itemDbContext = itemDbContext;
+ }
+ public IEnumerable
- All()
+ {
+ return _itemDbContext.Items.OrderBy(i => i.Name);
+ }
+ public Item Find(long id)
+ {
+ return _itemDbContext.Items.Where(i => i.Id == id).First();
+ }
+ public void Add(Item value)
+ {
+ _itemDbContext.Items.Add(value);
+ _itemDbContext.SaveChanges();
+ return;
+ }
+ public void Update(long id, Item value)
+ {
+ _itemDbContext.Items.Update(value);
+ _itemDbContext.SaveChanges();
+ return;
+ }
+ public void Delete(long id)
+ {
+ var value = _itemDbContext.Items.Where(i => i.Id == id).First();
+ _itemDbContext.Items.Remove(value);
+ _itemDbContext.SaveChanges();
+ return;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/DomainModel/Services/DomainModel.Services.csproj b/src/DomainModel/Services/DomainModel.Services.csproj
new file mode 100644
index 0000000..b04a7dd
--- /dev/null
+++ b/src/DomainModel/Services/DomainModel.Services.csproj
@@ -0,0 +1,21 @@
+
+
+
+ netstandard1.6
+ DomainModel.Services
+ DomainModel.Services
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ DomainModel.Services
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/DomainModel/Services/ItemService.cs b/src/DomainModel/Services/ItemService.cs
new file mode 100644
index 0000000..b474591
--- /dev/null
+++ b/src/DomainModel/Services/ItemService.cs
@@ -0,0 +1,43 @@
+using System;
+using DomainModel.Models;
+using DomainModel.Infrastracture.Services;
+using DomainModel.Infrastracture.Repositorys;
+using System.Collections.Generic;
+
+namespace DomainModel.Services
+{
+ public class ItemService : IService
-
+ {
+ private IRepository
- _itemRepository { get; set; }
+
+ public ItemService(IRepository
- itemRepository)
+ {
+ _itemRepository = itemRepository;
+ }
+
+ public IEnumerable
- All()
+ {
+ return _itemRepository.All();
+ }
+
+ public Item Find(long id)
+ {
+ return _itemRepository.Find(id);
+ }
+
+ public void Add(Item value)
+ {
+ _itemRepository.Add(value);
+ }
+
+ public void Update(long id, Item value)
+ {
+ _itemRepository.Update(id, value);
+ }
+
+ public void Delete(long id)
+ {
+ _itemRepository.Delete(id);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Package/Package.Controllers/ItemsController.cs b/src/Package/Package.Controllers/ItemsController.cs
new file mode 100644
index 0000000..43963c8
--- /dev/null
+++ b/src/Package/Package.Controllers/ItemsController.cs
@@ -0,0 +1,43 @@
+using System;
+using Microsoft.AspNetCore.Mvc;
+using Package.Infrastracture.Controllers;
+using Package.Infrastracture.Services;
+using Package.Models;
+
+namespace Package.Controllers
+{
+ public class ItemsController : ControllerBase
+ {
+ protected IService
- _itemService { get; set; }
+
+ public ItemsController(IService
- itemService)
+ {
+ _itemService = itemService;
+ }
+
+ public virtual IActionResult Get()
+ {
+ return Ok(_itemService.All());
+ }
+
+ public virtual IActionResult Get(long id)
+ {
+ return Ok(_itemService.Find(id));
+ }
+
+ public virtual void Post([FromBody]Item value)
+ {
+ _itemService.Add(value);
+ }
+
+ public virtual void Put(long id, [FromBody]Item value)
+ {
+ _itemService.Update(id, value);
+ }
+
+ public virtual void Delete(long id)
+ {
+ _itemService.Delete(id);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Package/Package.Controllers/Package.Controllers.csproj b/src/Package/Package.Controllers/Package.Controllers.csproj
new file mode 100644
index 0000000..ad61810
--- /dev/null
+++ b/src/Package/Package.Controllers/Package.Controllers.csproj
@@ -0,0 +1,21 @@
+
+
+
+ netstandard1.6
+ Package.Controllers
+ Package.Controllers
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ Package.Controllers
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Package/Package.Extentions/Extention.cs b/src/Package/Package.Extentions/Extention.cs
new file mode 100644
index 0000000..9404bd6
--- /dev/null
+++ b/src/Package/Package.Extentions/Extention.cs
@@ -0,0 +1,11 @@
+namespace Package.Extentions
+{
+ ///
+ /// 本体
+ /// プラグインの接続ポイントはここでは実装しない。
+ /// カスタマイズ版で提供
+ ///
+ public class Extention
+ {
+ }
+}
diff --git a/src/Package/Package.Extentions/Package.Extentions.csproj b/src/Package/Package.Extentions/Package.Extentions.csproj
new file mode 100644
index 0000000..954020d
--- /dev/null
+++ b/src/Package/Package.Extentions/Package.Extentions.csproj
@@ -0,0 +1,7 @@
+
+
+
+ netstandard1.4
+
+
+
\ No newline at end of file
diff --git a/src/Package/Package.Infrastracture.Controllers/IControllers.cs b/src/Package/Package.Infrastracture.Controllers/IControllers.cs
new file mode 100644
index 0000000..d57df9c
--- /dev/null
+++ b/src/Package/Package.Infrastracture.Controllers/IControllers.cs
@@ -0,0 +1,10 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Package.Infrastracture.Controllers
+{
+ public interface IControllers
+ {
+ }
+}
diff --git a/src/Package/Package.Infrastracture.Controllers/Package.Infrastracture.Controllers.csproj b/src/Package/Package.Infrastracture.Controllers/Package.Infrastracture.Controllers.csproj
new file mode 100644
index 0000000..954020d
--- /dev/null
+++ b/src/Package/Package.Infrastracture.Controllers/Package.Infrastracture.Controllers.csproj
@@ -0,0 +1,7 @@
+
+
+
+ netstandard1.4
+
+
+
\ No newline at end of file
diff --git a/src/Package/Package.Infrastracture.Repositorys/IInRepositorys.cs b/src/Package/Package.Infrastracture.Repositorys/IInRepositorys.cs
new file mode 100644
index 0000000..5dcfd8b
--- /dev/null
+++ b/src/Package/Package.Infrastracture.Repositorys/IInRepositorys.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Package.Infrastracture.Repositorys
+{
+ public interface IInRepositorys
+ {
+ void Add(TEntity value);
+ void Update(long id, TEntity value);
+ }
+}
diff --git a/src/Package/Package.Infrastracture.Repositorys/IOutRepositorys.cs b/src/Package/Package.Infrastracture.Repositorys/IOutRepositorys.cs
new file mode 100644
index 0000000..dbd2168
--- /dev/null
+++ b/src/Package/Package.Infrastracture.Repositorys/IOutRepositorys.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Package.Infrastracture.Repositorys
+{
+ public interface IOutRepositorys
+ {
+ IEnumerable All();
+ TEntity Find(long id);
+ }
+}
diff --git a/src/Package/Package.Infrastracture.Repositorys/IRepository.cs b/src/Package/Package.Infrastracture.Repositorys/IRepository.cs
new file mode 100644
index 0000000..0b0d0a6
--- /dev/null
+++ b/src/Package/Package.Infrastracture.Repositorys/IRepository.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+
+namespace Package.Infrastracture.Repositorys
+{
+ public interface IRepository : IInRepositorys, IOutRepositorys
+ {
+ new IEnumerable All();
+ new TEntity Find(long id);
+ new void Add(TEntity value);
+ new void Update(long id, TEntity value);
+ void Delete(long id);
+ }
+}
diff --git a/src/Package/Package.Infrastracture.Repositorys/Package.Infrastracture.Repositorys.csproj b/src/Package/Package.Infrastracture.Repositorys/Package.Infrastracture.Repositorys.csproj
new file mode 100644
index 0000000..cdcb148
--- /dev/null
+++ b/src/Package/Package.Infrastracture.Repositorys/Package.Infrastracture.Repositorys.csproj
@@ -0,0 +1,15 @@
+
+
+
+ netstandard1.6
+ Package.Infrastracture.Repositorys
+ Package.Infrastracture.Repositorys
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ Package.Infrastracture.Repositorys
+
+
+
\ No newline at end of file
diff --git a/src/Package/Package.Infrastracture.Services/IInService.cs b/src/Package/Package.Infrastracture.Services/IInService.cs
new file mode 100644
index 0000000..60d01c2
--- /dev/null
+++ b/src/Package/Package.Infrastracture.Services/IInService.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Package.Infrastracture.Services
+{
+ public interface IInService
+ {
+ void Add(T value);
+ void Update(long id, T value);
+ }
+}
diff --git a/src/Package/Package.Infrastracture.Services/IOutService.cs b/src/Package/Package.Infrastracture.Services/IOutService.cs
new file mode 100644
index 0000000..e899d42
--- /dev/null
+++ b/src/Package/Package.Infrastracture.Services/IOutService.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Package.Infrastracture.Services
+{
+ public interface IOutService
+ {
+ IEnumerable All();
+ T Find(long id);
+ }
+}
diff --git a/src/Package/Package.Infrastracture.Services/IService.cs b/src/Package/Package.Infrastracture.Services/IService.cs
new file mode 100644
index 0000000..8a51c22
--- /dev/null
+++ b/src/Package/Package.Infrastracture.Services/IService.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+
+namespace Package.Infrastracture.Services
+{
+ public interface IService : IInService, IOutService
+ {
+ new IEnumerable All();
+ new T Find(long id);
+ new void Add(T value);
+ new void Update(long id, T value);
+ void Delete(long id);
+ }
+}
diff --git a/src/Package/Package.Infrastracture.Services/Package.Infrastracture.Services.csproj b/src/Package/Package.Infrastracture.Services/Package.Infrastracture.Services.csproj
new file mode 100644
index 0000000..2e67061
--- /dev/null
+++ b/src/Package/Package.Infrastracture.Services/Package.Infrastracture.Services.csproj
@@ -0,0 +1,15 @@
+
+
+
+ netstandard1.6
+ Package.Infrastracture.Services
+ Package.Infrastracture.Services
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ Package.Infrastracture.Services
+
+
+
\ No newline at end of file
diff --git a/src/Package/Package.Models/Item.cs b/src/Package/Package.Models/Item.cs
new file mode 100644
index 0000000..66e7aff
--- /dev/null
+++ b/src/Package/Package.Models/Item.cs
@@ -0,0 +1,11 @@
+// Copyright © 2015 Dmitry Sikorsky. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace Package.Models
+{
+ public class Item
+ {
+ public int Id { get; set; }
+ public string Name { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/src/Package/Package.Models/ItemDbContext.cs b/src/Package/Package.Models/ItemDbContext.cs
new file mode 100644
index 0000000..7a512f8
--- /dev/null
+++ b/src/Package/Package.Models/ItemDbContext.cs
@@ -0,0 +1,19 @@
+// Copyright © 2015 Dmitry Sikorsky. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using Microsoft.EntityFrameworkCore;
+
+namespace Package.Models
+{
+ public class ItemDbContext : DbContext
+ {
+ public ItemDbContext(DbContextOptions options) :base(options)
+ { }
+ public DbSet
- Items { get; set; }
+ protected override void OnModelCreating(ModelBuilder builder)
+ {
+ builder.Entity
- ().HasKey(m => m.Id);
+ base.OnModelCreating(builder);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Package/Package.Models/Package.Models.csproj b/src/Package/Package.Models/Package.Models.csproj
new file mode 100644
index 0000000..9e6ff36
--- /dev/null
+++ b/src/Package/Package.Models/Package.Models.csproj
@@ -0,0 +1,19 @@
+
+
+
+ netstandard1.6
+ Package.Models
+ Package.Models
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ Package.Models
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Package/Package.Repositorys/ItemRepository.cs b/src/Package/Package.Repositorys/ItemRepository.cs
new file mode 100644
index 0000000..abe11ed
--- /dev/null
+++ b/src/Package/Package.Repositorys/ItemRepository.cs
@@ -0,0 +1,46 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using Package.Models;
+using Package.Infrastracture.Repositorys;
+using Microsoft.EntityFrameworkCore;
+
+namespace Package.Repositorys
+{
+ public class ItemRepository : IRepository
-
+ {
+ private ItemDbContext _itemDbContext { get; set; }
+
+ public ItemRepository(ItemDbContext itemDbContext)
+ {
+ _itemDbContext = itemDbContext;
+ }
+ public IEnumerable
- All()
+ {
+ return _itemDbContext.Items.OrderBy(i => i.Name);
+ }
+ public Item Find(long id)
+ {
+ return _itemDbContext.Items.Where(i => i.Id == id).First();
+ }
+ public void Add(Item value)
+ {
+ _itemDbContext.Items.Add(value);
+ _itemDbContext.SaveChanges();
+ return;
+ }
+ public void Update(long id, Item value)
+ {
+ _itemDbContext.Items.Update(value);
+ _itemDbContext.SaveChanges();
+ return;
+ }
+ public void Delete(long id)
+ {
+ var value = _itemDbContext.Items.Where(i => i.Id == id).First();
+ _itemDbContext.Items.Remove(value);
+ _itemDbContext.SaveChanges();
+ return;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Package/Package.Repositorys/Package.Repositorys.csproj b/src/Package/Package.Repositorys/Package.Repositorys.csproj
new file mode 100644
index 0000000..98fca96
--- /dev/null
+++ b/src/Package/Package.Repositorys/Package.Repositorys.csproj
@@ -0,0 +1,20 @@
+
+
+
+ netstandard1.6
+ Package.Repositorys
+ Package.Repositorys
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ Package.Repositorys
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Package/Package.Services/ItemService.cs b/src/Package/Package.Services/ItemService.cs
new file mode 100644
index 0000000..480e9ac
--- /dev/null
+++ b/src/Package/Package.Services/ItemService.cs
@@ -0,0 +1,43 @@
+using System;
+using Package.Models;
+using Package.Infrastracture.Services;
+using Package.Infrastracture.Repositorys;
+using System.Collections.Generic;
+
+namespace Package.Services
+{
+ public class ItemService : IService
-
+ {
+ private IRepository
- _itemRepository { get; set; }
+
+ public ItemService(IRepository
- itemRepository)
+ {
+ _itemRepository = itemRepository;
+ }
+
+ public IEnumerable
- All()
+ {
+ return _itemRepository.All();
+ }
+
+ public Item Find(long id)
+ {
+ return _itemRepository.Find(id);
+ }
+
+ public void Add(Item value)
+ {
+ _itemRepository.Add(value);
+ }
+
+ public void Update(long id, Item value)
+ {
+ _itemRepository.Update(id, value);
+ }
+
+ public void Delete(long id)
+ {
+ _itemRepository.Delete(id);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/Package/Package.Services/Package.Services.csproj b/src/Package/Package.Services/Package.Services.csproj
new file mode 100644
index 0000000..acf15e6
--- /dev/null
+++ b/src/Package/Package.Services/Package.Services.csproj
@@ -0,0 +1,21 @@
+
+
+
+ netstandard1.6
+ Package.Services
+ Package.Services
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ Package.Services
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/PackageCustum/PackageCustum.Controllers/Items2Controller.cs b/src/PackageCustum/PackageCustum.Controllers/Items2Controller.cs
new file mode 100644
index 0000000..bde38ec
--- /dev/null
+++ b/src/PackageCustum/PackageCustum.Controllers/Items2Controller.cs
@@ -0,0 +1,44 @@
+using System;
+using Microsoft.AspNetCore.Mvc;
+using Package.Infrastracture.Services;
+using PackageCustum.Models;
+
+namespace Package.Controllers
+{
+ [Route("api/package2/[controller]")]
+ public class Items2Controller : Controller
+ {
+ private IService
- _itemService { get; set; }
+
+ public Items2Controller(IService
- itemService)
+ {
+ _itemService = itemService;
+ }
+
+ [HttpGet]
+ public virtual IActionResult Get()
+ {
+ return Ok(_itemService.All());
+ }
+ [HttpGet("{id}")]
+ public virtual IActionResult Get(long id)
+ {
+ return Ok(_itemService.Find(id));
+ }
+ [HttpPost]
+ public virtual void Post([FromBody]Item value)
+ {
+ _itemService.Add(value);
+ }
+ [HttpPut("{id}")]
+ public virtual void Put(long id, [FromBody]Item value)
+ {
+ _itemService.Update(id, value);
+ }
+ [HttpDelete("{id}")]
+ public virtual void Delete(long id)
+ {
+ _itemService.Delete(id);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/PackageCustum/PackageCustum.Controllers/PackageCustum.Controllers.csproj b/src/PackageCustum/PackageCustum.Controllers/PackageCustum.Controllers.csproj
new file mode 100644
index 0000000..6d06f07
--- /dev/null
+++ b/src/PackageCustum/PackageCustum.Controllers/PackageCustum.Controllers.csproj
@@ -0,0 +1,22 @@
+
+
+
+ netstandard1.6
+ PackageCustum.Controllers
+ PackageCustum.Controllers
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ PackageCustum.Controllers
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/PackageCustum/PackageCustum.Models/Item.cs b/src/PackageCustum/PackageCustum.Models/Item.cs
new file mode 100644
index 0000000..7476995
--- /dev/null
+++ b/src/PackageCustum/PackageCustum.Models/Item.cs
@@ -0,0 +1,10 @@
+using System;
+using Package.Models;
+
+namespace PackageCustum.Models
+{
+ public class Item : Package.Models.Item
+ {
+ public string custum { get; set; }
+ }
+}
diff --git a/src/PackageCustum/PackageCustum.Models/Item2DbContext.cs b/src/PackageCustum/PackageCustum.Models/Item2DbContext.cs
new file mode 100644
index 0000000..a6bf903
--- /dev/null
+++ b/src/PackageCustum/PackageCustum.Models/Item2DbContext.cs
@@ -0,0 +1,16 @@
+// Copyright © 2015 Dmitry Sikorsky. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using Microsoft.EntityFrameworkCore;
+using Package.Models;
+using PackageCustum.Models;
+
+namespace PackageCustum.Models
+{
+ public class Item2DbContext : DbContext
+ {
+ public Item2DbContext(DbContextOptions options) :base(options)
+ { }
+ public DbSet
- Items { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/src/PackageCustum/PackageCustum.Models/PackageCustum.Models.csproj b/src/PackageCustum/PackageCustum.Models/PackageCustum.Models.csproj
new file mode 100644
index 0000000..5ecee0d
--- /dev/null
+++ b/src/PackageCustum/PackageCustum.Models/PackageCustum.Models.csproj
@@ -0,0 +1,19 @@
+
+
+
+ netstandard1.6
+ PackageCustum.Models
+ PackageCustum.Models
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ PackageCustum.Models
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/PackageCustum/PackageCustum.Repositorys/ItemCustumRepository.cs b/src/PackageCustum/PackageCustum.Repositorys/ItemCustumRepository.cs
new file mode 100644
index 0000000..ac52c2e
--- /dev/null
+++ b/src/PackageCustum/PackageCustum.Repositorys/ItemCustumRepository.cs
@@ -0,0 +1,44 @@
+namespace PackageCustum.Repositorys
+{
+ using System;
+ using System.Collections.Generic;
+ using System.Linq;
+ using PackageCustum.Models;
+ using Package.Infrastracture.Repositorys;
+
+ public class ItemCustumRepository : IRepository
-
+ {
+ private Item2DbContext _itemDbContext { get; set; }
+ public ItemCustumRepository(Item2DbContext itemDbContext)
+ {
+ _itemDbContext = itemDbContext;
+ }
+ public IEnumerable
- All()
+ {
+ return _itemDbContext.Items.OrderBy(i => i.Name);
+ }
+ public Item Find(long id)
+ {
+ return _itemDbContext.Items.Where(i => i.Id == id).First();
+ }
+ public void Add(Item value)
+ {
+ _itemDbContext.Items.Add(value);
+ _itemDbContext.SaveChanges();
+ return;
+ }
+ public void Update(long id, Item value)
+ {
+ _itemDbContext.Items.Update(value);
+ _itemDbContext.SaveChanges();
+ return;
+ }
+ public void Delete(long id)
+ {
+ var value = _itemDbContext.Items.Where(i => i.Id == id).First();
+ _itemDbContext.Items.Remove(value);
+ _itemDbContext.SaveChanges();
+ return;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/PackageCustum/PackageCustum.Repositorys/PackageCustum.Repositorys.csproj b/src/PackageCustum/PackageCustum.Repositorys/PackageCustum.Repositorys.csproj
new file mode 100644
index 0000000..4527777
--- /dev/null
+++ b/src/PackageCustum/PackageCustum.Repositorys/PackageCustum.Repositorys.csproj
@@ -0,0 +1,21 @@
+
+
+
+ netstandard1.6
+ PackageCustum.Repositorys
+ PackageCustum.Repositorys
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ PackageCustum.Repositorys
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/PackageCustum/PackageCustum.Services/ItemCustumService.cs b/src/PackageCustum/PackageCustum.Services/ItemCustumService.cs
new file mode 100644
index 0000000..2678c91
--- /dev/null
+++ b/src/PackageCustum/PackageCustum.Services/ItemCustumService.cs
@@ -0,0 +1,43 @@
+using System;
+using PackageCustum.Models;
+using Package.Infrastracture.Services;
+using Package.Infrastracture.Repositorys;
+using System.Collections.Generic;
+
+namespace PackageCustum.Services
+{
+ public class ItemCustumService : IService
-
+ {
+ private IRepository
- _itemRepository { get; set; }
+
+ public ItemCustumService(IRepository
- itemRepository)
+ {
+ _itemRepository = itemRepository;
+ }
+
+ public IEnumerable
- All()
+ {
+ return _itemRepository.All();
+ }
+
+ public Item Find(long id)
+ {
+ return _itemRepository.Find(id);
+ }
+
+ public void Add(Item value)
+ {
+ _itemRepository.Add(value);
+ }
+
+ public void Update(long id, Item value)
+ {
+ _itemRepository.Update(id, value);
+ }
+
+ public void Delete(long id)
+ {
+ _itemRepository.Delete(id);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/PackageCustum/PackageCustum.Services/PackageCustum.Services.csproj b/src/PackageCustum/PackageCustum.Services/PackageCustum.Services.csproj
new file mode 100644
index 0000000..de72bb6
--- /dev/null
+++ b/src/PackageCustum/PackageCustum.Services/PackageCustum.Services.csproj
@@ -0,0 +1,21 @@
+
+
+
+ netstandard1.6
+ PackageCustum.Services
+ PackageCustum.Services
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ PackageCustum.Services
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/PackageCustum/PackageCusum.Extentions/Extention.cs b/src/PackageCustum/PackageCusum.Extentions/Extention.cs
new file mode 100644
index 0000000..61cb107
--- /dev/null
+++ b/src/PackageCustum/PackageCusum.Extentions/Extention.cs
@@ -0,0 +1,87 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using ExtCore.Infrastructure;
+using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Routing;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.EntityFrameworkCore;
+using Package.Infrastracture.Repositorys;
+using Package.Infrastracture.Services;
+using PackageCustum.Repositorys;
+using PackageCustum.Services;
+using PackageCustum.Models;
+
+
+namespace PackageCusutm.Extentions
+{
+ ///
+ /// 実装しない。 カスタマイズ版で提供
+ ///
+ public class Extention : IExtension
+ {
+ private IConfigurationRoot configurationRoot;
+
+ public string Name
+ {
+ get
+ {
+ return "Extension PackageCusutm";
+ }
+ }
+
+ public IDictionary> RouteRegistrarsByPriorities
+ {
+ get
+ {
+ Dictionary> routeRegistrarsByPriorities = new Dictionary>();
+
+ routeRegistrarsByPriorities.Add(
+ 2000,
+ routeBuilder =>
+ {
+ routeBuilder.MapRoute(name: "Extension PackageCusutm", template: "{controller=Home}/{action=Index}/{id?}");
+ }
+ );
+
+ return routeRegistrarsByPriorities;
+ }
+ }
+
+ public int ConfigureServicesPriorities
+ {
+ get
+ {
+ return 2001;
+ }
+ }
+ public int ConfigurePriorities
+ {
+ get
+ {
+ return 2001;
+ }
+ }
+ public void SetConfigurationRoot(IConfigurationRoot configurationRoot)
+ {
+ this.configurationRoot = configurationRoot;
+ }
+
+ public void ConfigureServices(IServiceCollection services)
+ {
+ services.AddEntityFrameworkSqlite();
+ services.AddDbContext(options =>
+ {
+ options.UseSqlite(this.configurationRoot["Data:DefaultConnection:ConnectionString"]);
+ });
+ services.AddScoped, ItemCustumService>();
+ services.AddScoped, ItemCustumRepository>();
+ }
+
+ public void Configure(IApplicationBuilder applicationBuilder)
+ {
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/PackageCustum/PackageCusum.Extentions/PackageCusum.Extentions.csproj b/src/PackageCustum/PackageCusum.Extentions/PackageCusum.Extentions.csproj
new file mode 100644
index 0000000..5e0bae8
--- /dev/null
+++ b/src/PackageCustum/PackageCusum.Extentions/PackageCusum.Extentions.csproj
@@ -0,0 +1,21 @@
+
+
+
+ netstandard1.6
+ PackageCustum.Extentions
+ PackageCustum.Extentions
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ PackageCustum.Extentions
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/PackageDefaultCustom/PackageDefaultCustom.Controllers/ItemsController.cs b/src/PackageDefaultCustom/PackageDefaultCustom.Controllers/ItemsController.cs
new file mode 100644
index 0000000..d1efcb4
--- /dev/null
+++ b/src/PackageDefaultCustom/PackageDefaultCustom.Controllers/ItemsController.cs
@@ -0,0 +1,48 @@
+
+namespace PackageDefaultCustom.Controllers
+{
+ using System;
+ using Microsoft.AspNetCore.Mvc;
+ using Package.Controllers;
+ using Package.Infrastracture.Services;
+
+ using Item = Package.Models.Item;
+
+ [Route("api/package/[controller]")]
+ public class ItemsController : Package.Controllers.ItemsController
+ {
+ public ItemsController(IService
- itemService) : base(itemService)
+ {
+ }
+
+ [HttpGet]
+ public override IActionResult Get()
+ {
+ return base.Get();
+ }
+
+ [HttpGet("{id}")]
+ public override IActionResult Get(long id)
+ {
+ return base.Get(id);
+ }
+
+ [HttpPost]
+ public override void Post([FromBody]Item value)
+ {
+ base.Post(value);
+ }
+
+ [HttpPut("{id}")]
+ public override void Put(long id, [FromBody]Item value)
+ {
+ base.Put(id, value);
+ }
+
+ [HttpDelete("{id}")]
+ public override void Delete(long id)
+ {
+ base.Delete(id);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/PackageDefaultCustom/PackageDefaultCustom.Controllers/PackageDefaultCustom.Controllers.csproj b/src/PackageDefaultCustom/PackageDefaultCustom.Controllers/PackageDefaultCustom.Controllers.csproj
new file mode 100644
index 0000000..51e1ce8
--- /dev/null
+++ b/src/PackageDefaultCustom/PackageDefaultCustom.Controllers/PackageDefaultCustom.Controllers.csproj
@@ -0,0 +1,22 @@
+
+
+
+ netstandard1.6
+ PackageDefaultCustom.Controllers
+ PackageDefaultCustom.Controllers
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ PackageDefaultCustom.Controllers
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/PackageDefaultCustom/PackageDefaultCustom.Extentions/Extention.cs b/src/PackageDefaultCustom/PackageDefaultCustom.Extentions/Extention.cs
new file mode 100644
index 0000000..971012e
--- /dev/null
+++ b/src/PackageDefaultCustom/PackageDefaultCustom.Extentions/Extention.cs
@@ -0,0 +1,87 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using ExtCore.Infrastructure;
+using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Routing;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.EntityFrameworkCore;
+using Package.Infrastracture.Repositorys;
+using Package.Infrastracture.Services;
+using PackageDefaultCustom.Repositorys;
+using PackageDefaultCustom.Services;
+using Package.Models;
+
+
+namespace PackageDefaultCustom.Extentions
+{
+ ///
+ /// デフォルトカスタマイズ版(ここの実装が標準)
+ ///
+ public class Extention : IExtension
+ {
+ private IConfigurationRoot configurationRoot;
+
+ public string Name
+ {
+ get
+ {
+ return "Extension PackageDefaultCustom";
+ }
+ }
+
+ public IDictionary> RouteRegistrarsByPriorities
+ {
+ get
+ {
+ Dictionary> routeRegistrarsByPriorities = new Dictionary>();
+
+ routeRegistrarsByPriorities.Add(
+ 2000,
+ routeBuilder =>
+ {
+ routeBuilder.MapRoute(name: "Extension PackageDefaultCustom", template: "{controller=Home}/{action=Index}/{id?}");
+ }
+ );
+
+ return routeRegistrarsByPriorities;
+ }
+ }
+
+ public int ConfigureServicesPriorities
+ {
+ get
+ {
+ return 2001;
+ }
+ }
+ public int ConfigurePriorities
+ {
+ get
+ {
+ return 2001;
+ }
+ }
+ public void SetConfigurationRoot(IConfigurationRoot configurationRoot)
+ {
+ this.configurationRoot = configurationRoot;
+ }
+
+ public void ConfigureServices(IServiceCollection services)
+ {
+ services.AddEntityFrameworkSqlite();
+ services.AddDbContext(options =>
+ {
+ options.UseSqlite(this.configurationRoot["Data:DefaultConnection:ConnectionString"]);
+ });
+ services.AddScoped, ItemDefaultCustomService>();
+ services.AddScoped, ItemDefaultCustomRepository>();
+ }
+
+ public void Configure(IApplicationBuilder applicationBuilder)
+ {
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/PackageDefaultCustom/PackageDefaultCustom.Extentions/PackageDefaultCustom.Extentions.csproj b/src/PackageDefaultCustom/PackageDefaultCustom.Extentions/PackageDefaultCustom.Extentions.csproj
new file mode 100644
index 0000000..b122758
--- /dev/null
+++ b/src/PackageDefaultCustom/PackageDefaultCustom.Extentions/PackageDefaultCustom.Extentions.csproj
@@ -0,0 +1,22 @@
+
+
+
+ netstandard1.6
+ PackageDefaultCustom.Extentions
+ PackageDefaultCustom.Extentions
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ PackageDefaultCustom.Extentions
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/PackageDefaultCustom/PackageDefaultCustom.Models/Item.cs b/src/PackageDefaultCustom/PackageDefaultCustom.Models/Item.cs
new file mode 100644
index 0000000..f4ec77f
--- /dev/null
+++ b/src/PackageDefaultCustom/PackageDefaultCustom.Models/Item.cs
@@ -0,0 +1,10 @@
+using System;
+using Package.Models;
+
+namespace PackageDefaultCustom.Models
+{
+ public class Item : Package.Models.Item
+ {
+ public string custum { get; set; }
+ }
+}
diff --git a/src/PackageDefaultCustom/PackageDefaultCustom.Models/Item2DbContext.cs b/src/PackageDefaultCustom/PackageDefaultCustom.Models/Item2DbContext.cs
new file mode 100644
index 0000000..43441db
--- /dev/null
+++ b/src/PackageDefaultCustom/PackageDefaultCustom.Models/Item2DbContext.cs
@@ -0,0 +1,14 @@
+// Copyright © 2015 Dmitry Sikorsky. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using Microsoft.EntityFrameworkCore;
+
+namespace PackageDefaultCustom.Models
+{
+ public class Item2DbContext : DbContext
+ {
+ public Item2DbContext(DbContextOptions options) :base(options)
+ { }
+ public DbSet
- Items { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/src/PackageDefaultCustom/PackageDefaultCustom.Models/PackageDefaultCustom.Models.csproj b/src/PackageDefaultCustom/PackageDefaultCustom.Models/PackageDefaultCustom.Models.csproj
new file mode 100644
index 0000000..8b556e9
--- /dev/null
+++ b/src/PackageDefaultCustom/PackageDefaultCustom.Models/PackageDefaultCustom.Models.csproj
@@ -0,0 +1,19 @@
+
+
+
+ netstandard1.6
+ PackageDefaultCustom.Models
+ PackageDefaultCustom.Models
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ PackageDefaultCustom.Models
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/PackageDefaultCustom/PackageDefaultCustom.Repositorys/ItemDefaultCustomRepository.cs b/src/PackageDefaultCustom/PackageDefaultCustom.Repositorys/ItemDefaultCustomRepository.cs
new file mode 100644
index 0000000..640e2de
--- /dev/null
+++ b/src/PackageDefaultCustom/PackageDefaultCustom.Repositorys/ItemDefaultCustomRepository.cs
@@ -0,0 +1,41 @@
+namespace PackageDefaultCustom.Repositorys
+{
+ using System;
+ using System.Collections.Generic;
+ using System.Linq;
+ using Package.Models;
+ using Package.Repositorys;
+ using Package.Infrastracture.Repositorys;
+
+ public class ItemDefaultCustomRepository : IRepository
-
+ {
+ private IRepository
- _itemRepository { get; set; }
+ public ItemDefaultCustomRepository(ItemRepository itemRepository)
+ {
+ _itemRepository = itemRepository;
+ }
+ public IEnumerable
- All()
+ {
+ return _itemRepository.All();
+ }
+ public Item Find(long id)
+ {
+ return _itemRepository.Find(id);
+ }
+ public void Add(Item value)
+ {
+ _itemRepository.Add(value);
+ return;
+ }
+ public void Update(long id, Item value)
+ {
+ _itemRepository.Update(id, value);
+ return;
+ }
+ public void Delete(long id)
+ {
+ _itemRepository.Delete(id);
+ return;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/PackageDefaultCustom/PackageDefaultCustom.Repositorys/PackageDefaultCustom.Repositorys.csproj b/src/PackageDefaultCustom/PackageDefaultCustom.Repositorys/PackageDefaultCustom.Repositorys.csproj
new file mode 100644
index 0000000..a87df85
--- /dev/null
+++ b/src/PackageDefaultCustom/PackageDefaultCustom.Repositorys/PackageDefaultCustom.Repositorys.csproj
@@ -0,0 +1,21 @@
+
+
+
+ netstandard1.6
+ PackageDefaultCustom.Repositorys
+ PackageDefaultCustom.Repositorys
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ PackageDefaultCustom.Repositorys
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/PackageDefaultCustom/PackageDefaultCustom.Services/ItemDefaultCustomService.cs b/src/PackageDefaultCustom/PackageDefaultCustom.Services/ItemDefaultCustomService.cs
new file mode 100644
index 0000000..713a4f9
--- /dev/null
+++ b/src/PackageDefaultCustom/PackageDefaultCustom.Services/ItemDefaultCustomService.cs
@@ -0,0 +1,43 @@
+using System;
+using Package.Models;
+using Package.Infrastracture.Services;
+using Package.Infrastracture.Repositorys;
+using System.Collections.Generic;
+
+namespace PackageDefaultCustom.Services
+{
+ public class ItemDefaultCustomService : IService
-
+ {
+ private IService
- _itemService { get; set; }
+
+ public ItemDefaultCustomService(IService
- itemService)
+ {
+ _itemService = itemService;
+ }
+
+ public IEnumerable
- All()
+ {
+ return _itemService.All();
+ }
+
+ public Item Find(long id)
+ {
+ return _itemService.Find(id);
+ }
+
+ public void Add(Item value)
+ {
+ _itemService.Add(value);
+ }
+
+ public void Update(long id, Item value)
+ {
+ _itemService.Update(id, value);
+ }
+
+ public void Delete(long id)
+ {
+ _itemService.Delete(id);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/PackageDefaultCustom/PackageDefaultCustom.Services/PackageDefaultCustom.Services.csproj b/src/PackageDefaultCustom/PackageDefaultCustom.Services/PackageDefaultCustom.Services.csproj
new file mode 100644
index 0000000..79f54c8
--- /dev/null
+++ b/src/PackageDefaultCustom/PackageDefaultCustom.Services/PackageDefaultCustom.Services.csproj
@@ -0,0 +1,22 @@
+
+
+
+ netstandard1.6
+ PackageDefaultCustom.Services
+ PackageDefaultCustom.Services
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+ PackageDefaultCustom.Services
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/WebApplication.EFCoreRawQuery/Controllers/ItemsController.cs b/src/WebApplication.EFCoreRawQuery/Controllers/ItemsController.cs
new file mode 100644
index 0000000..c00d17a
--- /dev/null
+++ b/src/WebApplication.EFCoreRawQuery/Controllers/ItemsController.cs
@@ -0,0 +1,45 @@
+// Copyright © 2015 Dmitry Sikorsky. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using Microsoft.AspNetCore.Mvc;
+using WebApplication.EFCoreRawQuery.Models;
+
+namespace WebApplication.EFCoreRawQuery.Controllers
+{
+ [Route("api/sql/[controller]")]
+ public class ItemsController : Controller
+ {
+ private IItemRepository _itemRepository { get; set; }
+
+ public ItemsController(IItemRepository itemRepository)
+ {
+ _itemRepository = itemRepository;
+ }
+
+ [HttpGet]
+ public IActionResult Get()
+ {
+ return Ok(_itemRepository.All());
+ }
+ [HttpGet("{id}")]
+ public IActionResult Get(long id)
+ {
+ return Ok(_itemRepository.Find(id));
+ }
+ [HttpPost]
+ public void Post([FromBody]Item value)
+ {
+ _itemRepository.Add(value);
+ }
+ [HttpPut("{id}")]
+ public void Put(long id, [FromBody]Item value)
+ {
+ _itemRepository.Update(id, value);
+ }
+ [HttpDelete("{id}")]
+ public void Delete(long id)
+ {
+ _itemRepository.Delete(id);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/WebApplication.EFCoreRawQuery/EFCoreRawQuery.cs b/src/WebApplication.EFCoreRawQuery/EFCoreRawQuery.cs
new file mode 100644
index 0000000..1a96532
--- /dev/null
+++ b/src/WebApplication.EFCoreRawQuery/EFCoreRawQuery.cs
@@ -0,0 +1,79 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using ExtCore.Infrastructure;
+using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Routing;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.EntityFrameworkCore;
+using WebApplication.EFCoreRawQuery.Models;
+
+namespace WebApplication.EFCoreRawQuery
+{
+ public class EFCoreRawQuery : IExtension
+ {
+ private IConfigurationRoot configurationRoot;
+
+ public string Name
+ {
+ get
+ {
+ return "Extension EFCoreRawQuery";
+ }
+ }
+
+ public IDictionary> RouteRegistrarsByPriorities
+ {
+ get
+ {
+ Dictionary> routeRegistrarsByPriorities = new Dictionary>();
+
+ routeRegistrarsByPriorities.Add(
+ 2000,
+ routeBuilder =>
+ {
+ routeBuilder.MapRoute(name: "Extension EFCoreRawQuery", template: "{controller=Home}/{action=Index}/{id?}");
+ }
+ );
+
+ return routeRegistrarsByPriorities;
+ }
+ }
+
+
+ public int ConfigureServicesPriorities
+ {
+ get
+ {
+ return 2001;
+ }
+ }
+ public int ConfigurePriorities
+ {
+ get
+ {
+ return 2001;
+ }
+ }
+ public void SetConfigurationRoot(IConfigurationRoot configurationRoot)
+ {
+ this.configurationRoot = configurationRoot;
+ }
+
+ public void ConfigureServices(IServiceCollection services)
+ {
+ services.AddEntityFrameworkSqlite();
+ services.AddDbContext(options =>
+ {
+ options.UseSqlite(this.configurationRoot["Data:DefaultConnection:ConnectionString"]);
+ });
+ services.AddScoped();
+ }
+
+ public void Configure(IApplicationBuilder applicationBuilder)
+ {
+ }
+ }
+}
diff --git a/src/WebApplication.EFCoreRawQuery/Models/IItemRepository.cs b/src/WebApplication.EFCoreRawQuery/Models/IItemRepository.cs
new file mode 100644
index 0000000..b92343c
--- /dev/null
+++ b/src/WebApplication.EFCoreRawQuery/Models/IItemRepository.cs
@@ -0,0 +1,15 @@
+// Copyright © 2015 Dmitry Sikorsky. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System.Collections.Generic;
+namespace WebApplication.EFCoreRawQuery.Models
+{
+ public interface IItemRepository
+ {
+ IEnumerable
- All();
+ Item Find(long id);
+ void Add(Item value);
+ void Update(long id, Item value);
+ void Delete(long id);
+ }
+}
\ No newline at end of file
diff --git a/src/WebApplication.EFCoreRawQuery/Models/Item.cs b/src/WebApplication.EFCoreRawQuery/Models/Item.cs
new file mode 100644
index 0000000..41d9a8e
--- /dev/null
+++ b/src/WebApplication.EFCoreRawQuery/Models/Item.cs
@@ -0,0 +1,11 @@
+// Copyright © 2015 Dmitry Sikorsky. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+namespace WebApplication.EFCoreRawQuery.Models
+{
+ public class Item
+ {
+ public int Id { get; set; }
+ public string Name { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/src/WebApplication.EFCoreRawQuery/Models/ItemDbContext.cs b/src/WebApplication.EFCoreRawQuery/Models/ItemDbContext.cs
new file mode 100644
index 0000000..ecef139
--- /dev/null
+++ b/src/WebApplication.EFCoreRawQuery/Models/ItemDbContext.cs
@@ -0,0 +1,19 @@
+// Copyright © 2015 Dmitry Sikorsky. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using Microsoft.EntityFrameworkCore;
+
+namespace WebApplication.EFCoreRawQuery.Models
+{
+ public class ItemDbContext : DbContext
+ {
+ public ItemDbContext(DbContextOptions options) :base(options)
+ { }
+ public DbSet
- Items { get; set; }
+ protected override void OnModelCreating(ModelBuilder builder)
+ {
+ builder.Entity
- ().HasKey(m => m.Id);
+ base.OnModelCreating(builder);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/WebApplication.EFCoreRawQuery/Models/ItemRepository.cs b/src/WebApplication.EFCoreRawQuery/Models/ItemRepository.cs
new file mode 100644
index 0000000..5f2d8a3
--- /dev/null
+++ b/src/WebApplication.EFCoreRawQuery/Models/ItemRepository.cs
@@ -0,0 +1,65 @@
+// Copyright © 2015 Dmitry Sikorsky. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System.Collections.Generic;
+using System.Linq;
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Storage;
+using Dapper;
+
+namespace WebApplication.EFCoreRawQuery.Models
+{
+ public class ItemRepository : IItemRepository
+ {
+ private ItemDbContext _itemDbContext { get; set; }
+ public ItemRepository(ItemDbContext itemDbContext)
+ {
+ _itemDbContext = itemDbContext;
+ }
+ public IEnumerable
- All()
+ {
+ var sql = @"
+SELECT Id, Name
+FROM Items
+";
+ var connection = _itemDbContext.Database.GetDbConnection();
+ var result = connection.Query
- (sql);
+
+ return result;
+ }
+ public Item Find(long id)
+ {
+ var sql = $@"
+SELECT Id, Name
+FROM Items
+WHERE
+ 1 = 1
+LIMIT 1
+OFFSET {id} -- true
+";
+ var connection = _itemDbContext.Database.GetDbConnection();
+ var result = connection.Query
- (sql);
+
+ return result.First
- ();
+ }
+ public void Add(Item value)
+ {
+ _itemDbContext.Items.Add(value);
+ _itemDbContext.SaveChanges();
+ return;
+ }
+ public void Update(long id, Item value)
+ {
+ _itemDbContext.Items.Update(value);
+ _itemDbContext.SaveChanges();
+ return;
+ }
+ public void Delete(long id)
+ {
+ var value =_itemDbContext.Items.Where(i => i.Id == id).First();
+ _itemDbContext.Items.Remove(value);
+ _itemDbContext.SaveChanges();
+ return;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/WebApplication.EFCoreRawQuery/Properties/AssemblyInfo.cs b/src/WebApplication.EFCoreRawQuery/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..b7c68d6
--- /dev/null
+++ b/src/WebApplication.EFCoreRawQuery/Properties/AssemblyInfo.cs
@@ -0,0 +1,19 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("WebApplication.EFCoreRawQuery")]
+[assembly: AssemblyTrademark("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("9e153732-43ed-4da7-b464-32c391cc443e")]
diff --git a/src/WebApplication.EFCoreRawQuery/RDFacadeExtensions.cs b/src/WebApplication.EFCoreRawQuery/RDFacadeExtensions.cs
new file mode 100644
index 0000000..cc7021c
--- /dev/null
+++ b/src/WebApplication.EFCoreRawQuery/RDFacadeExtensions.cs
@@ -0,0 +1,103 @@
+using Microsoft.EntityFrameworkCore;
+using Microsoft.EntityFrameworkCore.Infrastructure;
+using Microsoft.EntityFrameworkCore.Internal;
+using Microsoft.EntityFrameworkCore.Storage;
+using Microsoft.Extensions.DependencyInjection;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using System.Reflection;
+using System.Data.Common;
+
+namespace Microsoft.EntityFrameworkCore
+{
+ public static class RDFacadeExtensions
+ {
+ public static RelationalDataReader ExecuteSqlQuery(this DatabaseFacade databaseFacade, string sql, params object[] parameters)
+ {
+ var concurrencyDetector = databaseFacade.GetService();
+
+ using (concurrencyDetector.EnterCriticalSection())
+ {
+ var rawSqlCommand = databaseFacade
+ .GetService()
+ .Build(sql, parameters);
+
+ return rawSqlCommand
+ .RelationalCommand
+ .ExecuteReader(
+ databaseFacade.GetService(),
+ parameterValues: rawSqlCommand.ParameterValues);
+ }
+ }
+
+ public static async Task ExecuteSqlCommandAsync(this DatabaseFacade databaseFacade,
+ string sql,
+ CancellationToken cancellationToken = default(CancellationToken),
+ params object[] parameters)
+ {
+
+ var concurrencyDetector = databaseFacade.GetService();
+
+ using (concurrencyDetector.EnterCriticalSection())
+ {
+ var rawSqlCommand = databaseFacade
+ .GetService()
+ .Build(sql, parameters);
+
+ return await rawSqlCommand
+ .RelationalCommand
+ .ExecuteReaderAsync(
+ databaseFacade.GetService(),
+ parameterValues: rawSqlCommand.ParameterValues,
+ cancellationToken: cancellationToken);
+ }
+ }
+ public static IEnumerable GetModelFromQuery(this DatabaseFacade databaseFacade, string sql, params object[] parameters)
+ where T : new()
+ {
+ using (DbDataReader dr = databaseFacade.ExecuteSqlQuery(sql, parameters).DbDataReader)
+ {
+ List lst = new List();
+ PropertyInfo[] props = typeof(T).GetProperties();
+ while (dr.Read())
+ {
+ T t = new T();
+ IEnumerable actualNames = dr.GetColumnSchema().Select(o => o.ColumnName);
+ for (int i = 0; i < props.Length; ++i)
+ {
+ PropertyInfo pi = props[i];
+
+ if (!pi.CanWrite) continue;
+
+ System.ComponentModel.DataAnnotations.Schema.ColumnAttribute ca = pi.GetCustomAttribute(typeof(System.ComponentModel.DataAnnotations.Schema.ColumnAttribute)) as System.ComponentModel.DataAnnotations.Schema.ColumnAttribute;
+ string name = ca?.Name ?? pi.Name;
+
+ if (pi == null) continue;
+
+ if (!actualNames.Contains(name))
+ {
+ continue;
+ }
+ object value = dr[name];
+ Type pt = pi.DeclaringType;
+ bool nullable = pt.GetTypeInfo().IsGenericType && pt.GetGenericTypeDefinition() == typeof(Nullable<>);
+ if (value == DBNull.Value)
+ {
+ value = null;
+ }
+ if (value == null && pt.GetTypeInfo().IsValueType && !nullable)
+ {
+ value = Activator.CreateInstance(pt);
+ }
+ pi.SetValue(t, value);
+ }//for i
+ lst.Add(t);
+ }//while
+ return lst;
+ }//using dr
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/WebApplication.EFCoreRawQuery/WebApplication.EFCoreRawQuery.csproj b/src/WebApplication.EFCoreRawQuery/WebApplication.EFCoreRawQuery.csproj
new file mode 100644
index 0000000..ced0571
--- /dev/null
+++ b/src/WebApplication.EFCoreRawQuery/WebApplication.EFCoreRawQuery.csproj
@@ -0,0 +1,18 @@
+
+
+
+ netstandard1.6
+ WebApplication.EFCoreRawQuery
+ WebApplication.EFCoreRawQuery
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+
+
+
+
+
+
+
diff --git a/src/WebApplication.Elm/Elm.cs b/src/WebApplication.Elm/Elm.cs
new file mode 100644
index 0000000..6b75fbc
--- /dev/null
+++ b/src/WebApplication.Elm/Elm.cs
@@ -0,0 +1,93 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using ExtCore.Infrastructure;
+using Microsoft.AspNetCore.Builder;
+using Microsoft.AspNetCore.Routing;
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.Http;
+using Microsoft.Extensions.Logging;
+
+namespace WebApplication.Elm
+{
+ public class Elm : IExtension
+ {
+ private IConfigurationRoot configurationRoot;
+
+ public string Name
+ {
+ get
+ {
+ return "Extension Elm";
+ }
+ }
+
+ public IDictionary> RouteRegistrarsByPriorities
+ {
+ get
+ {
+ return null;
+ }
+ }
+
+
+ public int ConfigureServicesPriorities
+ {
+ get
+ {
+ return 100;
+ }
+ }
+ public int ConfigurePriorities
+ {
+ get
+ {
+ return 100;
+ }
+ }
+ public void SetConfigurationRoot(IConfigurationRoot configurationRoot)
+ {
+ this.configurationRoot = configurationRoot;
+ }
+
+ public void ConfigureServices(IServiceCollection services)
+ {
+ services.AddElm(options =>
+ {
+ options.Path = new PathString("/Elm"); // defaults to "/Elm"
+ options.Filter = (name, level) => level >= LogLevel.Information;
+ });
+ }
+
+ public void Configure(IApplicationBuilder app)
+ {
+ app.UseElmPage(); // Shows the logs at the specified path
+ app.UseElmCapture(); // Adds the ElmLoggerProvider
+ var factory = app.ApplicationServices.GetService();
+ var logger = factory.CreateLogger();
+ using (logger.BeginScope("startup"))
+ {
+ logger.LogWarning("Starting up");
+ }
+
+ /*app.Run(async context =>
+ {
+ await context.Response.WriteAsync("Hello world");
+ using (logger.BeginScope("world"))
+ {
+ logger.LogInformation("Hello world!");
+ logger.LogError("Mort");
+ }
+ // This will not get logged because the filter has been set to LogLevel.Information and above
+ using (logger.BeginScope("debug"))
+ {
+ logger.LogDebug("some debug stuff");
+ }
+ });*/
+ logger.LogInformation("This message is not in a scope");
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/WebApplication.Elm/Properties/AssemblyInfo.cs b/src/WebApplication.Elm/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..1052743
--- /dev/null
+++ b/src/WebApplication.Elm/Properties/AssemblyInfo.cs
@@ -0,0 +1,19 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("WebApplication.Elm")]
+[assembly: AssemblyTrademark("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("a5c5400d-dd78-4192-b34b-06d81996f0da")]
diff --git a/src/WebApplication.Elm/WebApplication.Elm.csproj b/src/WebApplication.Elm/WebApplication.Elm.csproj
new file mode 100644
index 0000000..3bf881f
--- /dev/null
+++ b/src/WebApplication.Elm/WebApplication.Elm.csproj
@@ -0,0 +1,18 @@
+
+
+
+ netstandard1.6
+ WebApplication.Elm
+ WebApplication.Elm
+ 1.6.0
+ $(PackageTargetFallback);dotnet5.6;dnxcore50;portable-net45+win8
+ false
+ false
+ false
+
+
+
+
+
+
+
diff --git a/src/WebApplication.ExtensionA/ExtensionA.cs b/src/WebApplication.ExtensionA/ExtensionA.cs
index e583ddb..8116d77 100644
--- a/src/WebApplication.ExtensionA/ExtensionA.cs
+++ b/src/WebApplication.ExtensionA/ExtensionA.cs
@@ -11,47 +11,61 @@
namespace WebApplication.ExtensionA
{
- public class ExtensionA : IExtension
- {
- private IConfigurationRoot configurationRoot;
-
- public string Name
+ public class ExtensionA : IExtension
{
- get
- {
- return "Extension A";
- }
- }
+ private IConfigurationRoot configurationRoot;
- public IDictionary> RouteRegistrarsByPriorities
- {
- get
- {
- Dictionary> routeRegistrarsByPriorities = new Dictionary>();
-
- routeRegistrarsByPriorities.Add(
- 1000,
- routeBuilder =>
- {
- routeBuilder.MapRoute(name: "Extension A", template: "", defaults: new { controller = "ExtensionA", action = "Index" });
- }
- );
-
- return routeRegistrarsByPriorities;
- }
- }
+ public string Name
+ {
+ get
+ {
+ return "Extension A";
+ }
+ }
- public void SetConfigurationRoot(IConfigurationRoot configurationRoot)
- {
- this.configurationRoot = configurationRoot;
- }
+ public IDictionary> RouteRegistrarsByPriorities
+ {
+ get
+ {
+ Dictionary> routeRegistrarsByPriorities = new Dictionary>();
- public void ConfigureServices(IServiceCollection services)
- {
- }
+ routeRegistrarsByPriorities.Add(
+ 2500,
+ routeBuilder =>
+ {
+ routeBuilder.MapRoute(name: "Extension A", template: "", defaults: new { controller = "ExtensionA", action = "Index" });
+ }
+ );
- public void Configure(IApplicationBuilder applicationBuilder)
- {
+ return routeRegistrarsByPriorities;
+ }
+ }
+
+ public int ConfigureServicesPriorities
+ {
+ get
+ {
+ return 1000;
+ }
+ }
+ public int ConfigurePriorities
+ {
+ get
+ {
+ return 1000;
+ }
+ }
+ public void SetConfigurationRoot(IConfigurationRoot configurationRoot)
+ {
+ this.configurationRoot = configurationRoot;
+ }
+
+ public void ConfigureServices(IServiceCollection services)
+ {
+ }
+
+ public void Configure(IApplicationBuilder applicationBuilder)
+ {
+ }
}
- }
}
\ No newline at end of file
diff --git a/src/WebApplication.ExtensionA/Views/ExtensionA/Index.cshtml b/src/WebApplication.ExtensionA/Views/ExtensionA/Index.cshtml
index 1716286..c6212ae 100644
--- a/src/WebApplication.ExtensionA/Views/ExtensionA/Index.cshtml
+++ b/src/WebApplication.ExtensionA/Views/ExtensionA/Index.cshtml
@@ -18,6 +18,8 @@
@item
}
+
Go to Swagger
Go to Extension B
+ Go to Elm