diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..88dbff1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.vs/
diff --git a/ShopAPI/.vs/ProjectEvaluation/shopapi.metadata.v9.bin b/ShopAPI/.vs/ProjectEvaluation/shopapi.metadata.v9.bin
deleted file mode 100644
index d9d2e0f..0000000
Binary files a/ShopAPI/.vs/ProjectEvaluation/shopapi.metadata.v9.bin and /dev/null differ
diff --git a/ShopAPI/.vs/ProjectEvaluation/shopapi.projects.v9.bin b/ShopAPI/.vs/ProjectEvaluation/shopapi.projects.v9.bin
deleted file mode 100644
index bb8ae48..0000000
Binary files a/ShopAPI/.vs/ProjectEvaluation/shopapi.projects.v9.bin and /dev/null differ
diff --git a/ShopAPI/.vs/ProjectEvaluation/shopapi.strings.v9.bin b/ShopAPI/.vs/ProjectEvaluation/shopapi.strings.v9.bin
deleted file mode 100644
index 99e47d4..0000000
Binary files a/ShopAPI/.vs/ProjectEvaluation/shopapi.strings.v9.bin and /dev/null differ
diff --git a/ShopAPI/.vs/ShopAPI/CopilotIndices/17.14.1584.41681/CodeChunks.db b/ShopAPI/.vs/ShopAPI/CopilotIndices/17.14.1584.41681/CodeChunks.db
deleted file mode 100644
index 947660f..0000000
Binary files a/ShopAPI/.vs/ShopAPI/CopilotIndices/17.14.1584.41681/CodeChunks.db and /dev/null differ
diff --git a/ShopAPI/.vs/ShopAPI/CopilotIndices/17.14.1584.41681/SemanticSymbols.db b/ShopAPI/.vs/ShopAPI/CopilotIndices/17.14.1584.41681/SemanticSymbols.db
deleted file mode 100644
index 214786f..0000000
Binary files a/ShopAPI/.vs/ShopAPI/CopilotIndices/17.14.1584.41681/SemanticSymbols.db and /dev/null differ
diff --git a/ShopAPI/.vs/ShopAPI/CopilotIndices/17.14.1601.40145/CodeChunks.db b/ShopAPI/.vs/ShopAPI/CopilotIndices/17.14.1601.40145/CodeChunks.db
deleted file mode 100644
index 07bccf7..0000000
Binary files a/ShopAPI/.vs/ShopAPI/CopilotIndices/17.14.1601.40145/CodeChunks.db and /dev/null differ
diff --git a/ShopAPI/.vs/ShopAPI/CopilotIndices/17.14.1601.40145/SemanticSymbols.db b/ShopAPI/.vs/ShopAPI/CopilotIndices/17.14.1601.40145/SemanticSymbols.db
deleted file mode 100644
index e4a4780..0000000
Binary files a/ShopAPI/.vs/ShopAPI/CopilotIndices/17.14.1601.40145/SemanticSymbols.db and /dev/null differ
diff --git a/ShopAPI/.vs/ShopAPI/DesignTimeBuild/.dtbcache.v2 b/ShopAPI/.vs/ShopAPI/DesignTimeBuild/.dtbcache.v2
deleted file mode 100644
index 1b8f82a..0000000
Binary files a/ShopAPI/.vs/ShopAPI/DesignTimeBuild/.dtbcache.v2 and /dev/null differ
diff --git a/ShopAPI/.vs/ShopAPI/FileContentIndex/1e2204fb-099a-4c19-8b09-30083200737f.vsidx b/ShopAPI/.vs/ShopAPI/FileContentIndex/1e2204fb-099a-4c19-8b09-30083200737f.vsidx
deleted file mode 100644
index 70aef67..0000000
Binary files a/ShopAPI/.vs/ShopAPI/FileContentIndex/1e2204fb-099a-4c19-8b09-30083200737f.vsidx and /dev/null differ
diff --git a/ShopAPI/.vs/ShopAPI/FileContentIndex/39315f35-23b9-4284-9beb-ab6e489cee9f.vsidx b/ShopAPI/.vs/ShopAPI/FileContentIndex/39315f35-23b9-4284-9beb-ab6e489cee9f.vsidx
deleted file mode 100644
index 140efdd..0000000
Binary files a/ShopAPI/.vs/ShopAPI/FileContentIndex/39315f35-23b9-4284-9beb-ab6e489cee9f.vsidx and /dev/null differ
diff --git a/ShopAPI/.vs/ShopAPI/FileContentIndex/4a8f7e5d-5d38-45e3-b7d2-3d7410bf6a06.vsidx b/ShopAPI/.vs/ShopAPI/FileContentIndex/4a8f7e5d-5d38-45e3-b7d2-3d7410bf6a06.vsidx
deleted file mode 100644
index 2bf7cdd..0000000
Binary files a/ShopAPI/.vs/ShopAPI/FileContentIndex/4a8f7e5d-5d38-45e3-b7d2-3d7410bf6a06.vsidx and /dev/null differ
diff --git a/ShopAPI/.vs/ShopAPI/FileContentIndex/9f526fe3-af3c-45ba-b3dc-de6ad8f850ad.vsidx b/ShopAPI/.vs/ShopAPI/FileContentIndex/9f526fe3-af3c-45ba-b3dc-de6ad8f850ad.vsidx
deleted file mode 100644
index e3775b8..0000000
Binary files a/ShopAPI/.vs/ShopAPI/FileContentIndex/9f526fe3-af3c-45ba-b3dc-de6ad8f850ad.vsidx and /dev/null differ
diff --git a/ShopAPI/.vs/ShopAPI/FileContentIndex/a2bbe2f9-4b5e-4c2a-8855-61d2203dee50.vsidx b/ShopAPI/.vs/ShopAPI/FileContentIndex/a2bbe2f9-4b5e-4c2a-8855-61d2203dee50.vsidx
deleted file mode 100644
index ed12cca..0000000
Binary files a/ShopAPI/.vs/ShopAPI/FileContentIndex/a2bbe2f9-4b5e-4c2a-8855-61d2203dee50.vsidx and /dev/null differ
diff --git a/ShopAPI/.vs/ShopAPI/config/applicationhost.config b/ShopAPI/.vs/ShopAPI/config/applicationhost.config
deleted file mode 100644
index 0d88f0d..0000000
--- a/ShopAPI/.vs/ShopAPI/config/applicationhost.config
+++ /dev/null
@@ -1,1016 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ShopAPI/.vs/ShopAPI/copilot-chat/0b385e7e/sessions/207d265b-07fa-430f-aafd-2f0426b35c44 b/ShopAPI/.vs/ShopAPI/copilot-chat/0b385e7e/sessions/207d265b-07fa-430f-aafd-2f0426b35c44
deleted file mode 100644
index b4bf7df..0000000
Binary files a/ShopAPI/.vs/ShopAPI/copilot-chat/0b385e7e/sessions/207d265b-07fa-430f-aafd-2f0426b35c44 and /dev/null differ
diff --git a/ShopAPI/.vs/ShopAPI/copilot-chat/0b385e7e/sessions/2d585096-b711-4e96-b29d-0677b62f7e90 b/ShopAPI/.vs/ShopAPI/copilot-chat/0b385e7e/sessions/2d585096-b711-4e96-b29d-0677b62f7e90
deleted file mode 100644
index cf5a77c..0000000
Binary files a/ShopAPI/.vs/ShopAPI/copilot-chat/0b385e7e/sessions/2d585096-b711-4e96-b29d-0677b62f7e90 and /dev/null differ
diff --git a/ShopAPI/.vs/ShopAPI/copilot-chat/0b385e7e/sessions/6b05809f-c8e2-4206-8bdb-82486d224606 b/ShopAPI/.vs/ShopAPI/copilot-chat/0b385e7e/sessions/6b05809f-c8e2-4206-8bdb-82486d224606
deleted file mode 100644
index 33bb58b..0000000
Binary files a/ShopAPI/.vs/ShopAPI/copilot-chat/0b385e7e/sessions/6b05809f-c8e2-4206-8bdb-82486d224606 and /dev/null differ
diff --git a/ShopAPI/.vs/ShopAPI/copilot-chat/0b385e7e/sessions/b74d9adb-96d6-45a9-9a6a-b26571fccdf0 b/ShopAPI/.vs/ShopAPI/copilot-chat/0b385e7e/sessions/b74d9adb-96d6-45a9-9a6a-b26571fccdf0
deleted file mode 100644
index a01c33d..0000000
Binary files a/ShopAPI/.vs/ShopAPI/copilot-chat/0b385e7e/sessions/b74d9adb-96d6-45a9-9a6a-b26571fccdf0 and /dev/null differ
diff --git a/ShopAPI/.vs/ShopAPI/copilot-chat/0b385e7e/sessions/da5f55a2-7b20-4cab-aba4-9dbd67e9a178 b/ShopAPI/.vs/ShopAPI/copilot-chat/0b385e7e/sessions/da5f55a2-7b20-4cab-aba4-9dbd67e9a178
deleted file mode 100644
index eb68366..0000000
Binary files a/ShopAPI/.vs/ShopAPI/copilot-chat/0b385e7e/sessions/da5f55a2-7b20-4cab-aba4-9dbd67e9a178 and /dev/null differ
diff --git a/ShopAPI/.vs/ShopAPI/copilot-chat/0b385e7e/sessions/f137d978-6e7a-4641-8162-fc0f54683491 b/ShopAPI/.vs/ShopAPI/copilot-chat/0b385e7e/sessions/f137d978-6e7a-4641-8162-fc0f54683491
deleted file mode 100644
index b2353b2..0000000
Binary files a/ShopAPI/.vs/ShopAPI/copilot-chat/0b385e7e/sessions/f137d978-6e7a-4641-8162-fc0f54683491 and /dev/null differ
diff --git a/ShopAPI/.vs/ShopAPI/copilot-chat/0b385e7e/sessions/f764c44e-b942-4f27-a8f7-8e4b5e93203e b/ShopAPI/.vs/ShopAPI/copilot-chat/0b385e7e/sessions/f764c44e-b942-4f27-a8f7-8e4b5e93203e
deleted file mode 100644
index ae2006b..0000000
Binary files a/ShopAPI/.vs/ShopAPI/copilot-chat/0b385e7e/sessions/f764c44e-b942-4f27-a8f7-8e4b5e93203e and /dev/null differ
diff --git a/ShopAPI/.vs/ShopAPI/v17/.futdcache.v2 b/ShopAPI/.vs/ShopAPI/v17/.futdcache.v2
deleted file mode 100644
index e80f3bc..0000000
Binary files a/ShopAPI/.vs/ShopAPI/v17/.futdcache.v2 and /dev/null differ
diff --git a/ShopAPI/.vs/ShopAPI/v17/.suo b/ShopAPI/.vs/ShopAPI/v17/.suo
deleted file mode 100644
index d94dfa3..0000000
Binary files a/ShopAPI/.vs/ShopAPI/v17/.suo and /dev/null differ
diff --git a/ShopAPI/.vs/ShopAPI/v17/DocumentLayout.backup.json b/ShopAPI/.vs/ShopAPI/v17/DocumentLayout.backup.json
deleted file mode 100644
index e9c4fc6..0000000
--- a/ShopAPI/.vs/ShopAPI/v17/DocumentLayout.backup.json
+++ /dev/null
@@ -1,126 +0,0 @@
-{
- "Version": 1,
- "WorkspaceRootPath": "C:\\Users\\bib\\Desktop\\Projekt-Fluxon\\shop_Fluxon\\ShopAPI\\",
- "Documents": [
- {
- "AbsoluteMoniker": "D:0:0:{154C8A2E-F4A9-49D0-B845-3319E9C04489}|ShopAPI\\ShopAPI.csproj|c:\\users\\bib\\desktop\\projekt-fluxon\\shop_fluxon\\shopapi\\shopapi\\controllers\\authcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{154C8A2E-F4A9-49D0-B845-3319E9C04489}|ShopAPI\\ShopAPI.csproj|solutionrelative:shopapi\\controllers\\authcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{154C8A2E-F4A9-49D0-B845-3319E9C04489}|ShopAPI\\ShopAPI.csproj|c:\\users\\bib\\desktop\\projekt-fluxon\\shop_fluxon\\shopapi\\shopapi\\services\\authservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{154C8A2E-F4A9-49D0-B845-3319E9C04489}|ShopAPI\\ShopAPI.csproj|solutionrelative:shopapi\\services\\authservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{154C8A2E-F4A9-49D0-B845-3319E9C04489}|ShopAPI\\ShopAPI.csproj|c:\\users\\bib\\desktop\\projekt-fluxon\\shop_fluxon\\shopapi\\shopapi\\dtos\\registerdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{154C8A2E-F4A9-49D0-B845-3319E9C04489}|ShopAPI\\ShopAPI.csproj|solutionrelative:shopapi\\dtos\\registerdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{154C8A2E-F4A9-49D0-B845-3319E9C04489}|ShopAPI\\ShopAPI.csproj|c:\\users\\bib\\desktop\\projekt-fluxon\\shop_fluxon\\shopapi\\shopapi\\dtos\\logindto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{154C8A2E-F4A9-49D0-B845-3319E9C04489}|ShopAPI\\ShopAPI.csproj|solutionrelative:shopapi\\dtos\\logindto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{154C8A2E-F4A9-49D0-B845-3319E9C04489}|ShopAPI\\ShopAPI.csproj|c:\\users\\bib\\desktop\\projekt-fluxon\\shop_fluxon\\shopapi\\shopapi\\data\\appdbcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{154C8A2E-F4A9-49D0-B845-3319E9C04489}|ShopAPI\\ShopAPI.csproj|solutionrelative:shopapi\\data\\appdbcontext.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{154C8A2E-F4A9-49D0-B845-3319E9C04489}|ShopAPI\\ShopAPI.csproj|c:\\users\\bib\\desktop\\projekt-fluxon\\shop_fluxon\\shopapi\\shopapi\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{154C8A2E-F4A9-49D0-B845-3319E9C04489}|ShopAPI\\ShopAPI.csproj|solutionrelative:shopapi\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- }
- ],
- "DocumentGroupContainers": [
- {
- "Orientation": 0,
- "VerticalTabListWidth": 256,
- "DocumentGroups": [
- {
- "DockedWidth": 200,
- "SelectedChildIndex": 2,
- "Children": [
- {
- "$type": "Bookmark",
- "Name": "ST:0:0:{b1e99781-ab81-11d0-b683-00aa00a3ee26}"
- },
- {
- "$type": "Document",
- "DocumentIndex": 5,
- "Title": "Program.cs",
- "DocumentMoniker": "C:\\Users\\bib\\Desktop\\Projekt-Fluxon\\shop_Fluxon\\ShopAPI\\ShopAPI\\Program.cs",
- "RelativeDocumentMoniker": "ShopAPI\\Program.cs",
- "ToolTip": "C:\\Users\\bib\\Desktop\\Projekt-Fluxon\\shop_Fluxon\\ShopAPI\\ShopAPI\\Program.cs",
- "RelativeToolTip": "ShopAPI\\Program.cs",
- "ViewState": "AgIAAA4AAAAAAAAAAAAAACYAAAAWAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-15T15:50:24.918Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 0,
- "Title": "AuthController.cs",
- "DocumentMoniker": "C:\\Users\\bib\\Desktop\\Projekt-Fluxon\\shop_Fluxon\\ShopAPI\\ShopAPI\\Controllers\\AuthController.cs",
- "RelativeDocumentMoniker": "ShopAPI\\Controllers\\AuthController.cs",
- "ToolTip": "C:\\Users\\bib\\Desktop\\Projekt-Fluxon\\shop_Fluxon\\ShopAPI\\ShopAPI\\Controllers\\AuthController.cs",
- "RelativeToolTip": "ShopAPI\\Controllers\\AuthController.cs",
- "ViewState": "AgIAAAgAAAAAAAAAAAAxwBYAAABCAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-15T00:14:13.509Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 1,
- "Title": "AuthService.cs",
- "DocumentMoniker": "C:\\Users\\bib\\Desktop\\Projekt-Fluxon\\shop_Fluxon\\ShopAPI\\ShopAPI\\Services\\AuthService.cs",
- "RelativeDocumentMoniker": "ShopAPI\\Services\\AuthService.cs",
- "ToolTip": "C:\\Users\\bib\\Desktop\\Projekt-Fluxon\\shop_Fluxon\\ShopAPI\\ShopAPI\\Services\\AuthService.cs",
- "RelativeToolTip": "ShopAPI\\Services\\AuthService.cs",
- "ViewState": "AgIAABYAAAAAAAAAAAAQwFQAAAAJAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-14T23:14:57.991Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 2,
- "Title": "RegisterDto.cs",
- "DocumentMoniker": "C:\\Users\\bib\\Desktop\\Projekt-Fluxon\\shop_Fluxon\\ShopAPI\\ShopAPI\\DTOs\\RegisterDto.cs",
- "RelativeDocumentMoniker": "ShopAPI\\DTOs\\RegisterDto.cs",
- "ToolTip": "C:\\Users\\bib\\Desktop\\Projekt-Fluxon\\shop_Fluxon\\ShopAPI\\ShopAPI\\DTOs\\RegisterDto.cs",
- "RelativeToolTip": "ShopAPI\\DTOs\\RegisterDto.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-14T23:13:07.276Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 3,
- "Title": "LoginDto.cs",
- "DocumentMoniker": "C:\\Users\\bib\\Desktop\\Projekt-Fluxon\\shop_Fluxon\\ShopAPI\\ShopAPI\\DTOs\\LoginDto.cs",
- "RelativeDocumentMoniker": "ShopAPI\\DTOs\\LoginDto.cs",
- "ToolTip": "C:\\Users\\bib\\Desktop\\Projekt-Fluxon\\shop_Fluxon\\ShopAPI\\ShopAPI\\DTOs\\LoginDto.cs",
- "RelativeToolTip": "ShopAPI\\DTOs\\LoginDto.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAUAAAAbAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-14T23:14:22.424Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 4,
- "Title": "AppDbContext.cs",
- "DocumentMoniker": "C:\\Users\\bib\\Desktop\\Projekt-Fluxon\\shop_Fluxon\\ShopAPI\\ShopAPI\\Data\\AppDbContext.cs",
- "RelativeDocumentMoniker": "ShopAPI\\Data\\AppDbContext.cs",
- "ToolTip": "C:\\Users\\bib\\Desktop\\Projekt-Fluxon\\shop_Fluxon\\ShopAPI\\ShopAPI\\Data\\AppDbContext.cs",
- "RelativeToolTip": "ShopAPI\\Data\\AppDbContext.cs",
- "ViewState": "AgIAAAwAAAAAAAAAAAAYwBcAAAAoAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-13T23:17:21.987Z",
- "EditorCaption": ""
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/ShopAPI/.vs/ShopAPI/v17/DocumentLayout.json b/ShopAPI/.vs/ShopAPI/v17/DocumentLayout.json
deleted file mode 100644
index 94c6160..0000000
--- a/ShopAPI/.vs/ShopAPI/v17/DocumentLayout.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "Version": 1,
- "WorkspaceRootPath": "C:\\Users\\bib\\Desktop\\Projekt-Fluxon\\shop_Fluxon\\ShopAPI\\",
- "Documents": [
- {
- "AbsoluteMoniker": "D:0:0:{154C8A2E-F4A9-49D0-B845-3319E9C04489}|ShopAPI\\ShopAPI.csproj|c:\\users\\bib\\desktop\\projekt-fluxon\\shop_fluxon\\shopapi\\shopapi\\services\\categoryservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{154C8A2E-F4A9-49D0-B845-3319E9C04489}|ShopAPI\\ShopAPI.csproj|solutionrelative:shopapi\\services\\categoryservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{154C8A2E-F4A9-49D0-B845-3319E9C04489}|ShopAPI\\ShopAPI.csproj|c:\\users\\bib\\desktop\\projekt-fluxon\\shop_fluxon\\shopapi\\shopapi\\services\\productservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{154C8A2E-F4A9-49D0-B845-3319E9C04489}|ShopAPI\\ShopAPI.csproj|solutionrelative:shopapi\\services\\productservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- },
- {
- "AbsoluteMoniker": "D:0:0:{154C8A2E-F4A9-49D0-B845-3319E9C04489}|ShopAPI\\ShopAPI.csproj|c:\\users\\bib\\desktop\\projekt-fluxon\\shop_fluxon\\shopapi\\shopapi\\dtos\\productdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
- "RelativeMoniker": "D:0:0:{154C8A2E-F4A9-49D0-B845-3319E9C04489}|ShopAPI\\ShopAPI.csproj|solutionrelative:shopapi\\dtos\\productdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
- }
- ],
- "DocumentGroupContainers": [
- {
- "Orientation": 0,
- "VerticalTabListWidth": 256,
- "DocumentGroups": [
- {
- "DockedWidth": 200,
- "SelectedChildIndex": 1,
- "Children": [
- {
- "$type": "Bookmark",
- "Name": "ST:0:0:{b1e99781-ab81-11d0-b683-00aa00a3ee26}"
- },
- {
- "$type": "Document",
- "DocumentIndex": 0,
- "Title": "CategoryService.cs",
- "DocumentMoniker": "C:\\Users\\bib\\Desktop\\Projekt-Fluxon\\shop_Fluxon\\ShopAPI\\ShopAPI\\Services\\CategoryService.cs",
- "RelativeDocumentMoniker": "ShopAPI\\Services\\CategoryService.cs",
- "ToolTip": "C:\\Users\\bib\\Desktop\\Projekt-Fluxon\\shop_Fluxon\\ShopAPI\\ShopAPI\\Services\\CategoryService.cs",
- "RelativeToolTip": "ShopAPI\\Services\\CategoryService.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAA8AAAAFAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-16T13:59:04.565Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 2,
- "Title": "ProductDto.cs",
- "DocumentMoniker": "C:\\Users\\bib\\Desktop\\Projekt-Fluxon\\shop_Fluxon\\ShopAPI\\ShopAPI\\DTOs\\ProductDto.cs",
- "RelativeDocumentMoniker": "ShopAPI\\DTOs\\ProductDto.cs",
- "ToolTip": "C:\\Users\\bib\\Desktop\\Projekt-Fluxon\\shop_Fluxon\\ShopAPI\\ShopAPI\\DTOs\\ProductDto.cs",
- "RelativeToolTip": "ShopAPI\\DTOs\\ProductDto.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAIAAAASAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-16T12:53:52.497Z",
- "EditorCaption": ""
- },
- {
- "$type": "Document",
- "DocumentIndex": 1,
- "Title": "ProductService.cs",
- "DocumentMoniker": "C:\\Users\\bib\\Desktop\\Projekt-Fluxon\\shop_Fluxon\\ShopAPI\\ShopAPI\\Services\\ProductService.cs",
- "RelativeDocumentMoniker": "ShopAPI\\Services\\ProductService.cs",
- "ToolTip": "C:\\Users\\bib\\Desktop\\Projekt-Fluxon\\shop_Fluxon\\ShopAPI\\ShopAPI\\Services\\ProductService.cs",
- "RelativeToolTip": "ShopAPI\\Services\\ProductService.cs",
- "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
- "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
- "WhenOpened": "2026-03-16T12:36:13.39Z",
- "EditorCaption": ""
- }
- ]
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/ShopAPI/ShopAPI/.gitignore b/ShopAPI/ShopAPI/.gitignore
new file mode 100644
index 0000000..88dbff1
--- /dev/null
+++ b/ShopAPI/ShopAPI/.gitignore
@@ -0,0 +1 @@
+.vs/
diff --git a/ShopAPI/ShopAPI/Controllers/CategoryController.cs b/ShopAPI/ShopAPI/Controllers/CategoryController.cs
index f00b801..1b6b2d5 100644
--- a/ShopAPI/ShopAPI/Controllers/CategoryController.cs
+++ b/ShopAPI/ShopAPI/Controllers/CategoryController.cs
@@ -1,6 +1,67 @@
-namespace ShopAPI.Controllers
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using ShopAPI.DTOs;
+using ShopAPI.Services;
+namespace ShopAPI.Controllers
{
- public class CategoryController
+ [Authorize]
+ [ApiController]
+ [Route("api/[controller]")]
+ public class CategoryController : ControllerBase
{
+ public readonly CategoryService _categoryService;
+
+ public CategoryController(CategoryService categoryService)
+ {
+ _categoryService = categoryService;
+ }
+
+ // Get api/category
+ [HttpGet]
+ [AllowAnonymous]
+ public async Task GetAll()
+ {
+ var categories = await _categoryService.GetAllAsync();
+ return Ok(categories);
+ }
+
+ // Get api/category/{id}
+ [HttpGet("{id}")]
+ [AllowAnonymous]
+ public async Task GetById(int id)
+ {
+ var category = await _categoryService.GetByIdAsync(id);
+ if (category == null) return NotFound(new { message = "Kategorie nicht gefunden" });
+ return Ok(category);
+
+ }
+ [HttpPost]
+ [Authorize(Roles = "Admin")]
+ // post api/category
+ public async Task Create(CategoryDto dto)
+ {
+ var category = await _categoryService.CreateAsync(dto);
+ return CreatedAtAction(nameof(GetById), new { id = category.Id }, category);
+ }
+
+ // put api/category/{id}
+ [HttpPut("{id}")]
+ [Authorize(Roles = "Admin")]
+ public async Task Update(int id, CategoryDto dto)
+ {
+ var category = await _categoryService.UpdateAsync(id, dto);
+ if(category == null) return NotFound(new { message = "Kategorie nicht gefunden" });
+ return Ok(category);
+ }
+
+ // delete api/category/{id}
+ [HttpDelete("{id}")]
+ [Authorize(Roles = "Admin")]
+ public async Task Delete(int id)
+ {
+ var result = await _categoryService.DeleteAsync(id);
+ if (!result) return NotFound(new { message = "Kategorie nicht gefunden" });
+ return Ok(new {message = "Kategorie gelöscht"});
+ }
}
}
diff --git a/ShopAPI/ShopAPI/Controllers/ProductController.cs b/ShopAPI/ShopAPI/Controllers/ProductController.cs
index 08c65a6..9ac382e 100644
--- a/ShopAPI/ShopAPI/Controllers/ProductController.cs
+++ b/ShopAPI/ShopAPI/Controllers/ProductController.cs
@@ -1,6 +1,69 @@
-namespace ShopAPI.Controllers
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using ShopAPI.DTOs;
+using ShopAPI.Services;
+
+namespace ShopAPI.Controllers
{
- public class ProductController
+ [Authorize]
+ [ApiController]
+ [Route("api/[controller]")]
+ public class ProductController : ControllerBase
{
+ private readonly ProductService _productService;
+
+ public ProductController(ProductService productService)
+ {
+ _productService = productService;
+ }
+ // Get api/product
+ [HttpGet]
+ [AllowAnonymous]
+ public async Task GetAll()
+ {
+ var products = await _productService.GetALLAsync();
+ return Ok(products);
+ }
+
+ // Get api/product/{id}
+ [HttpGet("{id}")]
+ [AllowAnonymous]
+ public async Task GetById(int id)
+ {
+ var product = await _productService.GetByAsync(id);
+ if (product == null) return NotFound(new {message = "Produkt nicht gefunden" });
+ return Ok(product);
+ }
+
+ // post api/product
+ [HttpPost]
+ [Authorize(Roles = "Admin")]
+ public async Task Create(ProductDto dto)
+ {
+ var product = await _productService.CreateAsync(dto);
+ return CreatedAtAction(nameof(GetById), new { id = product.Id }, product);
+ }
+
+ // put api/product/{id}
+ [HttpPut("{id}")]
+ [Authorize(Roles = "Admin")]
+ public async Task Update(int id, ProductDto dto)
+ {
+ var product = await _productService.UpdateAsync(id, dto);
+ if (product == null) return NotFound(new { message = "Produkt nicht gefunden" });
+ return Ok(product);
+ }
+
+ // delete api/product/{id}
+ [HttpDelete("{id}")]
+ [Authorize(Roles = "Admin")]
+ public async Task Delete(int id)
+ {
+ var result = await _productService.DeleteAsync(id);
+ if (!result) return NotFound(new { message = "Produkt nciht gefunden" });
+ return Ok(new {message = "Produkt gelöscht" });
+
+ }
+
}
}
diff --git a/ShopAPI/ShopAPI/DTOs/CategoryDto.cs b/ShopAPI/ShopAPI/DTOs/CategoryDto.cs
new file mode 100644
index 0000000..dace1b3
--- /dev/null
+++ b/ShopAPI/ShopAPI/DTOs/CategoryDto.cs
@@ -0,0 +1,7 @@
+namespace ShopAPI.DTOs
+{
+ public class CategoryDto
+ {
+ public string Name { get; set; } = string.Empty;
+ }
+}
diff --git a/ShopAPI/ShopAPI/Program.cs b/ShopAPI/ShopAPI/Program.cs
index 2ee946e..37c9a6c 100644
--- a/ShopAPI/ShopAPI/Program.cs
+++ b/ShopAPI/ShopAPI/Program.cs
@@ -42,6 +42,11 @@ namespace ShopAPI
builder.Services.AddAuthorization();
builder.Services.AddControllers();
+ // Hier: jeder benutzer bekommt nur seine Daten , und keine vermischung zwischen Requests
+ builder.Services.AddScoped();
+ builder.Services.AddScoped();
+ builder.Services.AddScoped();
+
var app = builder.Build();
app.UseAuthentication();
app.UseAuthorization();
diff --git a/ShopAPI/ShopAPI/Services/AuthService.cs b/ShopAPI/ShopAPI/Services/AuthService.cs
index c8d8ff0..0d11a9a 100644
--- a/ShopAPI/ShopAPI/Services/AuthService.cs
+++ b/ShopAPI/ShopAPI/Services/AuthService.cs
@@ -68,7 +68,7 @@ namespace ShopAPI.Services
new Claim(ClaimTypes.Role, user.Role)
};
- var key = new SymmetricSecurityKey(
+ var key = new SymmetricSecurityKey(
Encoding.UTF8.GetBytes(_config["Jwt:Secret"]!));
var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
diff --git a/ShopAPI/ShopAPI/Services/CategoryService.cs b/ShopAPI/ShopAPI/Services/CategoryService.cs
index b0a6183..4c92dc0 100644
--- a/ShopAPI/ShopAPI/Services/CategoryService.cs
+++ b/ShopAPI/ShopAPI/Services/CategoryService.cs
@@ -13,5 +13,49 @@ namespace ShopAPI.Services
{
_db = db;
}
+
+ public async Task> GetAllAsync()
+ {
+ return await _db.Categories
+ .Include(c => c.Products)
+ .ToListAsync();
+ }
+
+
+ public async Task GetByIdAsync(int id)
+ {
+ return await _db.Categories
+ .Include(c => c.Products)
+ .FirstOrDefaultAsync(c => c.Id == id);
+ }
+
+ public async Task CreateAsync(CategoryDto dto)
+ {
+ var category = new Category { Name = dto.Name };
+ _db.Categories.Add(category);
+ await _db.SaveChangesAsync();
+ return category;
+ }
+
+ public async Task UpdateAsync(int id, CategoryDto dto)
+ {
+ var category = await _db.Categories.FindAsync(id);
+ if (category == null) return null;
+
+ category.Name = dto.Name;
+ await _db.SaveChangesAsync();
+ return category;
+ }
+
+ public async Task DeleteAsync(int id)
+ {
+ var category = await _db.Categories.FindAsync(id);
+ if (category == null) return false;
+
+ _db.Categories.Remove(category);
+ await _db.SaveChangesAsync();
+ return true;
+ }
+
}
}
diff --git a/ShopAPI/ShopAPI/bin/Debug/net8.0/ShopAPI.dll b/ShopAPI/ShopAPI/bin/Debug/net8.0/ShopAPI.dll
index 9f16ddc..86ce899 100644
Binary files a/ShopAPI/ShopAPI/bin/Debug/net8.0/ShopAPI.dll and b/ShopAPI/ShopAPI/bin/Debug/net8.0/ShopAPI.dll differ
diff --git a/ShopAPI/ShopAPI/bin/Debug/net8.0/ShopAPI.exe b/ShopAPI/ShopAPI/bin/Debug/net8.0/ShopAPI.exe
index d4b5c26..d593a7f 100644
Binary files a/ShopAPI/ShopAPI/bin/Debug/net8.0/ShopAPI.exe and b/ShopAPI/ShopAPI/bin/Debug/net8.0/ShopAPI.exe differ
diff --git a/ShopAPI/ShopAPI/bin/Debug/net8.0/ShopAPI.pdb b/ShopAPI/ShopAPI/bin/Debug/net8.0/ShopAPI.pdb
index 1904dd2..f2b0973 100644
Binary files a/ShopAPI/ShopAPI/bin/Debug/net8.0/ShopAPI.pdb and b/ShopAPI/ShopAPI/bin/Debug/net8.0/ShopAPI.pdb differ
diff --git a/ShopAPI/ShopAPI/obj/Debug/net8.0/ShopAPI.AssemblyInfo.cs b/ShopAPI/ShopAPI/obj/Debug/net8.0/ShopAPI.AssemblyInfo.cs
index d42b909..4d14d52 100644
--- a/ShopAPI/ShopAPI/obj/Debug/net8.0/ShopAPI.AssemblyInfo.cs
+++ b/ShopAPI/ShopAPI/obj/Debug/net8.0/ShopAPI.AssemblyInfo.cs
@@ -15,7 +15,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("ShopAPI")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
-[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+c4468dc74b1949de53923f9d96c4a82df7a7b10b")]
+[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+384d7e0287f40c1ce9e61d3123377dc5917ef6b6")]
[assembly: System.Reflection.AssemblyProductAttribute("ShopAPI")]
[assembly: System.Reflection.AssemblyTitleAttribute("ShopAPI")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
diff --git a/ShopAPI/ShopAPI/obj/Debug/net8.0/ShopAPI.AssemblyInfoInputs.cache b/ShopAPI/ShopAPI/obj/Debug/net8.0/ShopAPI.AssemblyInfoInputs.cache
index 3dff8c4..4f9432b 100644
--- a/ShopAPI/ShopAPI/obj/Debug/net8.0/ShopAPI.AssemblyInfoInputs.cache
+++ b/ShopAPI/ShopAPI/obj/Debug/net8.0/ShopAPI.AssemblyInfoInputs.cache
@@ -1 +1 @@
-314f6ea8298063e592f04d2bb86fdfdf35b5fe4b964315aa2eb8f9cd9f54aa63
+e04359f0bf9216ce6ea4f06fefbd8b64b5dbf14e78bc9a52d8c538097c953810
diff --git a/ShopAPI/ShopAPI/obj/Debug/net8.0/ShopAPI.csproj.CoreCompileInputs.cache b/ShopAPI/ShopAPI/obj/Debug/net8.0/ShopAPI.csproj.CoreCompileInputs.cache
index e0aa153..9f60069 100644
--- a/ShopAPI/ShopAPI/obj/Debug/net8.0/ShopAPI.csproj.CoreCompileInputs.cache
+++ b/ShopAPI/ShopAPI/obj/Debug/net8.0/ShopAPI.csproj.CoreCompileInputs.cache
@@ -1 +1 @@
-e359bd7b8b0e1a3edf29245ca19f3d8953c35486fad3d014e10e1d8cce021bd6
+76e1eaf859bca5d672b1fac1789f7abe6bda99f7cc154bb78899e5780554f7a0
diff --git a/ShopAPI/ShopAPI/obj/Debug/net8.0/ShopAPI.dll b/ShopAPI/ShopAPI/obj/Debug/net8.0/ShopAPI.dll
index 9f16ddc..86ce899 100644
Binary files a/ShopAPI/ShopAPI/obj/Debug/net8.0/ShopAPI.dll and b/ShopAPI/ShopAPI/obj/Debug/net8.0/ShopAPI.dll differ
diff --git a/ShopAPI/ShopAPI/obj/Debug/net8.0/ShopAPI.pdb b/ShopAPI/ShopAPI/obj/Debug/net8.0/ShopAPI.pdb
index 1904dd2..f2b0973 100644
Binary files a/ShopAPI/ShopAPI/obj/Debug/net8.0/ShopAPI.pdb and b/ShopAPI/ShopAPI/obj/Debug/net8.0/ShopAPI.pdb differ
diff --git a/ShopAPI/ShopAPI/obj/Debug/net8.0/apphost.exe b/ShopAPI/ShopAPI/obj/Debug/net8.0/apphost.exe
index d4b5c26..d593a7f 100644
Binary files a/ShopAPI/ShopAPI/obj/Debug/net8.0/apphost.exe and b/ShopAPI/ShopAPI/obj/Debug/net8.0/apphost.exe differ
diff --git a/ShopAPI/ShopAPI/obj/Debug/net8.0/ref/ShopAPI.dll b/ShopAPI/ShopAPI/obj/Debug/net8.0/ref/ShopAPI.dll
index b55d36b..6437771 100644
Binary files a/ShopAPI/ShopAPI/obj/Debug/net8.0/ref/ShopAPI.dll and b/ShopAPI/ShopAPI/obj/Debug/net8.0/ref/ShopAPI.dll differ
diff --git a/ShopAPI/ShopAPI/obj/Debug/net8.0/refint/ShopAPI.dll b/ShopAPI/ShopAPI/obj/Debug/net8.0/refint/ShopAPI.dll
index b55d36b..6437771 100644
Binary files a/ShopAPI/ShopAPI/obj/Debug/net8.0/refint/ShopAPI.dll and b/ShopAPI/ShopAPI/obj/Debug/net8.0/refint/ShopAPI.dll differ
diff --git a/ShopAPI/ShopAPI/obj/Debug/net8.0/rjsmcshtml.dswa.cache.json b/ShopAPI/ShopAPI/obj/Debug/net8.0/rjsmcshtml.dswa.cache.json
index 523c053..75fed3d 100644
--- a/ShopAPI/ShopAPI/obj/Debug/net8.0/rjsmcshtml.dswa.cache.json
+++ b/ShopAPI/ShopAPI/obj/Debug/net8.0/rjsmcshtml.dswa.cache.json
@@ -1 +1 @@
-{"GlobalPropertiesHash":"UbUS1vR6wGATGwMhgD7zMeswN1vTEJ19YTFurt+qa38=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["qXK9XBukmOKR4bC0/OSWUQmD7NVDnODrTNbVfODoSOA=","RsfaIcSdxUsyxkHT0X7TBDvWAE\u002BekQ7N\u002BCKYPxhpGog=","q4x5tw5ZdEVI3wN3ORljilxzvA3pVT3snlXNH\u002Bh3MZw=","hqxvnAagyda0d6U9WqiUEHNFsi/9qmMo9aedinq8ZQA=","TRUWKVmfrqI3Da5OlFteES1pBI/d\u002Bef88\u002BcbmmwH4mw=","AMewKZACPMF34A9M/c\u002BnjYkuddQPOVXhAdpXf\u002BloS2s=","pDYMbjVyNyvCtfuomzL9SJHwQJUdUJF/Z2QDZF8ls2k="],"CachedAssets":{},"CachedCopyCandidates":{}}
\ No newline at end of file
+{"GlobalPropertiesHash":"UbUS1vR6wGATGwMhgD7zMeswN1vTEJ19YTFurt+qa38=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["qXK9XBukmOKR4bC0/OSWUQmD7NVDnODrTNbVfODoSOA=","RsfaIcSdxUsyxkHT0X7TBDvWAE\u002BekQ7N\u002BCKYPxhpGog=","q4x5tw5ZdEVI3wN3ORljilxzvA3pVT3snlXNH\u002Bh3MZw=","hqxvnAagyda0d6U9WqiUEHNFsi/9qmMo9aedinq8ZQA=","TRUWKVmfrqI3Da5OlFteES1pBI/d\u002Bef88\u002BcbmmwH4mw=","AMewKZACPMF34A9M/c\u002BnjYkuddQPOVXhAdpXf\u002BloS2s=","GrwxjTxxr29ICyUcOpweOHua4V5l\u002BtKseEVsI30NOeU="],"CachedAssets":{},"CachedCopyCandidates":{}}
\ No newline at end of file
diff --git a/ShopAPI/ShopAPI/obj/Debug/net8.0/rjsmrazor.dswa.cache.json b/ShopAPI/ShopAPI/obj/Debug/net8.0/rjsmrazor.dswa.cache.json
index 98b5680..f398fcd 100644
--- a/ShopAPI/ShopAPI/obj/Debug/net8.0/rjsmrazor.dswa.cache.json
+++ b/ShopAPI/ShopAPI/obj/Debug/net8.0/rjsmrazor.dswa.cache.json
@@ -1 +1 @@
-{"GlobalPropertiesHash":"8Bes/LQh4hq2du9moDLYcP3dWOcm8118awBX2grZ2jA=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["qXK9XBukmOKR4bC0/OSWUQmD7NVDnODrTNbVfODoSOA=","RsfaIcSdxUsyxkHT0X7TBDvWAE\u002BekQ7N\u002BCKYPxhpGog=","q4x5tw5ZdEVI3wN3ORljilxzvA3pVT3snlXNH\u002Bh3MZw=","hqxvnAagyda0d6U9WqiUEHNFsi/9qmMo9aedinq8ZQA=","TRUWKVmfrqI3Da5OlFteES1pBI/d\u002Bef88\u002BcbmmwH4mw=","AMewKZACPMF34A9M/c\u002BnjYkuddQPOVXhAdpXf\u002BloS2s=","pDYMbjVyNyvCtfuomzL9SJHwQJUdUJF/Z2QDZF8ls2k="],"CachedAssets":{},"CachedCopyCandidates":{}}
\ No newline at end of file
+{"GlobalPropertiesHash":"8Bes/LQh4hq2du9moDLYcP3dWOcm8118awBX2grZ2jA=","FingerprintPatternsHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","PropertyOverridesHash":"8ZRc1sGeVrPBx4lD717BgRaQekyh78QKV9SKsdt638U=","InputHashes":["qXK9XBukmOKR4bC0/OSWUQmD7NVDnODrTNbVfODoSOA=","RsfaIcSdxUsyxkHT0X7TBDvWAE\u002BekQ7N\u002BCKYPxhpGog=","q4x5tw5ZdEVI3wN3ORljilxzvA3pVT3snlXNH\u002Bh3MZw=","hqxvnAagyda0d6U9WqiUEHNFsi/9qmMo9aedinq8ZQA=","TRUWKVmfrqI3Da5OlFteES1pBI/d\u002Bef88\u002BcbmmwH4mw=","AMewKZACPMF34A9M/c\u002BnjYkuddQPOVXhAdpXf\u002BloS2s=","GrwxjTxxr29ICyUcOpweOHua4V5l\u002BtKseEVsI30NOeU="],"CachedAssets":{},"CachedCopyCandidates":{}}
\ No newline at end of file