refact program.cs vineyardController, service e repo

This commit is contained in:
Riccardo Usardi committed 2025-07-11 10:18:01 +02:00
1 parent a373201ca4
commit 3a1a0ca7ef
17 files changed
+767 -304

No files matched your search

Binary file not shown.
Binary file not shown.
Binary file not shown.
+199 -131
View File
@@ -3,37 +3,65 @@
"WorkspaceRootPath": "M:\\uv\\uWine\\", "WorkspaceRootPath": "M:\\uv\\uWine\\",
"Documents": [ "Documents": [
{ {
"AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\controllers\\areacontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\controllers\\vineyardcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\controllers\\areacontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\controllers\\vineyardcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{ {
"AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\controllers\\testcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\services\\vineyardservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\controllers\\testcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\services\\vineyardservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\services\\coordinatesservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\services\\coordinatesservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{ {
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbvineyardrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbvineyardrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\repository\\mariadbvineyardrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\repository\\mariadbvineyardrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{ {
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\helpers\\coordinateshelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\helpers\\coordinateshelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
},
{
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\services\\coordinatesservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\services\\coordinatesservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\controllers\\testcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\controllers\\testcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\controllers\\usercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\controllers\\usercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\controllers\\areacontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\controllers\\areacontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{ {
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\services\\ownerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\services\\ownerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\services\\ownerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\services\\ownerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{ {
"AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\vineyard.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\services\\userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|solutionrelative:uwine.core.domain\\entities\\vineyard.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\services\\userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\helpers\\coordinateshelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\helpers\\coordinateshelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{ {
"AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\coordinates.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\coordinates.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|solutionrelative:uwine.core.domain\\entities\\coordinates.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|solutionrelative:uwine.core.domain\\entities\\coordinates.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{
"AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\builder\\servicies.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\builder\\servicies.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\vineyard.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|solutionrelative:uwine.core.domain\\entities\\vineyard.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{ {
"AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|solutionrelative:uwine.core.domain\\entities\\user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|solutionrelative:uwine.core.domain\\entities\\user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
@@ -54,22 +82,10 @@
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbserverrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbserverrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\repository\\mariadbserverrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\repository\\mariadbserverrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{
"AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\controllers\\usercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\controllers\\usercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{ {
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbaddressrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbaddressrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\repository\\mariadbaddressrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\repository\\mariadbaddressrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\services\\userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\services\\userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{ {
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbuserrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbuserrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\repository\\mariadbuserrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\repository\\mariadbuserrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
@@ -86,10 +102,6 @@
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbauthenticationrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbauthenticationrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\repository\\mariadbauthenticationrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\repository\\mariadbauthenticationrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{
"AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
"RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
},
{ {
"AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\role.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\role.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|solutionrelative:uwine.core.domain\\entities\\role.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|solutionrelative:uwine.core.domain\\entities\\role.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
@@ -145,6 +157,10 @@
{ {
"AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\repositories\\iownerrepository.cs||{8B382828-6202-11D1-8870-0000F87579D2}", "AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\repositories\\iownerrepository.cs||{8B382828-6202-11D1-8870-0000F87579D2}",
"RelativeMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|solutionrelative:uwine.core.domain\\repositories\\iownerrepository.cs||{8B382828-6202-11D1-8870-0000F87579D2}" "RelativeMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|solutionrelative:uwine.core.domain\\repositories\\iownerrepository.cs||{8B382828-6202-11D1-8870-0000F87579D2}"
},
{
"AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\repositories\\ivineyardrepository.cs||{8B382828-6202-11D1-8870-0000F87579D2}",
"RelativeMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|solutionrelative:uwine.core.domain\\repositories\\ivineyardrepository.cs||{8B382828-6202-11D1-8870-0000F87579D2}"
} }
], ],
"DocumentGroupContainers": [ "DocumentGroupContainers": [
@@ -158,13 +174,13 @@
"Children": [ "Children": [
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 13, "DocumentIndex": 6,
"Title": "UserController.cs", "Title": "UserController.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Controllers\\UserController.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Controllers\\UserController.cs",
"RelativeDocumentMoniker": "uWine.Api\\Controllers\\UserController.cs", "RelativeDocumentMoniker": "uWine.Api\\Controllers\\UserController.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Api\\Controllers\\UserController.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Api\\Controllers\\UserController.cs",
"RelativeToolTip": "uWine.Api\\Controllers\\UserController.cs", "RelativeToolTip": "uWine.Api\\Controllers\\UserController.cs",
"ViewState": "AgIAABcAAAAAAAAAAAAlwC8AAAAuAAAAAAAAAA==", "ViewState": "AgIAACQAAAAAAAAAAAAYwC8AAAAuAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-05T12:49:48.611Z", "WhenOpened": "2025-07-05T12:49:48.611Z",
"IsPinned": true, "IsPinned": true,
@@ -173,79 +189,27 @@
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 0, "DocumentIndex": 0,
"Title": "AreaController.cs", "Title": "VineyardController.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Controllers\\AreaController.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Controllers\\VineyardController.cs",
"RelativeDocumentMoniker": "uWine.Api\\Controllers\\AreaController.cs", "RelativeDocumentMoniker": "uWine.Api\\Controllers\\VineyardController.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Api\\Controllers\\AreaController.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Api\\Controllers\\VineyardController.cs",
"RelativeToolTip": "uWine.Api\\Controllers\\AreaController.cs", "RelativeToolTip": "uWine.Api\\Controllers\\VineyardController.cs",
"ViewState": "AgIAABEAAAAAAAAAAAAwwBkAAAAPAAAAAAAAAA==", "ViewState": "AgIAABgAAAAAAAAAAAAmwCYAAAAxAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T19:57:28.881Z", "WhenOpened": "2025-07-11T07:58:19.458Z",
"EditorCaption": "" "EditorCaption": ""
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 2, "DocumentIndex": 1,
"Title": "CoordinatesService.cs", "Title": "VineyardService.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\CoordinatesService.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\VineyardService.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\CoordinatesService.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\VineyardService.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\CoordinatesService.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\VineyardService.cs",
"RelativeToolTip": "uWine.Core.Infrastructure\\Services\\CoordinatesService.cs", "RelativeToolTip": "uWine.Core.Infrastructure\\Services\\VineyardService.cs",
"ViewState": "AgIAABoAAAAAAAAAAAAQwCUAAABCAAAAAAAAAA==", "ViewState": "AgIAAC4AAAAAAAAAAAAmwDcAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T19:40:24.68Z", "WhenOpened": "2025-07-11T07:20:05.396Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "CoordinatesHelper.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Helpers\\CoordinatesHelper.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Helpers\\CoordinatesHelper.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Helpers\\CoordinatesHelper.cs",
"RelativeToolTip": "uWine.Core.Infrastructure\\Helpers\\CoordinatesHelper.cs",
"ViewState": "AgIAAAEAAAAAAAAAAAAowAsAAAAdAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T19:27:37.448Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 7,
"Title": "Coordinates.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Coordinates.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Coordinates.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Coordinates.cs",
"RelativeToolTip": "uWine.Core.Domain\\Entities\\Coordinates.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAFAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T15:17:32.614Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "MariaDbVineyardRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbVineyardRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbVineyardRepository.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbVineyardRepository.cs",
"RelativeToolTip": "uWine.Core.Infrastructure\\Repository\\MariaDbVineyardRepository.cs",
"ViewState": "AgIAADcAAAAAAAAAAAAowEIAAABDAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T15:13:10.808Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 12,
"Title": "MariaDbServerRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbServerRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbServerRepository.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbServerRepository.cs",
"RelativeToolTip": "uWine.Core.Infrastructure\\Repository\\MariaDbServerRepository.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAPAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T15:08:41.298Z",
"EditorCaption": "" "EditorCaption": ""
}, },
{ {
@@ -278,7 +242,111 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 35, "DocumentIndex": 39,
"Title": "IVineyardRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IVineyardRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IVineyardRepository.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IVineyardRepository.cs",
"RelativeToolTip": "uWine.Core.Domain\\Repositories\\IVineyardRepository.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-11T07:04:00.219Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 13,
"Title": "Servicies.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Builder\\Servicies.cs",
"RelativeDocumentMoniker": "uWine.Api\\Builder\\Servicies.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Api\\Builder\\Servicies.cs",
"RelativeToolTip": "uWine.Api\\Builder\\Servicies.cs",
"ViewState": "AgIAADEAAAAAAAAAAAAcwFMAAAAKAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-11T06:47:46.099Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 7,
"Title": "AreaController.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Controllers\\AreaController.cs",
"RelativeDocumentMoniker": "uWine.Api\\Controllers\\AreaController.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Api\\Controllers\\AreaController.cs",
"RelativeToolTip": "uWine.Api\\Controllers\\AreaController.cs",
"ViewState": "AgIAAAYAAAAAAAAAAAAAAAUAAAABAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T19:57:28.881Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "CoordinatesService.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\CoordinatesService.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\CoordinatesService.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\CoordinatesService.cs",
"RelativeToolTip": "uWine.Core.Infrastructure\\Services\\CoordinatesService.cs",
"ViewState": "AgIAACMAAAAAAAAAAAAUwCQAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T19:40:24.68Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 10,
"Title": "CoordinatesHelper.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Helpers\\CoordinatesHelper.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Helpers\\CoordinatesHelper.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Helpers\\CoordinatesHelper.cs",
"RelativeToolTip": "uWine.Core.Infrastructure\\Helpers\\CoordinatesHelper.cs",
"ViewState": "AgIAACcAAAAAAAAAAAAYwB4AAABrAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T19:27:37.448Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 11,
"Title": "Coordinates.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Coordinates.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Coordinates.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Coordinates.cs",
"RelativeToolTip": "uWine.Core.Domain\\Entities\\Coordinates.cs",
"ViewState": "AgIAAAYAAAAAAAAAAAAYwA0AAAAPAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T15:17:32.614Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "MariaDbVineyardRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbVineyardRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbVineyardRepository.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbVineyardRepository.cs",
"RelativeToolTip": "uWine.Core.Infrastructure\\Repository\\MariaDbVineyardRepository.cs",
"ViewState": "AgIAAAMAAAAAAAAAAADwvw0AAABPAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T15:13:10.808Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 19,
"Title": "MariaDbServerRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbServerRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbServerRepository.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbServerRepository.cs",
"RelativeToolTip": "uWine.Core.Infrastructure\\Repository\\MariaDbServerRepository.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAPAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T15:08:41.298Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 38,
"Title": "IOwnerRepository.cs", "Title": "IOwnerRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IOwnerRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IOwnerRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IOwnerRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IOwnerRepository.cs",
@@ -291,20 +359,20 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 15, "DocumentIndex": 9,
"Title": "UserService.cs", "Title": "UserService.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\UserService.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\UserService.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\UserService.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\UserService.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\UserService.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\UserService.cs",
"RelativeToolTip": "uWine.Core.Infrastructure\\Services\\UserService.cs", "RelativeToolTip": "uWine.Core.Infrastructure\\Services\\UserService.cs",
"ViewState": "AgIAABYAAAAAAAAAAAAQwCAAAAAxAAAAAAAAAA==", "ViewState": "AgIAABIAAAAAAAAAAAAowCAAAAAyAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-09T17:08:48.34Z", "WhenOpened": "2025-07-09T17:08:48.34Z",
"EditorCaption": "" "EditorCaption": ""
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 18, "DocumentIndex": 22,
"Title": "IUserRepository.cs", "Title": "IUserRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IUserRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IUserRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IUserRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IUserRepository.cs",
@@ -317,7 +385,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 17, "DocumentIndex": 21,
"Title": "MariaDbUserRepository.cs", "Title": "MariaDbUserRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbUserRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbUserRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbUserRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbUserRepository.cs",
@@ -330,7 +398,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 22, "DocumentIndex": 25,
"Title": "Role.cs", "Title": "Role.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Role.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Role.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Role.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Role.cs",
@@ -343,7 +411,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 8, "DocumentIndex": 15,
"Title": "User.cs", "Title": "User.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\User.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\User.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\User.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\User.cs",
@@ -356,20 +424,20 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 1, "DocumentIndex": 5,
"Title": "TestController.cs", "Title": "TestController.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Controllers\\TestController.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Controllers\\TestController.cs",
"RelativeDocumentMoniker": "uWine.Api\\Controllers\\TestController.cs", "RelativeDocumentMoniker": "uWine.Api\\Controllers\\TestController.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Api\\Controllers\\TestController.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Api\\Controllers\\TestController.cs",
"RelativeToolTip": "uWine.Api\\Controllers\\TestController.cs", "RelativeToolTip": "uWine.Api\\Controllers\\TestController.cs",
"ViewState": "AgIAAAYAAAAAAAAAAAAAAAoAAAA3AAAAAAAAAA==", "ViewState": "AgIAABkAAAAAAAAAAAAQwCkAAAAQAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-09T14:20:34.76Z", "WhenOpened": "2025-07-09T14:20:34.76Z",
"EditorCaption": "" "EditorCaption": ""
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 9, "DocumentIndex": 16,
"Title": "Owner.cs", "Title": "Owner.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Owner.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Owner.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Owner.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Owner.cs",
@@ -382,20 +450,20 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 16, "DocumentIndex": 12,
"Title": "Program.cs", "Title": "Program.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Program.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Program.cs",
"RelativeDocumentMoniker": "uWine.Api\\Program.cs", "RelativeDocumentMoniker": "uWine.Api\\Program.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Api\\Program.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Api\\Program.cs",
"RelativeToolTip": "uWine.Api\\Program.cs", "RelativeToolTip": "uWine.Api\\Program.cs",
"ViewState": "AgIAAB4AAAAAAAAAAAAIwDAAAAAAAAAAAAAAAA==", "ViewState": "AgIAAAwAAAAAAAAAAAAuwBgAAAA8AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-09T14:07:06.764Z", "WhenOpened": "2025-07-09T14:07:06.764Z",
"EditorCaption": "" "EditorCaption": ""
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 21, "DocumentIndex": 3,
"Title": "appsettings.json", "Title": "appsettings.json",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\appsettings.json", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\appsettings.json",
"RelativeDocumentMoniker": "uWine.Api\\appsettings.json", "RelativeDocumentMoniker": "uWine.Api\\appsettings.json",
@@ -408,7 +476,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 23, "DocumentIndex": 26,
"Title": "IAuthenticationRepository.cs", "Title": "IAuthenticationRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IAuthenticationRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IAuthenticationRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IAuthenticationRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IAuthenticationRepository.cs",
@@ -421,7 +489,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 20, "DocumentIndex": 24,
"Title": "MariaDbAuthenticationRepository.cs", "Title": "MariaDbAuthenticationRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbAuthenticationRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbAuthenticationRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbAuthenticationRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbAuthenticationRepository.cs",
@@ -434,7 +502,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 19, "DocumentIndex": 23,
"Title": "AuthenticationService.cs", "Title": "AuthenticationService.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\AuthenticationService.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\AuthenticationService.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\AuthenticationService.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\AuthenticationService.cs",
@@ -447,20 +515,20 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 5, "DocumentIndex": 8,
"Title": "OwnerService.cs", "Title": "OwnerService.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\OwnerService.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\OwnerService.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\OwnerService.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\OwnerService.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\OwnerService.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\OwnerService.cs",
"RelativeToolTip": "uWine.Core.Infrastructure\\Services\\OwnerService.cs", "RelativeToolTip": "uWine.Core.Infrastructure\\Services\\OwnerService.cs",
"ViewState": "AgIAABsAAAAAAAAAAAAYwCcAAABKAAAAAAAAAA==", "ViewState": "AgIAABEAAAAAAAAAAAAgwCkAAAA5AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-05T12:53:14.567Z", "WhenOpened": "2025-07-05T12:53:14.567Z",
"EditorCaption": "" "EditorCaption": ""
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 29, "DocumentIndex": 32,
"Title": "IContactRepository.cs", "Title": "IContactRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IContactRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IContactRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IContactRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IContactRepository.cs",
@@ -473,7 +541,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 28, "DocumentIndex": 31,
"Title": "ContactType.cs", "Title": "ContactType.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\ContactType.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\ContactType.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\ContactType.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\ContactType.cs",
@@ -486,7 +554,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 11, "DocumentIndex": 18,
"Title": "Contact.cs", "Title": "Contact.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Contact.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Contact.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Contact.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Contact.cs",
@@ -499,7 +567,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 27, "DocumentIndex": 30,
"Title": "MariaDbContactRepository.cs", "Title": "MariaDbContactRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbContactRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbContactRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbContactRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbContactRepository.cs",
@@ -512,7 +580,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 30, "DocumentIndex": 33,
"Title": "IAddressRepository.cs", "Title": "IAddressRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IAddressRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IAddressRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IAddressRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IAddressRepository.cs",
@@ -525,7 +593,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 10, "DocumentIndex": 17,
"Title": "Address.cs", "Title": "Address.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Address.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Address.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Address.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Address.cs",
@@ -538,7 +606,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 14, "DocumentIndex": 20,
"Title": "MariaDbAddressRepository.cs", "Title": "MariaDbAddressRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbAddressRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbAddressRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbAddressRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbAddressRepository.cs",
@@ -551,7 +619,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 31, "DocumentIndex": 34,
"Title": "RowWork.cs", "Title": "RowWork.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\RowWork.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\RowWork.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\RowWork.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\RowWork.cs",
@@ -564,7 +632,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 33, "DocumentIndex": 36,
"Title": "WarehouseProduct.cs", "Title": "WarehouseProduct.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\WarehouseProduct.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\WarehouseProduct.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\WarehouseProduct.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\WarehouseProduct.cs",
@@ -577,7 +645,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 32, "DocumentIndex": 35,
"Title": "ProductUsage.cs", "Title": "ProductUsage.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\ProductUsage.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\ProductUsage.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\ProductUsage.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\ProductUsage.cs",
@@ -590,7 +658,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 26, "DocumentIndex": 29,
"Title": "Worker.cs", "Title": "Worker.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Worker.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Worker.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Worker.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Worker.cs",
@@ -603,7 +671,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 25, "DocumentIndex": 28,
"Title": "PlantVariety.cs", "Title": "PlantVariety.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\PlantVariety.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\PlantVariety.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\PlantVariety.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\PlantVariety.cs",
@@ -616,7 +684,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 24, "DocumentIndex": 27,
"Title": "VinePlant.cs", "Title": "VinePlant.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\VinePlant.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\VinePlant.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\VinePlant.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\VinePlant.cs",
@@ -629,20 +697,20 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 6, "DocumentIndex": 14,
"Title": "Vineyard.cs", "Title": "Vineyard.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Vineyard.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Vineyard.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Vineyard.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Vineyard.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Vineyard.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Vineyard.cs",
"RelativeToolTip": "uWine.Core.Domain\\Entities\\Vineyard.cs", "RelativeToolTip": "uWine.Core.Domain\\Entities\\Vineyard.cs",
"ViewState": "AgIAAAwAAAAAAAAAAAAnwCIAAAAAAAAAAAAAAA==", "ViewState": "AgIAAAkAAAAAAAAAAAAuwAoAAAARAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-02T17:04:51.461Z", "WhenOpened": "2025-07-02T17:04:51.461Z",
"EditorCaption": "" "EditorCaption": ""
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 34, "DocumentIndex": 37,
"Title": "Row.cs", "Title": "Row.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Row.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Row.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Row.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Row.cs",
+197 -129
View File
@@ -3,37 +3,69 @@
"WorkspaceRootPath": "M:\\uv\\uWine\\", "WorkspaceRootPath": "M:\\uv\\uWine\\",
"Documents": [ "Documents": [
{ {
"AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\controllers\\areacontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\repositories\\ivineyardrepository.cs||{8B382828-6202-11D1-8870-0000F87579D2}",
"RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\controllers\\areacontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|solutionrelative:uwine.core.domain\\repositories\\ivineyardrepository.cs||{8B382828-6202-11D1-8870-0000F87579D2}"
},
{
"AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\controllers\\testcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\controllers\\testcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{ {
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\services\\coordinatesservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\services\\coordinatesservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\services\\coordinatesservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\services\\coordinatesservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{
"AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\controllers\\vineyardcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\controllers\\vineyardcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\services\\vineyardservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\services\\vineyardservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{ {
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbvineyardrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbvineyardrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\repository\\mariadbvineyardrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\repository\\mariadbvineyardrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{ {
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\helpers\\coordinateshelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\helpers\\coordinateshelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
},
{
"AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\controllers\\testcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\controllers\\testcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\controllers\\usercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\controllers\\usercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\controllers\\areacontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\controllers\\areacontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{ {
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\services\\ownerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\services\\ownerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\services\\ownerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\services\\ownerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{ {
"AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\vineyard.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\services\\userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|solutionrelative:uwine.core.domain\\entities\\vineyard.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\services\\userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\helpers\\coordinateshelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\helpers\\coordinateshelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{ {
"AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\coordinates.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\coordinates.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|solutionrelative:uwine.core.domain\\entities\\coordinates.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|solutionrelative:uwine.core.domain\\entities\\coordinates.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{
"AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\builder\\servicies.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\builder\\servicies.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\vineyard.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|solutionrelative:uwine.core.domain\\entities\\vineyard.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{ {
"AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|solutionrelative:uwine.core.domain\\entities\\user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|solutionrelative:uwine.core.domain\\entities\\user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
@@ -54,22 +86,10 @@
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbserverrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbserverrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\repository\\mariadbserverrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\repository\\mariadbserverrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{
"AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\controllers\\usercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\controllers\\usercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{ {
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbaddressrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbaddressrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\repository\\mariadbaddressrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\repository\\mariadbaddressrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\services\\userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\services\\userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{ {
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbuserrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbuserrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\repository\\mariadbuserrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\repository\\mariadbuserrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
@@ -86,10 +106,6 @@
"AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbauthenticationrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbauthenticationrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\repository\\mariadbauthenticationrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|solutionrelative:uwine.core.infrastructure\\repository\\mariadbauthenticationrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{
"AbsoluteMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|m:\\uv\\uwine\\uwine.api\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
"RelativeMoniker": "D:0:0:{8E5D260E-7395-4875-8A4F-16205F92AD38}|uWine.Api\\uWine.Api.csproj|solutionrelative:uwine.api\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
},
{ {
"AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\role.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", "AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\role.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|solutionrelative:uwine.core.domain\\entities\\role.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|solutionrelative:uwine.core.domain\\entities\\role.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
@@ -154,98 +170,46 @@
"DocumentGroups": [ "DocumentGroups": [
{ {
"DockedWidth": 200, "DockedWidth": 200,
"SelectedChildIndex": 1, "SelectedChildIndex": 10,
"Children": [ "Children": [
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 13, "DocumentIndex": 7,
"Title": "UserController.cs", "Title": "UserController.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Controllers\\UserController.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Controllers\\UserController.cs",
"RelativeDocumentMoniker": "uWine.Api\\Controllers\\UserController.cs", "RelativeDocumentMoniker": "uWine.Api\\Controllers\\UserController.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Api\\Controllers\\UserController.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Api\\Controllers\\UserController.cs",
"RelativeToolTip": "uWine.Api\\Controllers\\UserController.cs", "RelativeToolTip": "uWine.Api\\Controllers\\UserController.cs",
"ViewState": "AgIAABcAAAAAAAAAAAAlwC8AAAAuAAAAAAAAAA==", "ViewState": "AgIAACQAAAAAAAAAAAAYwC8AAAAuAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-05T12:49:48.611Z", "WhenOpened": "2025-07-05T12:49:48.611Z",
"IsPinned": true, "IsPinned": true,
"EditorCaption": "" "EditorCaption": ""
}, },
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "AreaController.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Controllers\\AreaController.cs",
"RelativeDocumentMoniker": "uWine.Api\\Controllers\\AreaController.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Api\\Controllers\\AreaController.cs",
"RelativeToolTip": "uWine.Api\\Controllers\\AreaController.cs",
"ViewState": "AgIAAAkAAAAAAAAAAAAswBMAAAAXAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T19:57:28.881Z",
"EditorCaption": ""
},
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 2, "DocumentIndex": 2,
"Title": "CoordinatesService.cs", "Title": "VineyardController.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\CoordinatesService.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Controllers\\VineyardController.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\CoordinatesService.cs", "RelativeDocumentMoniker": "uWine.Api\\Controllers\\VineyardController.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\CoordinatesService.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Api\\Controllers\\VineyardController.cs",
"RelativeToolTip": "uWine.Core.Infrastructure\\Services\\CoordinatesService.cs", "RelativeToolTip": "uWine.Api\\Controllers\\VineyardController.cs",
"ViewState": "AgIAABoAAAAAAAAAAAAQwCUAAABCAAAAAAAAAA==", "ViewState": "AgIAABgAAAAAAAAAAAAmwCYAAAAxAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T19:40:24.68Z", "WhenOpened": "2025-07-11T07:58:19.458Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "CoordinatesHelper.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Helpers\\CoordinatesHelper.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Helpers\\CoordinatesHelper.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Helpers\\CoordinatesHelper.cs",
"RelativeToolTip": "uWine.Core.Infrastructure\\Helpers\\CoordinatesHelper.cs",
"ViewState": "AgIAAAEAAAAAAAAAAAAowAsAAAAdAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T19:27:37.448Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 7,
"Title": "Coordinates.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Coordinates.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Coordinates.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Coordinates.cs",
"RelativeToolTip": "uWine.Core.Domain\\Entities\\Coordinates.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAFAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T15:17:32.614Z",
"EditorCaption": "" "EditorCaption": ""
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 3, "DocumentIndex": 3,
"Title": "MariaDbVineyardRepository.cs", "Title": "VineyardService.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbVineyardRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\VineyardService.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbVineyardRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\VineyardService.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbVineyardRepository.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\VineyardService.cs",
"RelativeToolTip": "uWine.Core.Infrastructure\\Repository\\MariaDbVineyardRepository.cs", "RelativeToolTip": "uWine.Core.Infrastructure\\Services\\VineyardService.cs",
"ViewState": "AgIAADcAAAAAAAAAAAAowEIAAABDAAAAAAAAAA==", "ViewState": "AgIAAC4AAAAAAAAAAAAmwDcAAAAAAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T15:13:10.808Z", "WhenOpened": "2025-07-11T07:20:05.396Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 12,
"Title": "MariaDbServerRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbServerRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbServerRepository.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbServerRepository.cs",
"RelativeToolTip": "uWine.Core.Infrastructure\\Repository\\MariaDbServerRepository.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAPAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T15:08:41.298Z",
"EditorCaption": "" "EditorCaption": ""
}, },
{ {
@@ -278,7 +242,111 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 35, "DocumentIndex": 0,
"Title": "IVineyardRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IVineyardRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IVineyardRepository.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IVineyardRepository.cs*",
"RelativeToolTip": "uWine.Core.Domain\\Repositories\\IVineyardRepository.cs*",
"ViewState": "AgIAAAAAAAAAAAAAAAAuwAkAAAAVAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-11T07:04:00.219Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 14,
"Title": "Servicies.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Builder\\Servicies.cs",
"RelativeDocumentMoniker": "uWine.Api\\Builder\\Servicies.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Api\\Builder\\Servicies.cs",
"RelativeToolTip": "uWine.Api\\Builder\\Servicies.cs",
"ViewState": "AgIAADEAAAAAAAAAAAAcwFMAAAAKAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-11T06:47:46.099Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 8,
"Title": "AreaController.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Controllers\\AreaController.cs",
"RelativeDocumentMoniker": "uWine.Api\\Controllers\\AreaController.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Api\\Controllers\\AreaController.cs",
"RelativeToolTip": "uWine.Api\\Controllers\\AreaController.cs",
"ViewState": "AgIAAAYAAAAAAAAAAAAAAAUAAAABAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T19:57:28.881Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "CoordinatesService.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\CoordinatesService.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\CoordinatesService.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\CoordinatesService.cs",
"RelativeToolTip": "uWine.Core.Infrastructure\\Services\\CoordinatesService.cs",
"ViewState": "AgIAACQAAAAAAAAAAAD4vy0AAABQAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T19:40:24.68Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 11,
"Title": "CoordinatesHelper.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Helpers\\CoordinatesHelper.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Helpers\\CoordinatesHelper.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Helpers\\CoordinatesHelper.cs",
"RelativeToolTip": "uWine.Core.Infrastructure\\Helpers\\CoordinatesHelper.cs",
"ViewState": "AgIAACcAAAAAAAAAAAAYwB4AAABrAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T19:27:37.448Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 12,
"Title": "Coordinates.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Coordinates.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Coordinates.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Coordinates.cs",
"RelativeToolTip": "uWine.Core.Domain\\Entities\\Coordinates.cs",
"ViewState": "AgIAAAYAAAAAAAAAAAAYwA0AAAAPAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T15:17:32.614Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "MariaDbVineyardRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbVineyardRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbVineyardRepository.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbVineyardRepository.cs",
"RelativeToolTip": "uWine.Core.Infrastructure\\Repository\\MariaDbVineyardRepository.cs",
"ViewState": "AgIAAAMAAAAAAAAAAADwvw0AAABPAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T15:13:10.808Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 20,
"Title": "MariaDbServerRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbServerRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbServerRepository.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbServerRepository.cs",
"RelativeToolTip": "uWine.Core.Infrastructure\\Repository\\MariaDbServerRepository.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAPAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-10T15:08:41.298Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 39,
"Title": "IOwnerRepository.cs", "Title": "IOwnerRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IOwnerRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IOwnerRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IOwnerRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IOwnerRepository.cs",
@@ -291,20 +359,20 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 15, "DocumentIndex": 10,
"Title": "UserService.cs", "Title": "UserService.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\UserService.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\UserService.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\UserService.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\UserService.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\UserService.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\UserService.cs",
"RelativeToolTip": "uWine.Core.Infrastructure\\Services\\UserService.cs", "RelativeToolTip": "uWine.Core.Infrastructure\\Services\\UserService.cs",
"ViewState": "AgIAABYAAAAAAAAAAAAQwCAAAAAxAAAAAAAAAA==", "ViewState": "AgIAABIAAAAAAAAAAAAowCAAAAAyAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-09T17:08:48.34Z", "WhenOpened": "2025-07-09T17:08:48.34Z",
"EditorCaption": "" "EditorCaption": ""
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 18, "DocumentIndex": 23,
"Title": "IUserRepository.cs", "Title": "IUserRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IUserRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IUserRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IUserRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IUserRepository.cs",
@@ -317,7 +385,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 17, "DocumentIndex": 22,
"Title": "MariaDbUserRepository.cs", "Title": "MariaDbUserRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbUserRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbUserRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbUserRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbUserRepository.cs",
@@ -330,7 +398,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 22, "DocumentIndex": 26,
"Title": "Role.cs", "Title": "Role.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Role.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Role.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Role.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Role.cs",
@@ -343,7 +411,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 8, "DocumentIndex": 16,
"Title": "User.cs", "Title": "User.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\User.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\User.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\User.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\User.cs",
@@ -356,20 +424,20 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 1, "DocumentIndex": 6,
"Title": "TestController.cs", "Title": "TestController.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Controllers\\TestController.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Controllers\\TestController.cs",
"RelativeDocumentMoniker": "uWine.Api\\Controllers\\TestController.cs", "RelativeDocumentMoniker": "uWine.Api\\Controllers\\TestController.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Api\\Controllers\\TestController.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Api\\Controllers\\TestController.cs",
"RelativeToolTip": "uWine.Api\\Controllers\\TestController.cs", "RelativeToolTip": "uWine.Api\\Controllers\\TestController.cs",
"ViewState": "AgIAAAYAAAAAAAAAAAAAAAoAAAA3AAAAAAAAAA==", "ViewState": "AgIAABkAAAAAAAAAAAAQwCkAAAAQAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-09T14:20:34.76Z", "WhenOpened": "2025-07-09T14:20:34.76Z",
"EditorCaption": "" "EditorCaption": ""
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 9, "DocumentIndex": 17,
"Title": "Owner.cs", "Title": "Owner.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Owner.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Owner.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Owner.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Owner.cs",
@@ -382,20 +450,20 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 16, "DocumentIndex": 13,
"Title": "Program.cs", "Title": "Program.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Program.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Program.cs",
"RelativeDocumentMoniker": "uWine.Api\\Program.cs", "RelativeDocumentMoniker": "uWine.Api\\Program.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Api\\Program.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Api\\Program.cs",
"RelativeToolTip": "uWine.Api\\Program.cs", "RelativeToolTip": "uWine.Api\\Program.cs",
"ViewState": "AgIAAB4AAAAAAAAAAAAIwDAAAAAAAAAAAAAAAA==", "ViewState": "AgIAAAwAAAAAAAAAAAAuwBgAAAA8AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-09T14:07:06.764Z", "WhenOpened": "2025-07-09T14:07:06.764Z",
"EditorCaption": "" "EditorCaption": ""
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 21, "DocumentIndex": 5,
"Title": "appsettings.json", "Title": "appsettings.json",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\appsettings.json", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\appsettings.json",
"RelativeDocumentMoniker": "uWine.Api\\appsettings.json", "RelativeDocumentMoniker": "uWine.Api\\appsettings.json",
@@ -408,7 +476,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 23, "DocumentIndex": 27,
"Title": "IAuthenticationRepository.cs", "Title": "IAuthenticationRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IAuthenticationRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IAuthenticationRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IAuthenticationRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IAuthenticationRepository.cs",
@@ -421,7 +489,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 20, "DocumentIndex": 25,
"Title": "MariaDbAuthenticationRepository.cs", "Title": "MariaDbAuthenticationRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbAuthenticationRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbAuthenticationRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbAuthenticationRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbAuthenticationRepository.cs",
@@ -434,7 +502,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 19, "DocumentIndex": 24,
"Title": "AuthenticationService.cs", "Title": "AuthenticationService.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\AuthenticationService.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\AuthenticationService.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\AuthenticationService.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\AuthenticationService.cs",
@@ -447,20 +515,20 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 5, "DocumentIndex": 9,
"Title": "OwnerService.cs", "Title": "OwnerService.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\OwnerService.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\OwnerService.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\OwnerService.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\OwnerService.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\OwnerService.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\OwnerService.cs",
"RelativeToolTip": "uWine.Core.Infrastructure\\Services\\OwnerService.cs", "RelativeToolTip": "uWine.Core.Infrastructure\\Services\\OwnerService.cs",
"ViewState": "AgIAABsAAAAAAAAAAAAYwCcAAABKAAAAAAAAAA==", "ViewState": "AgIAABEAAAAAAAAAAAAgwCkAAAA5AAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-05T12:53:14.567Z", "WhenOpened": "2025-07-05T12:53:14.567Z",
"EditorCaption": "" "EditorCaption": ""
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 29, "DocumentIndex": 33,
"Title": "IContactRepository.cs", "Title": "IContactRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IContactRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IContactRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IContactRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IContactRepository.cs",
@@ -473,7 +541,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 28, "DocumentIndex": 32,
"Title": "ContactType.cs", "Title": "ContactType.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\ContactType.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\ContactType.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\ContactType.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\ContactType.cs",
@@ -486,7 +554,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 11, "DocumentIndex": 19,
"Title": "Contact.cs", "Title": "Contact.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Contact.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Contact.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Contact.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Contact.cs",
@@ -499,7 +567,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 27, "DocumentIndex": 31,
"Title": "MariaDbContactRepository.cs", "Title": "MariaDbContactRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbContactRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbContactRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbContactRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbContactRepository.cs",
@@ -512,7 +580,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 30, "DocumentIndex": 34,
"Title": "IAddressRepository.cs", "Title": "IAddressRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IAddressRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IAddressRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IAddressRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IAddressRepository.cs",
@@ -525,7 +593,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 10, "DocumentIndex": 18,
"Title": "Address.cs", "Title": "Address.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Address.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Address.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Address.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Address.cs",
@@ -538,7 +606,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 14, "DocumentIndex": 21,
"Title": "MariaDbAddressRepository.cs", "Title": "MariaDbAddressRepository.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbAddressRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbAddressRepository.cs",
"RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbAddressRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbAddressRepository.cs",
@@ -551,7 +619,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 31, "DocumentIndex": 35,
"Title": "RowWork.cs", "Title": "RowWork.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\RowWork.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\RowWork.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\RowWork.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\RowWork.cs",
@@ -564,7 +632,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 33, "DocumentIndex": 37,
"Title": "WarehouseProduct.cs", "Title": "WarehouseProduct.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\WarehouseProduct.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\WarehouseProduct.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\WarehouseProduct.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\WarehouseProduct.cs",
@@ -577,7 +645,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 32, "DocumentIndex": 36,
"Title": "ProductUsage.cs", "Title": "ProductUsage.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\ProductUsage.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\ProductUsage.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\ProductUsage.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\ProductUsage.cs",
@@ -590,7 +658,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 26, "DocumentIndex": 30,
"Title": "Worker.cs", "Title": "Worker.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Worker.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Worker.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Worker.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Worker.cs",
@@ -603,7 +671,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 25, "DocumentIndex": 29,
"Title": "PlantVariety.cs", "Title": "PlantVariety.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\PlantVariety.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\PlantVariety.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\PlantVariety.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\PlantVariety.cs",
@@ -616,7 +684,7 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 24, "DocumentIndex": 28,
"Title": "VinePlant.cs", "Title": "VinePlant.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\VinePlant.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\VinePlant.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\VinePlant.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\VinePlant.cs",
@@ -629,20 +697,20 @@
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 6, "DocumentIndex": 15,
"Title": "Vineyard.cs", "Title": "Vineyard.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Vineyard.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Vineyard.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Vineyard.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Vineyard.cs",
"ToolTip": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Vineyard.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Vineyard.cs",
"RelativeToolTip": "uWine.Core.Domain\\Entities\\Vineyard.cs", "RelativeToolTip": "uWine.Core.Domain\\Entities\\Vineyard.cs",
"ViewState": "AgIAAAwAAAAAAAAAAAAnwCIAAAAAAAAAAAAAAA==", "ViewState": "AgIAAAkAAAAAAAAAAAAuwAoAAAARAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-07-02T17:04:51.461Z", "WhenOpened": "2025-07-02T17:04:51.461Z",
"EditorCaption": "" "EditorCaption": ""
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 34, "DocumentIndex": 38,
"Title": "Row.cs", "Title": "Row.cs",
"DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Row.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Row.cs",
"RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Row.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Row.cs",
+124
View File
@@ -0,0 +1,124 @@
using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.IdentityModel.Tokens;
using Microsoft.OpenApi.Models;
using System.Text;
using uWine.Core.Domain.Repositories;
using uWine.Core.Infrastructure.Repository;
using uWine.Core.Infrastructure.Services;
namespace uWine.Api.Builder
{
public class Servicies
{
public static WebApplicationBuilder? AddAuthentiction(WebApplicationBuilder? builder)
{
builder.Services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(options =>
{
var jwtSettings = builder.Configuration.GetSection("JwtSettings");
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = jwtSettings["Issuer"],
ValidAudience = jwtSettings["Audience"],
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtSettings["Secret"]))
};
});
return builder;
}
public static WebApplicationBuilder? AddRepository(WebApplicationBuilder? builder)
{
builder.Services.AddTransient<IAuthenticationRepository, MariaDbAuthenticationRepository>();
builder.Services.AddTransient<IOwnerRepository, MariadbOwnerRepository>();
builder.Services.AddTransient<IAddressRepository, MariaDbAddressRepository>();
builder.Services.AddTransient<IContactRepository, MariaDbContactRepository>();
builder.Services.AddTransient<IVineyardRepository, MariaDbVineyardRepository>();
builder.Services.AddTransient<IUserRepository, MariaDbUserRepository>();
return builder;
}
public static WebApplicationBuilder? AddServices(WebApplicationBuilder? builder)
{
builder.Services.AddTransient<AuthenticationService>();
builder.Services.AddTransient<OwnerService>();
builder.Services.AddTransient<UserService>();
builder.Services.AddTransient<CoordinatesService>();
return builder;
}
public static WebApplicationBuilder? AddSwagger(WebApplicationBuilder? builder)
{
builder.Services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "Il tuo API", Version = "v1" });
// 1. Configurazione per JWT Bearer Token
c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
{
Description = "Inserisci il JWT Token nel campo 'Value' con il prefisso 'Bearer '. Esempio: 'Bearer your_token_here'",
Name = "Authorization",
In = ParameterLocation.Header,
Type = SecuritySchemeType.ApiKey,
Scheme = "Bearer"
});
c.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type = ReferenceType.SecurityScheme,
Id = "Bearer"
}
},
new string[] {}
}
});
// 2. Configurazione per Basic Authentication
c.AddSecurityDefinition("Basic", new OpenApiSecurityScheme
{
Description = "Basic authentication header",
Name = "Authorization",
In = ParameterLocation.Header,
Type = SecuritySchemeType.Http,
Scheme = "basic"
});
c.AddSecurityRequirement(new OpenApiSecurityRequirement
{
{
new OpenApiSecurityScheme
{
Reference = new OpenApiReference
{
Type = ReferenceType.SecurityScheme,
Id = "Basic"
}
},
new string[] {}
}
});
// Opzionale: per i commenti XML della documentazione
// var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
// var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
// c.IncludeXmlComments(xmlPath);
});
return builder;
}
}
}
+17
View File
@@ -33,5 +33,22 @@ namespace uWine.Api.Controllers
return StatusCode(500, new { error = ex.Message }); return StatusCode(500, new { error = ex.Message });
} }
} }
[HttpGet("get-area")]
public IActionResult GetArea(int vineyardId)
{
try
{
var area = _coordinatesService.GetArea(vineyardId);
if (area == null || area.Count == 0)
return NotFound("No area found for the given vineyard ID");
return Ok(area);
}
catch (Exception ex)
{
return StatusCode(500, new { error = ex.Message });
}
}
} }
} }
@@ -0,0 +1,49 @@
using Microsoft.AspNetCore.Mvc;
using uWine.Core.Infrastructure.Services;
namespace uWine.Api.Controllers
{
[ApiController]
[Route("/[controller]")]
public class VineyardController : Controller
{
public VineyardService _vineyardService;
public VineyardController(VineyardService vineyardService)
{
_vineyardService = vineyardService;
}
[HttpGet("get-user-vineyards")]
public IActionResult UserVineyards()
{
try
{
var UserId = int.Parse(User.FindFirst("userId")?.Value);
var list = _vineyardService.User(UserId);
return Ok(list);
}
catch
{
return Unauthorized(new { status = 401 });
}
}
[HttpGet("get-owner-vineyards")]
public IActionResult OwnerVineyards()
{
try
{
var UserId = int.Parse(User.FindFirst("userId")?.Value);
var list = _vineyardService.Owner(UserId);
return Ok(list);
}
catch
{
return Unauthorized(new { status = 401 });
}
}
}
}
+6 -29
View File
@@ -1,6 +1,7 @@
using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.IdentityModel.Tokens; using Microsoft.IdentityModel.Tokens;
using Microsoft.OpenApi.Models;
using System.Text; using System.Text;
using uWine.Core.Domain.Repositories; using uWine.Core.Domain.Repositories;
using uWine.Core.Infrastructure.Repository; using uWine.Core.Infrastructure.Repository;
@@ -14,42 +15,18 @@ namespace uWine.Api
{ {
var builder = WebApplication.CreateBuilder(args); var builder = WebApplication.CreateBuilder(args);
builder.Services.AddAuthentication(options => builder = Builder.Servicies.AddAuthentiction(builder);
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(options =>
{
var jwtSettings = builder.Configuration.GetSection("JwtSettings");
options.TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = true,
ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = jwtSettings["Issuer"],
ValidAudience = jwtSettings["Audience"],
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtSettings["Secret"]))
};
});
builder.Services.AddControllers(); builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer(); builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(); //builder.Services.AddSwaggerGen();
builder.Services.AddTransient<IAuthenticationRepository, MariaDbAuthenticationRepository>(); builder = Builder.Servicies.AddSwagger(builder);
builder.Services.AddTransient<IOwnerRepository, MariadbOwnerRepository>(); builder = Builder.Servicies.AddRepository(builder);
builder.Services.AddTransient<IAddressRepository, MariaDbAddressRepository>(); builder = Builder.Servicies.AddServices(builder);
builder.Services.AddTransient<IContactRepository, MariaDbContactRepository>();
builder.Services.AddTransient<IVineyardRepository, MariaDbVineyardRepository>();
builder.Services.AddTransient<IUserRepository, MariaDbUserRepository>();
builder.Services.AddTransient<AuthenticationService>();
builder.Services.AddTransient<OwnerService>();
builder.Services.AddTransient<UserService>();
//builder.Services.AddSingleton<MariaDbServerRepository>(); //builder.Services.AddSingleton<MariaDbServerRepository>();
var app = builder.Build(); var app = builder.Build();
@@ -10,6 +10,9 @@ namespace uWine.Core.Domain.Repositories
public interface IVineyardRepository public interface IVineyardRepository
{ {
List<Vineyard> GetOwnerVineyards(int ownerId); List<Vineyard> GetOwnerVineyards(int ownerId);
List<Vineyard> GetUserVineyards(int userId);
void Insert(Vineyard vineyard, int ownerId); void Insert(Vineyard vineyard, int ownerId);
void InsertArea(Dictionary<int, Coordinates> coordinates, int vineyardId);
string Area(int vineyardId);
} }
} }
@@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("uWine.Core.Domain")] [assembly: System.Reflection.AssemblyCompanyAttribute("uWine.Core.Domain")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5aca82244e19b339516cae671f01e897766fe699")] [assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a373201ca4c6a3dc43e4bc370112d65cebeb09fa")]
[assembly: System.Reflection.AssemblyProductAttribute("uWine.Core.Domain")] [assembly: System.Reflection.AssemblyProductAttribute("uWine.Core.Domain")]
[assembly: System.Reflection.AssemblyTitleAttribute("uWine.Core.Domain")] [assembly: System.Reflection.AssemblyTitleAttribute("uWine.Core.Domain")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
@@ -1 +1 @@
af0469651414fb1cc216fc5d5e51b3858d3ededd3bebba462f6393cc8502389f b902622a631d1baa0110ad04e0fcf461794e939a926c828bd6ba317993ff3e98
@@ -1,15 +1,11 @@
using System; using NetTopologySuite.Geometries;
using System.Collections.Generic; using NetTopologySuite.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using uWine.Core.Domain.Entities;
namespace uWine.Core.Infrastructure.Helpers namespace uWine.Core.Infrastructure.Helpers
{ {
public class CoordinatesHelper public class CoordinatesHelper
{ {
public static string ToWktPolygon(Dictionary<int, Coordinates> coordinatesDict) public static string ToWktPolygon(Dictionary<int, Domain.Entities.Coordinates> coordinatesDict)
{ {
if (coordinatesDict == null || !coordinatesDict.Any()) if (coordinatesDict == null || !coordinatesDict.Any())
{ {
@@ -31,5 +27,42 @@ namespace uWine.Core.Infrastructure.Helpers
return $"POLYGON(({closedPoints}))"; return $"POLYGON(({closedPoints}))";
} }
public static Dictionary<int, Domain.Entities.Coordinates> WktPolygonToDictionary(string wktPolygon)
{
if (string.IsNullOrWhiteSpace(wktPolygon))
{
throw new ArgumentException("La stringa WKT del poligono non può essere nulla o vuota.");
}
var reader = new WKTReader();
NetTopologySuite.Geometries.Geometry geometry = reader.Read(wktPolygon);
if (!(geometry is Polygon polygon))
{
throw new ArgumentException("La stringa WKT non rappresenta un poligono valido.");
}
var coordinatesDict = new Dictionary<int, Domain.Entities.Coordinates>();
var points = polygon.ExteriorRing.Coordinates; // Ottieni i punti dell'anello esterno
// Nota: i poligoni WKT ripetono il primo punto alla fine per chiudere.
// Dobbiamo escludere l'ultimo punto se è identico al primo per non duplicarlo nel dictionary,
// a meno che tu non voglia mantenere anche il punto di chiusura.
int count = points.Length;
if (count > 0 && points[0].Equals2D(points[count - 1]))
{
count--; // Escludi l'ultimo punto se è una duplicazione del primo
}
for (int i = 0; i < count; i++)
{
// Ricorda che NetTopologySuite usa (X, Y) che corrispondono a (Longitude, Latitude) per WGS84
coordinatesDict.Add(i, new Domain.Entities.Coordinates(points[i].Y, points[i].X ));
}
return coordinatesDict;
}
} }
} }
@@ -70,6 +70,18 @@ namespace uWine.Core.Infrastructure.Repository
} }
} }
public string Area(int vineyardId)
{
using (var connection = Connection())
{
connection.Open();
var command = new MySqlCommand("SELECT ST_AsText(area) FROM t_vineyard WHERE id = @id", connection);
command.Parameters.AddWithValue("@id", vineyardId);
var result = command.ExecuteScalar();
return result?.ToString() ?? string.Empty;
}
}
public List<Vineyard> GetOwnerVineyards(int ownerId) public List<Vineyard> GetOwnerVineyards(int ownerId)
{ {
var vineyards = new List<Vineyard>(); var vineyards = new List<Vineyard>();
@@ -92,5 +104,29 @@ namespace uWine.Core.Infrastructure.Repository
} }
return vineyards; return vineyards;
} }
public List<Vineyard> GetUserVineyards(int userId)
{
var vineyards = new List<Vineyard>();
using (var connection = Connection())
{
connection.Open();
var command = new MySqlCommand("SELECT v.id, v.name, v.location, v.hectares, v.latitude, v.longitude " +
"FROM t_vineyard v " +
"JOIN t_owners_vineyards ov ON v.id = ov.vineyard_id " +
"JOUN t_user_owner uo on uo.owner_id = ov.owner_id" +
"WHERE uo.user_id = @userId", connection);
command.Parameters.AddWithValue("@userId", userId);
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
vineyards.Add(Vineyard.FromRecord(reader));
}
}
}
return vineyards;
}
} }
} }
@@ -4,15 +4,17 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using uWine.Core.Domain.Entities; using uWine.Core.Domain.Entities;
using uWine.Core.Domain.Repositories;
using uWine.Core.Infrastructure.Helpers;
using uWine.Core.Infrastructure.Repository; using uWine.Core.Infrastructure.Repository;
namespace uWine.Core.Infrastructure.Services namespace uWine.Core.Infrastructure.Services
{ {
public class CoordinatesService public class CoordinatesService
{ {
public MariaDbVineyardRepository _vineyardRepository; public IVineyardRepository _vineyardRepository;
public CoordinatesService(MariaDbVineyardRepository vineyardRepository) public CoordinatesService(IVineyardRepository vineyardRepository)
{ {
_vineyardRepository = vineyardRepository; _vineyardRepository = vineyardRepository;
} }
@@ -28,14 +30,21 @@ namespace uWine.Core.Infrastructure.Services
// return new Coordinates(vineyard.Latitude, vineyard.Longitude); // return new Coordinates(vineyard.Latitude, vineyard.Longitude);
//} //}
public async Task<Dictionary<int,Coordinates>> VineyardCoordinates(int vineyardId) //public Dictionary<int, Coordinates> VineyardCoordinates(int vineyardId)
{ //{
// return new Dictionary<int, Coordinates>();
} //}
public void SaveArea(int vineyardId, Dictionary<int, Coordinates> coordinates) public void SaveArea(int vineyardId, Dictionary<int, Coordinates> coordinates)
{ {
_vineyardRepository.InsertArea(coordinates, vineyardId); _vineyardRepository.InsertArea(coordinates, vineyardId);
} }
public Dictionary<int, Coordinates> GetArea(int vineyardId)
{
var dict = new Dictionary<int, Coordinates>();
dict = CoordinatesHelper.WktPolygonToDictionary(_vineyardRepository.Area(vineyardId));
return dict;
}
} }
} }
@@ -0,0 +1,78 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using uWine.Core.Domain.Entities;
using uWine.Core.Domain.Repositories;
namespace uWine.Core.Infrastructure.Services
{
public class VineyardService
{
public IVineyardRepository _vineyardRepository;
public CoordinatesService _coordinatesService;
public VineyardService(IVineyardRepository vineyardRepository, CoordinatesService coordinatesService)
{
_vineyardRepository = vineyardRepository;
_coordinatesService = coordinatesService;
}
public void Insert(Vineyard vineyard, int ownerId)
{
if (vineyard == null)
{
throw new ArgumentNullException(nameof(vineyard), "Vineyard cannot be null");
}
_vineyardRepository.Insert(vineyard, ownerId);
if (vineyard.Area != null || vineyard.Area.Count >0)
{
_coordinatesService.SaveArea(vineyard.Id, vineyard.Area);
}
}
public List<Vineyard> User(int userId)
{
if (userId <= 0)
{
throw new ArgumentException("User ID must be greater than zero.", nameof(userId));
}
var vineyards = _vineyardRepository.GetUserVineyards(userId);
if (vineyards == null || !vineyards.Any())
{
return new List<Vineyard>();
}
foreach (var vineyard in vineyards)
{
vineyard.Area = _coordinatesService.GetArea(vineyard.Id);
}
return vineyards;
}
public List<Vineyard> Owner(int ownerId)
{
if (ownerId <= 0)
{
throw new ArgumentException("Owner ID must be greater than zero.", nameof(ownerId));
}
var vineyards = _vineyardRepository.GetOwnerVineyards(ownerId);
if (vineyards == null || !vineyards.Any())
{
return new List<Vineyard>();
}
foreach (var vineyard in vineyards)
{
vineyard.Area = _coordinatesService.GetArea(vineyard.Id);
}
return vineyards;
}
}
}
@@ -10,6 +10,7 @@
<PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.6" /> <PackageReference Include="Microsoft.Extensions.Configuration" Version="9.0.6" />
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.6" /> <PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="9.0.6" />
<PackageReference Include="MySqlConnector" Version="2.4.0" /> <PackageReference Include="MySqlConnector" Version="2.4.0" />
<PackageReference Include="NetTopologySuite" Version="2.6.0" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>