diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 0000000..012cebd
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,50 @@
+pipeline {
+ agent any
+ stages {
+ stage("Props.Shop") {
+ stages {
+ stage("Restore") {
+ steps {
+ dotnetRestore project: "Props.Shop/Props.Shop.sln"
+ dotnetRestore project: "Props.Shop/Props.Shop.Tests.sln"
+ }
+ }
+ stage("Test") {
+ steps {
+ dotnetTest project: "Props.Shop/Props.Shop.Tests.sln"
+ }
+ }
+ stage("Publish") {
+ steps {
+ dotnetPublish configuration: 'Release', project: 'Props.Shop/Props.Shop.sln', selfContained: false, unstableIfWarnings: true
+ }
+ }
+ stage("Load") {
+ steps {
+ sh "python3 scripts/load_shop_modules.py"
+ }
+ }
+ }
+ }
+ stage("Props") {
+ stages {
+ stage("Restore") {
+ steps {
+ dotnetRestore project: "Props"
+ dotnetRestore project: "Props.Tests"
+ }
+ }
+ stage("Test") {
+ steps {
+ dotnetTest project: "Props.Tests"
+ }
+ }
+ stage("Publish") {
+ steps {
+ dotnetPublish configuration: 'Release', project: 'Props', selfContained: false, unstableIfWarnings: true
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/Props-Modules/.vscode/launch.json b/Props-Modules/.vscode/launch.json
deleted file mode 100644
index 25896e7..0000000
--- a/Props-Modules/.vscode/launch.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "version": "0.2.0",
- "configurations": [
- {
- // Use IntelliSense to find out which attributes exist for C# debugging
- // Use hover for the description of the existing attributes
- // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
- "name": ".NET Core Launch (console)",
- "type": "coreclr",
- "request": "launch",
- "preLaunchTask": "build",
- // If you have changed target frameworks, make sure to update the program path.
- "program": "${workspaceFolder}/test/Props.Shop/Adafruit.Tests/bin/Debug/net6.0/Props.Shop.Adafruit.Tests.dll",
- "args": [],
- "cwd": "${workspaceFolder}/test/Props.Shop/Adafruit.Tests",
- // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
- "console": "internalConsole",
- "stopAtEntry": false
- },
- {
- "name": ".NET Core Attach",
- "type": "coreclr",
- "request": "attach",
- "processId": "${command:pickProcess}"
- }
- ]
-}
\ No newline at end of file
diff --git a/Props-Modules/.vscode/tasks.json b/Props-Modules/.vscode/tasks.json
deleted file mode 100644
index b4e84c8..0000000
--- a/Props-Modules/.vscode/tasks.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "version": "2.0.0",
- "tasks": [
- {
- "label": "build",
- "command": "dotnet",
- "type": "process",
- "args": [
- "build",
- "${workspaceFolder}/test/Props.Shop/Adafruit.Tests/Props.Shop.Adafruit.Tests.csproj",
- "/property:GenerateFullPaths=true",
- "/consoleloggerparameters:NoSummary"
- ],
- "problemMatcher": "$msCompile"
- },
- {
- "label": "publish",
- "command": "dotnet",
- "type": "process",
- "args": [
- "publish",
- "${workspaceFolder}/test/Props.Shop/Adafruit.Tests/Props.Shop.Adafruit.Tests.csproj",
- "/property:GenerateFullPaths=true",
- "/consoleloggerparameters:NoSummary"
- ],
- "problemMatcher": "$msCompile"
- },
- {
- "label": "watch",
- "command": "dotnet",
- "type": "process",
- "args": [
- "watch",
- "run",
- "${workspaceFolder}/test/Props.Shop/Adafruit.Tests/Props.Shop.Adafruit.Tests.csproj",
- "/property:GenerateFullPaths=true",
- "/consoleloggerparameters:NoSummary"
- ],
- "problemMatcher": "$msCompile"
- }
- ]
-}
\ No newline at end of file
diff --git a/Props-Modules/test/Props.Shop/Adafruit.Tests/AdafruitShopTest.cs b/Props.Shop/Adafruit.Tests/AdafruitShopTest.cs
similarity index 100%
rename from Props-Modules/test/Props.Shop/Adafruit.Tests/AdafruitShopTest.cs
rename to Props.Shop/Adafruit.Tests/AdafruitShopTest.cs
diff --git a/Props-Modules/test/Props.Shop/Adafruit.Tests/Api/FakeProductListingManager.cs b/Props.Shop/Adafruit.Tests/Api/FakeProductListingManager.cs
similarity index 100%
rename from Props-Modules/test/Props.Shop/Adafruit.Tests/Api/FakeProductListingManager.cs
rename to Props.Shop/Adafruit.Tests/Api/FakeProductListingManager.cs
diff --git a/Props-Modules/test/Props.Shop/Adafruit.Tests/Api/ListingParserTest.cs b/Props.Shop/Adafruit.Tests/Api/ListingParserTest.cs
similarity index 100%
rename from Props-Modules/test/Props.Shop/Adafruit.Tests/Api/ListingParserTest.cs
rename to Props.Shop/Adafruit.Tests/Api/ListingParserTest.cs
diff --git a/Props-Modules/test/Props.Shop/Adafruit.Tests/Api/LiveProductListingManagerTest.cs b/Props.Shop/Adafruit.Tests/Api/LiveProductListingManagerTest.cs
similarity index 100%
rename from Props-Modules/test/Props.Shop/Adafruit.Tests/Api/LiveProductListingManagerTest.cs
rename to Props.Shop/Adafruit.Tests/Api/LiveProductListingManagerTest.cs
diff --git a/Props-Modules/test/Props.Shop/Adafruit.Tests/Api/SearchManagerTest.cs b/Props.Shop/Adafruit.Tests/Api/SearchManagerTest.cs
similarity index 100%
rename from Props-Modules/test/Props.Shop/Adafruit.Tests/Api/SearchManagerTest.cs
rename to Props.Shop/Adafruit.Tests/Api/SearchManagerTest.cs
diff --git a/Props-Modules/test/Props.Shop/Adafruit.Tests/Assets/products.json b/Props.Shop/Adafruit.Tests/Assets/products.json
similarity index 100%
rename from Props-Modules/test/Props.Shop/Adafruit.Tests/Assets/products.json
rename to Props.Shop/Adafruit.Tests/Assets/products.json
diff --git a/Props-Modules/test/Props.Shop/Adafruit.Tests/Props.Shop.Adafruit.Tests.csproj b/Props.Shop/Adafruit.Tests/Props.Shop.Adafruit.Tests.csproj
similarity index 92%
rename from Props-Modules/test/Props.Shop/Adafruit.Tests/Props.Shop.Adafruit.Tests.csproj
rename to Props.Shop/Adafruit.Tests/Props.Shop.Adafruit.Tests.csproj
index 8670d5e..b0aae2b 100644
--- a/Props-Modules/test/Props.Shop/Adafruit.Tests/Props.Shop.Adafruit.Tests.csproj
+++ b/Props.Shop/Adafruit.Tests/Props.Shop.Adafruit.Tests.csproj
@@ -23,7 +23,7 @@
-
+
@@ -32,4 +32,4 @@
-
+
\ No newline at end of file
diff --git a/Props-Modules/Props.Shop/Adafruit/AdafruitShop.cs b/Props.Shop/Adafruit/AdafruitShop.cs
similarity index 100%
rename from Props-Modules/Props.Shop/Adafruit/AdafruitShop.cs
rename to Props.Shop/Adafruit/AdafruitShop.cs
diff --git a/Props-Modules/Props.Shop/Adafruit/Api/IProductListingManager.cs b/Props.Shop/Adafruit/Api/IProductListingManager.cs
similarity index 100%
rename from Props-Modules/Props.Shop/Adafruit/Api/IProductListingManager.cs
rename to Props.Shop/Adafruit/Api/IProductListingManager.cs
diff --git a/Props-Modules/Props.Shop/Adafruit/Api/ListingsParser.cs b/Props.Shop/Adafruit/Api/ListingsParser.cs
similarity index 100%
rename from Props-Modules/Props.Shop/Adafruit/Api/ListingsParser.cs
rename to Props.Shop/Adafruit/Api/ListingsParser.cs
diff --git a/Props-Modules/Props.Shop/Adafruit/Api/LiveProductListingManager.cs b/Props.Shop/Adafruit/Api/LiveProductListingManager.cs
similarity index 100%
rename from Props-Modules/Props.Shop/Adafruit/Api/LiveProductListingManager.cs
rename to Props.Shop/Adafruit/Api/LiveProductListingManager.cs
diff --git a/Props-Modules/Props.Shop/Adafruit/Api/SearchManager.cs b/Props.Shop/Adafruit/Api/SearchManager.cs
similarity index 100%
rename from Props-Modules/Props.Shop/Adafruit/Api/SearchManager.cs
rename to Props.Shop/Adafruit/Api/SearchManager.cs
diff --git a/Props-Modules/Props.Shop/Adafruit/Persistence/Configuration.cs b/Props.Shop/Adafruit/Persistence/Configuration.cs
similarity index 100%
rename from Props-Modules/Props.Shop/Adafruit/Persistence/Configuration.cs
rename to Props.Shop/Adafruit/Persistence/Configuration.cs
diff --git a/Props-Modules/Props.Shop/Adafruit/Persistence/ProductListingCacheData.cs b/Props.Shop/Adafruit/Persistence/ProductListingCacheData.cs
similarity index 100%
rename from Props-Modules/Props.Shop/Adafruit/Persistence/ProductListingCacheData.cs
rename to Props.Shop/Adafruit/Persistence/ProductListingCacheData.cs
diff --git a/Props-Modules/Props.Shop/Adafruit/Props.Shop.Adafruit.csproj b/Props.Shop/Adafruit/Props.Shop.Adafruit.csproj
similarity index 100%
rename from Props-Modules/Props.Shop/Adafruit/Props.Shop.Adafruit.csproj
rename to Props.Shop/Adafruit/Props.Shop.Adafruit.csproj
diff --git a/Props-Modules/Props.Shop/Framework/Currency.cs b/Props.Shop/Framework/Currency.cs
similarity index 100%
rename from Props-Modules/Props.Shop/Framework/Currency.cs
rename to Props.Shop/Framework/Currency.cs
diff --git a/Props-Modules/Props.Shop/Framework/Filters.cs b/Props.Shop/Framework/Filters.cs
similarity index 100%
rename from Props-Modules/Props.Shop/Framework/Filters.cs
rename to Props.Shop/Framework/Filters.cs
diff --git a/Props-Modules/Props.Shop/Framework/IOption.cs b/Props.Shop/Framework/IOption.cs
similarity index 100%
rename from Props-Modules/Props.Shop/Framework/IOption.cs
rename to Props.Shop/Framework/IOption.cs
diff --git a/Props-Modules/Props.Shop/Framework/IShop.cs b/Props.Shop/Framework/IShop.cs
similarity index 100%
rename from Props-Modules/Props.Shop/Framework/IShop.cs
rename to Props.Shop/Framework/IShop.cs
diff --git a/Props-Modules/Props.Shop/Framework/ProductListing.cs b/Props.Shop/Framework/ProductListing.cs
similarity index 100%
rename from Props-Modules/Props.Shop/Framework/ProductListing.cs
rename to Props.Shop/Framework/ProductListing.cs
diff --git a/Props-Modules/Props.Shop/Framework/Props.Shop.Framework.csproj b/Props.Shop/Framework/Props.Shop.Framework.csproj
similarity index 100%
rename from Props-Modules/Props.Shop/Framework/Props.Shop.Framework.csproj
rename to Props.Shop/Framework/Props.Shop.Framework.csproj
diff --git a/Props-Modules/Props.Shop/Framework/SupportedFeatures.cs b/Props.Shop/Framework/SupportedFeatures.cs
similarity index 100%
rename from Props-Modules/Props.Shop/Framework/SupportedFeatures.cs
rename to Props.Shop/Framework/SupportedFeatures.cs
diff --git a/Props.Shop/Props.Shop.Tests.sln b/Props.Shop/Props.Shop.Tests.sln
new file mode 100644
index 0000000..349855b
--- /dev/null
+++ b/Props.Shop/Props.Shop.Tests.sln
@@ -0,0 +1,22 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30114.105
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Props.Shop.Adafruit.Tests", "Adafruit.Tests\Props.Shop.Adafruit.Tests.csproj", "{DDE31868-2F4E-43D1-9955-E1B4C1BB13A0}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {DDE31868-2F4E-43D1-9955-E1B4C1BB13A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {DDE31868-2F4E-43D1-9955-E1B4C1BB13A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {DDE31868-2F4E-43D1-9955-E1B4C1BB13A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {DDE31868-2F4E-43D1-9955-E1B4C1BB13A0}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+EndGlobal
diff --git a/Props.Shop/Props.Shop.sln b/Props.Shop/Props.Shop.sln
new file mode 100644
index 0000000..0844767
--- /dev/null
+++ b/Props.Shop/Props.Shop.sln
@@ -0,0 +1,28 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.30114.105
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Props.Shop.Adafruit", "Adafruit\Props.Shop.Adafruit.csproj", "{9C8E4646-C49E-422E-9884-A49D4A05998C}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Props.Shop.Framework", "Framework\Props.Shop.Framework.csproj", "{2ED74B8A-F8A7-4DA0-B8E9-AE97207AB20A}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {9C8E4646-C49E-422E-9884-A49D4A05998C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {9C8E4646-C49E-422E-9884-A49D4A05998C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {9C8E4646-C49E-422E-9884-A49D4A05998C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {9C8E4646-C49E-422E-9884-A49D4A05998C}.Release|Any CPU.Build.0 = Release|Any CPU
+ {2ED74B8A-F8A7-4DA0-B8E9-AE97207AB20A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {2ED74B8A-F8A7-4DA0-B8E9-AE97207AB20A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {2ED74B8A-F8A7-4DA0-B8E9-AE97207AB20A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {2ED74B8A-F8A7-4DA0-B8E9-AE97207AB20A}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+EndGlobal
diff --git a/Props.Tests/Props.Tests.csproj b/Props.Tests/Props.Tests.csproj
new file mode 100644
index 0000000..99e24b5
--- /dev/null
+++ b/Props.Tests/Props.Tests.csproj
@@ -0,0 +1,23 @@
+
+
+
+ net6.0
+ enable
+
+ false
+
+
+
+
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+
+
diff --git a/Props.Tests/UnitTest1.cs b/Props.Tests/UnitTest1.cs
new file mode 100644
index 0000000..4ab1e90
--- /dev/null
+++ b/Props.Tests/UnitTest1.cs
@@ -0,0 +1,12 @@
+using Xunit;
+
+namespace Props.Tests;
+
+public class UnitTest1
+{
+ [Fact]
+ public void Test1()
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/Props/Pages/Shared/_Layout.cshtml b/Props/Pages/Shared/_Layout.cshtml
index 26bb7e2..1a3b405 100644
--- a/Props/Pages/Shared/_Layout.cshtml
+++ b/Props/Pages/Shared/_Layout.cshtml
@@ -13,6 +13,7 @@
@if (!string.IsNullOrEmpty((ViewData["Specific"] as string)))
{
+ @* Adds page specific scripts semi-automatically. *@
}
diff --git a/Props/Props.csproj b/Props/Props.csproj
index ab42472..720b6e1 100644
--- a/Props/Props.csproj
+++ b/Props/Props.csproj
@@ -1,5 +1,5 @@
-
+
net6.0
aspnet-Props-20A2A991-EC61-4C06-91D2-953482026A7B
@@ -43,7 +43,7 @@
-
+
@@ -51,4 +51,4 @@
-
+
\ No newline at end of file
diff --git a/Props/package.json b/Props/package.json
index f8ed97c..4b842ed 100644
--- a/Props/package.json
+++ b/Props/package.json
@@ -1,11 +1,10 @@
{
"private": true,
- "main": "js/index.js",
"scripts": {
"build": "webpack --config webpack.prod.js",
"build:dev": "webpack --config webpack.dev.js",
"build:prod": "webpack --config webpack.prod.js",
- "postinstall": "python ../scripts/npm_post_install.py"
+ "postinstall": "python3 ../scripts/clear_webpack_cache.py"
},
"keywords": [],
"author": "",
diff --git a/scripts/utils/clear_webpack_cache.py b/scripts/clear_webpack_cache.py
similarity index 89%
rename from scripts/utils/clear_webpack_cache.py
rename to scripts/clear_webpack_cache.py
index 7ac04b3..0c5f501 100644
--- a/scripts/utils/clear_webpack_cache.py
+++ b/scripts/clear_webpack_cache.py
@@ -10,5 +10,5 @@ def clear():
shutil.rmtree(CACHE_DIR, ignore_errors=True)
-if __name__ == "main":
+if __name__ == "__main__":
clear()
diff --git a/scripts/load_shop_modules.py b/scripts/load_shop_modules.py
new file mode 100644
index 0000000..541c76e
--- /dev/null
+++ b/scripts/load_shop_modules.py
@@ -0,0 +1,26 @@
+
+from glob import glob
+import os
+import shutil
+
+
+PROP_SHOP_MODULES_DIR = "Props.Shop"
+PROPS_SHOP_MODULES_DST = "Props/shops"
+NET_VER = "net6.0"
+
+SHOP_MODULE_GLOB = "**/bin/Release/{net_ver}/publish/*.{ext}"
+EXTS = ["deps.json", "dll"]
+
+
+def load():
+ os.chdir(os.path.dirname(os.path.realpath(__file__)))
+ os.chdir("..")
+ os.chdir(PROP_SHOP_MODULES_DIR)
+ for ext in EXTS:
+ results = glob(SHOP_MODULE_GLOB.format(net_ver=NET_VER, ext=ext))
+ for result in results:
+ shutil.copy(result, PROPS_SHOP_MODULES_DST)
+
+
+if __name__ == "__main__":
+ load()
diff --git a/scripts/npm_post_install.py b/scripts/npm_post_install.py
deleted file mode 100644
index 170e446..0000000
--- a/scripts/npm_post_install.py
+++ /dev/null
@@ -1,3 +0,0 @@
-import utils.clear_webpack_cache as clear_webpack_cache
-
-clear_webpack_cache.clear() # Refer to https://webpack.js.org/guides/build-performance/#persistent-cache and https://webpack.js.org/blog/2020-10-10-webpack-5-release/#persistent-caching
diff --git a/scripts/utils/__init__.py b/scripts/utils/__init__.py
deleted file mode 100644
index 8b13789..0000000
--- a/scripts/utils/__init__.py
+++ /dev/null
@@ -1 +0,0 @@
-