From 5aca82244e19b339516cae671f01e897766fe699 Mon Sep 17 00:00:00 2001 From: Riccardo Usardi Date: Wed, 9 Jul 2025 22:23:37 +0200 Subject: [PATCH] testapi --- .vs/uWine/DesignTimeBuild/.dtbcache.v2 | Bin 174253 -> 174253 bytes .vs/uWine/v17/.suo | Bin 122368 -> 133120 bytes .vs/uWine/v17/DocumentLayout.backup.json | 186 ++++++++++----- .vs/uWine/v17/DocumentLayout.json | 214 +++++++++++++----- uWine.Api/.config/dotnet-tools.json | 13 ++ uWine.Api/Controllers/TestController.cs | 25 +- uWine.Api/Program.cs | 9 + .../Api01 (192.168.0.8).pubxml | 22 ++ .../Api01 (192.168.0.8).pubxml.user | 11 + uWine.Api/uWine.Api.csproj.user | 1 + uWine.Core.Domain/Entities/User.cs | 1 + .../Repositories/IOwnerRepository.cs | 1 + .../Repositories/IUserRepository.cs | 14 ++ .../net8.0/uWine.Core.Domain.AssemblyInfo.cs | 2 +- ...uWine.Core.Domain.AssemblyInfoInputs.cache | 2 +- uWine.Core.Domain/obj/project.assets.json | 59 +++++ uWine.Core.Domain/obj/project.nuget.cache | 2 +- ...uWine.Core.Domain.csproj.nuget.dgspec.json | 5 + .../Repository/MariaDbUserRepository.cs | 46 ++++ .../Repository/MariadbOwnerRepository.cs | 18 ++ .../Services/UserService.cs | 40 ++++ 21 files changed, 545 insertions(+), 126 deletions(-) create mode 100644 uWine.Api/.config/dotnet-tools.json create mode 100644 uWine.Api/Properties/PublishProfiles/Api01 (192.168.0.8).pubxml create mode 100644 uWine.Api/Properties/PublishProfiles/Api01 (192.168.0.8).pubxml.user create mode 100644 uWine.Core.Domain/Repositories/IUserRepository.cs create mode 100644 uWine.Core.Infrastructure/Repository/MariaDbUserRepository.cs create mode 100644 uWine.Core.Infrastructure/Services/UserService.cs diff --git a/.vs/uWine/DesignTimeBuild/.dtbcache.v2 b/.vs/uWine/DesignTimeBuild/.dtbcache.v2 index 56ba631d9abef1b6525c10e2d48f4dda51a6c2bd..6ef792a69bdc2d62a598f9d978ac0ed58d6aaff9 100644 GIT binary patch delta 23528 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 Cb0Sj! delta 23285 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 egi?og*Nc?zo4>|P)j4g6nKy(Mh` delta 4149 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 RW_A^iD47~@D0J{l{tu2GrB?s| diff --git a/.vs/uWine/v17/DocumentLayout.backup.json b/.vs/uWine/v17/DocumentLayout.backup.json index 8905074..8ab3429 100644 --- a/.vs/uWine/v17/DocumentLayout.backup.json +++ b/.vs/uWine/v17/DocumentLayout.backup.json @@ -3,33 +3,61 @@ "WorkspaceRootPath": "M:\\uv\\uWine\\", "Documents": [ { - "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\\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:{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:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\address.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\\address.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}" + }, + { + "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:{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}" }, { - "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}" + "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\\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\\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:{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}" + }, + { + "AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\repositories\\iuserrepository.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\\iuserrepository.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\\authenticationservice.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\\authenticationservice.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\\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:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\owner.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\\owner.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}", "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}" @@ -42,14 +70,6 @@ "AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\vineplant.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\\vineplant.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}" - }, - { - "AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\owner.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\\owner.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\\contact.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\\contact.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" @@ -70,10 +90,6 @@ "AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbcontactrepository.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\\mariadbcontactrepository.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}" - }, { "AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\contacttype.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\\contacttype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" @@ -86,10 +102,6 @@ "AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\repositories\\iaddressrepository.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\\iaddressrepository.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\\address.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\\address.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\\rowwork.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\\rowwork.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" @@ -105,6 +117,10 @@ { "AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\row.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\\row.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\\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}" } ], "DocumentGroupContainers": [ @@ -114,11 +130,11 @@ "DocumentGroups": [ { "DockedWidth": 200, - "SelectedChildIndex": 10, + "SelectedChildIndex": 28, "Children": [ { "$type": "Document", - "DocumentIndex": 1, + "DocumentIndex": 10, "Title": "UserController.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Controllers\\UserController.cs", "RelativeDocumentMoniker": "uWine.Api\\Controllers\\UserController.cs", @@ -158,9 +174,61 @@ "$type": "Bookmark", "Name": "ST:0:0:{004be353-6879-467c-9d1e-9ac23cdf6d49}" }, + { + "$type": "Document", + "DocumentIndex": 29, + "Title": "IOwnerRepository.cs", + "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IOwnerRepository.cs", + "RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IOwnerRepository.cs", + "ToolTip": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IOwnerRepository.cs", + "RelativeToolTip": "uWine.Core.Domain\\Repositories\\IOwnerRepository.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-07-09T18:29:19.604Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 3, + "Title": "UserService.cs", + "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\UserService.cs", + "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\UserService.cs", + "ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\UserService.cs", + "RelativeToolTip": "uWine.Core.Infrastructure\\Services\\UserService.cs", + "ViewState": "AgIAABYAAAAAAAAAAAAQwCAAAAAxAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-07-09T17:08:48.34Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 8, + "Title": "IUserRepository.cs", + "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IUserRepository.cs", + "RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IUserRepository.cs", + "ToolTip": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IUserRepository.cs", + "RelativeToolTip": "uWine.Core.Domain\\Repositories\\IUserRepository.cs", + "ViewState": "AgIAAAEAAAAAAAAAAAAYwAsAAAANAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-07-09T17:07:58.612Z", + "EditorCaption": "" + }, { "$type": "Document", "DocumentIndex": 7, + "Title": "MariaDbUserRepository.cs", + "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbUserRepository.cs", + "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbUserRepository.cs", + "ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbUserRepository.cs", + "RelativeToolTip": "uWine.Core.Infrastructure\\Repository\\MariaDbUserRepository.cs", + "ViewState": "AgIAABQAAAAAAAAAAAA5wCcAAAAVAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-07-09T17:03:49.896Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 14, "Title": "Role.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Role.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Role.cs", @@ -173,59 +241,59 @@ }, { "$type": "Document", - "DocumentIndex": 2, + "DocumentIndex": 4, "Title": "User.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\User.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\User.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\User.cs", "RelativeToolTip": "uWine.Core.Domain\\Entities\\User.cs", - "ViewState": "AgIAAAwAAAAAAAAAAAAowAwAAAAbAAAAAAAAAA==", + "ViewState": "AgIAAAkAAAAAAAAAAAAYwBIAAAAeAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-07-09T15:30:48.881Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 0, + "DocumentIndex": 5, "Title": "TestController.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Controllers\\TestController.cs", "RelativeDocumentMoniker": "uWine.Api\\Controllers\\TestController.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Api\\Controllers\\TestController.cs", "RelativeToolTip": "uWine.Api\\Controllers\\TestController.cs", - "ViewState": "AgIAAAsAAAAAAAAAAAA7wBoAAAAmAAAAAAAAAA==", + "ViewState": "AgIAABYAAAAAAAAAAAAQwCAAAAAQAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-07-09T14:20:34.76Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 11, + "DocumentIndex": 12, "Title": "Owner.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Owner.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Owner.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Owner.cs", "RelativeToolTip": "uWine.Core.Domain\\Entities\\Owner.cs", - "ViewState": "AgIAAAsAAAAAAAAAAIA7wB0AAAABAAAAAAAAAA==", + "ViewState": "AgIAAAYAAAAAAAAAAAA1wAIAAAARAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-07-09T14:14:45.554Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 4, + "DocumentIndex": 6, "Title": "Program.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Program.cs", "RelativeDocumentMoniker": "uWine.Api\\Program.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Api\\Program.cs", "RelativeToolTip": "uWine.Api\\Program.cs", - "ViewState": "AgIAABkAAAAAAAAAAAAmwCoAAABDAAAAAAAAAA==", + "ViewState": "AgIAAB4AAAAAAAAAAAAIwDAAAAAAAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-07-09T14:07:06.764Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 5, + "DocumentIndex": 13, "Title": "appsettings.json", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\appsettings.json", "RelativeDocumentMoniker": "uWine.Api\\appsettings.json", @@ -238,7 +306,7 @@ }, { "$type": "Document", - "DocumentIndex": 8, + "DocumentIndex": 15, "Title": "IAuthenticationRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IAuthenticationRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IAuthenticationRepository.cs", @@ -251,46 +319,46 @@ }, { "$type": "Document", - "DocumentIndex": 3, + "DocumentIndex": 11, "Title": "MariaDbAuthenticationRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbAuthenticationRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbAuthenticationRepository.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbAuthenticationRepository.cs", "RelativeToolTip": "uWine.Core.Infrastructure\\Repository\\MariaDbAuthenticationRepository.cs", - "ViewState": "AgIAADEAAAAAAAAAAAAswDwAAAAnAAAAAAAAAA==", + "ViewState": "AgIAACsAAAAAAAAAAAAIwEEAAAAeAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-07-05T13:17:22.615Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 6, + "DocumentIndex": 9, "Title": "AuthenticationService.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\AuthenticationService.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\AuthenticationService.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\AuthenticationService.cs", "RelativeToolTip": "uWine.Core.Infrastructure\\Services\\AuthenticationService.cs", - "ViewState": "AgIAAAMAAAAAAAAAAAAAABoAAAA+AAAAAAAAAA==", + "ViewState": "AgIAAAYAAAAAAAAAAAAowBoAAAA+AAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-07-05T13:13:38.382Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 10, + "DocumentIndex": 2, "Title": "OwnerService.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\OwnerService.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\OwnerService.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\OwnerService.cs", "RelativeToolTip": "uWine.Core.Infrastructure\\Services\\OwnerService.cs", - "ViewState": "AgIAABcAAAAAAAAAAAAqwCQAAAAAAAAAAAAAAA==", + "ViewState": "AgIAABsAAAAAAAAAAAAYwCcAAAA7AAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-07-05T12:53:14.567Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 19, + "DocumentIndex": 23, "Title": "IContactRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IContactRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IContactRepository.cs", @@ -303,7 +371,7 @@ }, { "$type": "Document", - "DocumentIndex": 18, + "DocumentIndex": 22, "Title": "ContactType.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\ContactType.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\ContactType.cs", @@ -316,7 +384,7 @@ }, { "$type": "Document", - "DocumentIndex": 12, + "DocumentIndex": 17, "Title": "Contact.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Contact.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Contact.cs", @@ -329,7 +397,7 @@ }, { "$type": "Document", - "DocumentIndex": 16, + "DocumentIndex": 21, "Title": "MariaDbContactRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbContactRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbContactRepository.cs", @@ -342,7 +410,7 @@ }, { "$type": "Document", - "DocumentIndex": 20, + "DocumentIndex": 24, "Title": "IAddressRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IAddressRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IAddressRepository.cs", @@ -355,33 +423,33 @@ }, { "$type": "Document", - "DocumentIndex": 21, + "DocumentIndex": 1, "Title": "Address.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Address.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Address.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Address.cs", "RelativeToolTip": "uWine.Core.Domain\\Entities\\Address.cs", - "ViewState": "AgIAAAoAAAAAAAAAAAA5wAAAAAAAAAAAAAAAAA==", + "ViewState": "AgIAABEAAAAAAAAAAAAUwAQAAAARAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-07-04T12:44:44.188Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 17, + "DocumentIndex": 0, "Title": "MariaDbAddressRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbAddressRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbAddressRepository.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbAddressRepository.cs", "RelativeToolTip": "uWine.Core.Infrastructure\\Repository\\MariaDbAddressRepository.cs", - "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAAJAAAAAAAAAA==", + "ViewState": "AgIAAAAAAAAAAAAAAAAAADkAAAAdAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-07-04T12:25:22.151Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 22, + "DocumentIndex": 25, "Title": "RowWork.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\RowWork.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\RowWork.cs", @@ -394,7 +462,7 @@ }, { "$type": "Document", - "DocumentIndex": 24, + "DocumentIndex": 27, "Title": "WarehouseProduct.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\WarehouseProduct.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\WarehouseProduct.cs", @@ -407,7 +475,7 @@ }, { "$type": "Document", - "DocumentIndex": 23, + "DocumentIndex": 26, "Title": "ProductUsage.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\ProductUsage.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\ProductUsage.cs", @@ -420,7 +488,7 @@ }, { "$type": "Document", - "DocumentIndex": 14, + "DocumentIndex": 19, "Title": "Worker.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Worker.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Worker.cs", @@ -433,7 +501,7 @@ }, { "$type": "Document", - "DocumentIndex": 13, + "DocumentIndex": 18, "Title": "PlantVariety.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\PlantVariety.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\PlantVariety.cs", @@ -446,7 +514,7 @@ }, { "$type": "Document", - "DocumentIndex": 9, + "DocumentIndex": 16, "Title": "VinePlant.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\VinePlant.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\VinePlant.cs", @@ -459,7 +527,7 @@ }, { "$type": "Document", - "DocumentIndex": 15, + "DocumentIndex": 20, "Title": "Vineyard.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Vineyard.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Vineyard.cs", @@ -472,7 +540,7 @@ }, { "$type": "Document", - "DocumentIndex": 25, + "DocumentIndex": 28, "Title": "Row.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Row.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Row.cs", diff --git a/.vs/uWine/v17/DocumentLayout.json b/.vs/uWine/v17/DocumentLayout.json index d12b0a4..8ab3429 100644 --- a/.vs/uWine/v17/DocumentLayout.json +++ b/.vs/uWine/v17/DocumentLayout.json @@ -3,33 +3,61 @@ "WorkspaceRootPath": "M:\\uv\\uWine\\", "Documents": [ { - "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\\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:{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:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\address.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\\address.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}" + }, + { + "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:{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}" }, { - "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}" + "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\\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\\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:{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}" + }, + { + "AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\repositories\\iuserrepository.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\\iuserrepository.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\\authenticationservice.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\\authenticationservice.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\\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:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\owner.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\\owner.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}", "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}" @@ -42,14 +70,6 @@ "AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\vineplant.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\\vineplant.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}" - }, - { - "AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\owner.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\\owner.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\\contact.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\\contact.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" @@ -70,10 +90,6 @@ "AbsoluteMoniker": "D:0:0:{50360CEE-B38B-4729-ACA3-ABC3ED3538E9}|uWine.Core.Infrastructure\\uWine.Core.Infrastructure.csproj|m:\\uv\\uwine\\uwine.core.infrastructure\\repository\\mariadbcontactrepository.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\\mariadbcontactrepository.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}" - }, { "AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\contacttype.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\\contacttype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" @@ -86,10 +102,6 @@ "AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\repositories\\iaddressrepository.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\\iaddressrepository.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\\address.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\\address.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\\rowwork.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\\rowwork.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" @@ -105,6 +117,10 @@ { "AbsoluteMoniker": "D:0:0:{1DCFCDC3-C4A6-4864-8868-94AAB81C3DBA}|uWine.Core.Domain\\uWine.Core.Domain.csproj|m:\\uv\\uwine\\uwine.core.domain\\entities\\row.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\\row.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\\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}" } ], "DocumentGroupContainers": [ @@ -114,11 +130,11 @@ "DocumentGroups": [ { "DockedWidth": 200, - "SelectedChildIndex": 3, + "SelectedChildIndex": 28, "Children": [ { "$type": "Document", - "DocumentIndex": 1, + "DocumentIndex": 10, "Title": "UserController.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Controllers\\UserController.cs", "RelativeDocumentMoniker": "uWine.Api\\Controllers\\UserController.cs", @@ -130,9 +146,89 @@ "IsPinned": true, "EditorCaption": "" }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{d78612c7-9962-4b83-95d9-268046dad23a}" + }, + { + "$type": "Bookmark", + "Name": "ST:134:0:{1fc202d4-d401-403c-9834-5b218574bb67}" + }, + { + "$type": "Bookmark", + "Name": "ST:134:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Bookmark", + "Name": "ST:135:0:{116d2292-e37d-41cd-a077-ebacac4c8cc4}" + }, + { + "$type": "Bookmark", + "Name": "ST:130:0:{1fc202d4-d401-403c-9834-5b218574bb67}" + }, + { + "$type": "Bookmark", + "Name": "ST:131:0:{1fc202d4-d401-403c-9834-5b218574bb67}" + }, + { + "$type": "Bookmark", + "Name": "ST:0:0:{004be353-6879-467c-9d1e-9ac23cdf6d49}" + }, + { + "$type": "Document", + "DocumentIndex": 29, + "Title": "IOwnerRepository.cs", + "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IOwnerRepository.cs", + "RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IOwnerRepository.cs", + "ToolTip": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IOwnerRepository.cs", + "RelativeToolTip": "uWine.Core.Domain\\Repositories\\IOwnerRepository.cs", + "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-07-09T18:29:19.604Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 3, + "Title": "UserService.cs", + "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\UserService.cs", + "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\UserService.cs", + "ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\UserService.cs", + "RelativeToolTip": "uWine.Core.Infrastructure\\Services\\UserService.cs", + "ViewState": "AgIAABYAAAAAAAAAAAAQwCAAAAAxAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-07-09T17:08:48.34Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 8, + "Title": "IUserRepository.cs", + "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IUserRepository.cs", + "RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IUserRepository.cs", + "ToolTip": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IUserRepository.cs", + "RelativeToolTip": "uWine.Core.Domain\\Repositories\\IUserRepository.cs", + "ViewState": "AgIAAAEAAAAAAAAAAAAYwAsAAAANAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-07-09T17:07:58.612Z", + "EditorCaption": "" + }, { "$type": "Document", "DocumentIndex": 7, + "Title": "MariaDbUserRepository.cs", + "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbUserRepository.cs", + "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbUserRepository.cs", + "ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbUserRepository.cs", + "RelativeToolTip": "uWine.Core.Infrastructure\\Repository\\MariaDbUserRepository.cs", + "ViewState": "AgIAABQAAAAAAAAAAAA5wCcAAAAVAAAAAAAAAA==", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-07-09T17:03:49.896Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 14, "Title": "Role.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Role.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Role.cs", @@ -145,59 +241,59 @@ }, { "$type": "Document", - "DocumentIndex": 2, + "DocumentIndex": 4, "Title": "User.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\User.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\User.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\User.cs", "RelativeToolTip": "uWine.Core.Domain\\Entities\\User.cs", - "ViewState": "AgIAAAwAAAAAAAAAAAAowAwAAAAbAAAAAAAAAA==", + "ViewState": "AgIAAAkAAAAAAAAAAAAYwBIAAAAeAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-07-09T15:30:48.881Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 0, + "DocumentIndex": 5, "Title": "TestController.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Controllers\\TestController.cs", "RelativeDocumentMoniker": "uWine.Api\\Controllers\\TestController.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Api\\Controllers\\TestController.cs", "RelativeToolTip": "uWine.Api\\Controllers\\TestController.cs", - "ViewState": "AgIAAAsAAAAAAAAAAAA7wBoAAABAAAAAAAAAAA==", + "ViewState": "AgIAABYAAAAAAAAAAAAQwCAAAAAQAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-07-09T14:20:34.76Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 11, + "DocumentIndex": 12, "Title": "Owner.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Owner.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Owner.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Owner.cs", "RelativeToolTip": "uWine.Core.Domain\\Entities\\Owner.cs", - "ViewState": "AgIAAAsAAAAAAAAAAIA7wB0AAAABAAAAAAAAAA==", + "ViewState": "AgIAAAYAAAAAAAAAAAA1wAIAAAARAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-07-09T14:14:45.554Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 4, + "DocumentIndex": 6, "Title": "Program.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\Program.cs", "RelativeDocumentMoniker": "uWine.Api\\Program.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Api\\Program.cs", "RelativeToolTip": "uWine.Api\\Program.cs", - "ViewState": "AgIAABkAAAAAAAAAAAAmwCoAAABDAAAAAAAAAA==", + "ViewState": "AgIAAB4AAAAAAAAAAAAIwDAAAAAAAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-07-09T14:07:06.764Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 5, + "DocumentIndex": 13, "Title": "appsettings.json", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Api\\appsettings.json", "RelativeDocumentMoniker": "uWine.Api\\appsettings.json", @@ -210,7 +306,7 @@ }, { "$type": "Document", - "DocumentIndex": 8, + "DocumentIndex": 15, "Title": "IAuthenticationRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IAuthenticationRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IAuthenticationRepository.cs", @@ -223,46 +319,46 @@ }, { "$type": "Document", - "DocumentIndex": 3, + "DocumentIndex": 11, "Title": "MariaDbAuthenticationRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbAuthenticationRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbAuthenticationRepository.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbAuthenticationRepository.cs", "RelativeToolTip": "uWine.Core.Infrastructure\\Repository\\MariaDbAuthenticationRepository.cs", - "ViewState": "AgIAADEAAAAAAAAAAAAswDwAAAAnAAAAAAAAAA==", + "ViewState": "AgIAACsAAAAAAAAAAAAIwEEAAAAeAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-07-05T13:17:22.615Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 6, + "DocumentIndex": 9, "Title": "AuthenticationService.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\AuthenticationService.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\AuthenticationService.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\AuthenticationService.cs", "RelativeToolTip": "uWine.Core.Infrastructure\\Services\\AuthenticationService.cs", - "ViewState": "AgIAAAMAAAAAAAAAAAAAABoAAAA+AAAAAAAAAA==", + "ViewState": "AgIAAAYAAAAAAAAAAAAowBoAAAA+AAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-07-05T13:13:38.382Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 10, + "DocumentIndex": 2, "Title": "OwnerService.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\OwnerService.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Services\\OwnerService.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Services\\OwnerService.cs", "RelativeToolTip": "uWine.Core.Infrastructure\\Services\\OwnerService.cs", - "ViewState": "AgIAABcAAAAAAAAAAAAqwCQAAAAAAAAAAAAAAA==", + "ViewState": "AgIAABsAAAAAAAAAAAAYwCcAAAA7AAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-07-05T12:53:14.567Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 19, + "DocumentIndex": 23, "Title": "IContactRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IContactRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IContactRepository.cs", @@ -275,7 +371,7 @@ }, { "$type": "Document", - "DocumentIndex": 18, + "DocumentIndex": 22, "Title": "ContactType.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\ContactType.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\ContactType.cs", @@ -288,7 +384,7 @@ }, { "$type": "Document", - "DocumentIndex": 12, + "DocumentIndex": 17, "Title": "Contact.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Contact.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Contact.cs", @@ -301,7 +397,7 @@ }, { "$type": "Document", - "DocumentIndex": 16, + "DocumentIndex": 21, "Title": "MariaDbContactRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbContactRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbContactRepository.cs", @@ -314,7 +410,7 @@ }, { "$type": "Document", - "DocumentIndex": 20, + "DocumentIndex": 24, "Title": "IAddressRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Repositories\\IAddressRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Repositories\\IAddressRepository.cs", @@ -327,33 +423,33 @@ }, { "$type": "Document", - "DocumentIndex": 21, + "DocumentIndex": 1, "Title": "Address.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Address.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Address.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Address.cs", "RelativeToolTip": "uWine.Core.Domain\\Entities\\Address.cs", - "ViewState": "AgIAAAoAAAAAAAAAAAA5wAAAAAAAAAAAAAAAAA==", + "ViewState": "AgIAABEAAAAAAAAAAAAUwAQAAAARAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-07-04T12:44:44.188Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 17, + "DocumentIndex": 0, "Title": "MariaDbAddressRepository.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbAddressRepository.cs", "RelativeDocumentMoniker": "uWine.Core.Infrastructure\\Repository\\MariaDbAddressRepository.cs", "ToolTip": "M:\\uv\\uWine\\uWine.Core.Infrastructure\\Repository\\MariaDbAddressRepository.cs", "RelativeToolTip": "uWine.Core.Infrastructure\\Repository\\MariaDbAddressRepository.cs", - "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAAJAAAAAAAAAA==", + "ViewState": "AgIAAAAAAAAAAAAAAAAAADkAAAAdAAAAAAAAAA==", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "WhenOpened": "2025-07-04T12:25:22.151Z", "EditorCaption": "" }, { "$type": "Document", - "DocumentIndex": 22, + "DocumentIndex": 25, "Title": "RowWork.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\RowWork.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\RowWork.cs", @@ -366,7 +462,7 @@ }, { "$type": "Document", - "DocumentIndex": 24, + "DocumentIndex": 27, "Title": "WarehouseProduct.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\WarehouseProduct.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\WarehouseProduct.cs", @@ -379,7 +475,7 @@ }, { "$type": "Document", - "DocumentIndex": 23, + "DocumentIndex": 26, "Title": "ProductUsage.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\ProductUsage.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\ProductUsage.cs", @@ -392,7 +488,7 @@ }, { "$type": "Document", - "DocumentIndex": 14, + "DocumentIndex": 19, "Title": "Worker.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Worker.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Worker.cs", @@ -405,7 +501,7 @@ }, { "$type": "Document", - "DocumentIndex": 13, + "DocumentIndex": 18, "Title": "PlantVariety.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\PlantVariety.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\PlantVariety.cs", @@ -418,7 +514,7 @@ }, { "$type": "Document", - "DocumentIndex": 9, + "DocumentIndex": 16, "Title": "VinePlant.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\VinePlant.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\VinePlant.cs", @@ -431,7 +527,7 @@ }, { "$type": "Document", - "DocumentIndex": 15, + "DocumentIndex": 20, "Title": "Vineyard.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Vineyard.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Vineyard.cs", @@ -444,7 +540,7 @@ }, { "$type": "Document", - "DocumentIndex": 25, + "DocumentIndex": 28, "Title": "Row.cs", "DocumentMoniker": "M:\\uv\\uWine\\uWine.Core.Domain\\Entities\\Row.cs", "RelativeDocumentMoniker": "uWine.Core.Domain\\Entities\\Row.cs", diff --git a/uWine.Api/.config/dotnet-tools.json b/uWine.Api/.config/dotnet-tools.json new file mode 100644 index 0000000..fa9cd18 --- /dev/null +++ b/uWine.Api/.config/dotnet-tools.json @@ -0,0 +1,13 @@ +{ + "version": 1, + "isRoot": true, + "tools": { + "dotnet-ef": { + "version": "9.0.7", + "commands": [ + "dotnet-ef" + ], + "rollForward": false + } + } +} \ No newline at end of file diff --git a/uWine.Api/Controllers/TestController.cs b/uWine.Api/Controllers/TestController.cs index 2833d90..81aa111 100644 --- a/uWine.Api/Controllers/TestController.cs +++ b/uWine.Api/Controllers/TestController.cs @@ -1,5 +1,6 @@ using Microsoft.AspNetCore.Mvc; using System.Security.Claims; +using uWine.Core.Infrastructure.Services; namespace uWine.Api.Controllers { @@ -8,23 +9,37 @@ namespace uWine.Api.Controllers public class TestController : Controller { private readonly IConfiguration _configuration; + private readonly OwnerService _ownerService; + private readonly AuthenticationService _authenticationService; + private readonly UserService _userService; - public TestController(IConfiguration configuration) { - _configuration = configuration; + public TestController(IConfiguration configuration, + OwnerService ownerService, + AuthenticationService authenticationService, + UserService userService) + { + _configuration = configuration; + _ownerService = ownerService; + _authenticationService = authenticationService; + _userService = userService; } + [HttpGet("cklogin")] public IActionResult test() { try { var TUserId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value; - var userId = User.FindFirst("userId").Value; + var userId = int.Parse(User.FindFirst("userId").Value); var role = User.FindFirst(ClaimTypes.Role)?.Value; - return Ok(new { userId, TUserId, role }); + + var user = _userService.Process(userId); + + return Ok(new { userId, TUserId, role, user }); } catch { - return Unauthorized("\"title\": \"Unauthorized\""); + return Unauthorized(new { status = 401 }); } } diff --git a/uWine.Api/Program.cs b/uWine.Api/Program.cs index fd3069f..e7862b8 100644 --- a/uWine.Api/Program.cs +++ b/uWine.Api/Program.cs @@ -40,7 +40,16 @@ namespace uWine.Api builder.Services.AddSwaggerGen(); builder.Services.AddTransient(); + builder.Services.AddTransient(); + builder.Services.AddTransient(); + builder.Services.AddTransient(); + builder.Services.AddTransient(); + builder.Services.AddTransient(); + + builder.Services.AddTransient(); + builder.Services.AddTransient(); + builder.Services.AddTransient(); //builder.Services.AddSingleton(); var app = builder.Build(); diff --git a/uWine.Api/Properties/PublishProfiles/Api01 (192.168.0.8).pubxml b/uWine.Api/Properties/PublishProfiles/Api01 (192.168.0.8).pubxml new file mode 100644 index 0000000..e7de124 --- /dev/null +++ b/uWine.Api/Properties/PublishProfiles/Api01 (192.168.0.8).pubxml @@ -0,0 +1,22 @@ + + + + + false + false + true + Release + Any CPU + FileSystem + \\192.168.0.8\deploy\Api + FileSystem + <_TargetId>Folder + + net8.0 + linux-x64 + 8e5d260e-7395-4875-8a4f-16205f92ad38 + false + + \ No newline at end of file diff --git a/uWine.Api/Properties/PublishProfiles/Api01 (192.168.0.8).pubxml.user b/uWine.Api/Properties/PublishProfiles/Api01 (192.168.0.8).pubxml.user new file mode 100644 index 0000000..7af2d46 --- /dev/null +++ b/uWine.Api/Properties/PublishProfiles/Api01 (192.168.0.8).pubxml.user @@ -0,0 +1,11 @@ + + + + + <_PublishTargetUrl>\\192.168.0.8\deploy\Api + True|2025-07-09T20:17:50.4482481Z||;False|2025-07-09T22:16:08.6429078+02:00||; + + + \ No newline at end of file diff --git a/uWine.Api/uWine.Api.csproj.user b/uWine.Api/uWine.Api.csproj.user index e4f6e71..704b802 100644 --- a/uWine.Api/uWine.Api.csproj.user +++ b/uWine.Api/uWine.Api.csproj.user @@ -3,5 +3,6 @@ MvcControllerEmptyScaffolder root/Common/MVC/Controller + M:\uv\uWine\uWine.Api\Properties\PublishProfiles\Api01 %28192.168.0.8%29.pubxml \ No newline at end of file diff --git a/uWine.Core.Domain/Entities/User.cs b/uWine.Core.Domain/Entities/User.cs index 6aa0d8f..2380a09 100644 --- a/uWine.Core.Domain/Entities/User.cs +++ b/uWine.Core.Domain/Entities/User.cs @@ -16,6 +16,7 @@ namespace uWine.Core.Domain.Entities { Id = reader.GetInt32("id"), Username = reader.GetString("username"), + Active = true, Role = Role.FromRecord(reader), }; } diff --git a/uWine.Core.Domain/Repositories/IOwnerRepository.cs b/uWine.Core.Domain/Repositories/IOwnerRepository.cs index 016c35a..9e341c4 100644 --- a/uWine.Core.Domain/Repositories/IOwnerRepository.cs +++ b/uWine.Core.Domain/Repositories/IOwnerRepository.cs @@ -12,5 +12,6 @@ namespace uWine.Core.Domain.Repositories void AddAddress(int ownerId, Address address); void Insert(Owner owner); Owner Simple(int ownerId); + List FromUser(int userId); } } diff --git a/uWine.Core.Domain/Repositories/IUserRepository.cs b/uWine.Core.Domain/Repositories/IUserRepository.cs new file mode 100644 index 0000000..01d3f05 --- /dev/null +++ b/uWine.Core.Domain/Repositories/IUserRepository.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using uWine.Core.Domain.Entities; + +namespace uWine.Core.Domain.Repositories +{ + public interface IUserRepository + { + User UserById(int userId); + } +} diff --git a/uWine.Core.Domain/obj/Debug/net8.0/uWine.Core.Domain.AssemblyInfo.cs b/uWine.Core.Domain/obj/Debug/net8.0/uWine.Core.Domain.AssemblyInfo.cs index 82afa8c..7f6e8d7 100644 --- a/uWine.Core.Domain/obj/Debug/net8.0/uWine.Core.Domain.AssemblyInfo.cs +++ b/uWine.Core.Domain/obj/Debug/net8.0/uWine.Core.Domain.AssemblyInfo.cs @@ -14,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("uWine.Core.Domain")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+a172f05269c07a86949730b68f466dbb39efd35c")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+2db95255706ee58fdfd1cd80269882ddfb6a08a0")] [assembly: System.Reflection.AssemblyProductAttribute("uWine.Core.Domain")] [assembly: System.Reflection.AssemblyTitleAttribute("uWine.Core.Domain")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/uWine.Core.Domain/obj/Debug/net8.0/uWine.Core.Domain.AssemblyInfoInputs.cache b/uWine.Core.Domain/obj/Debug/net8.0/uWine.Core.Domain.AssemblyInfoInputs.cache index d8519ce..03f9b67 100644 --- a/uWine.Core.Domain/obj/Debug/net8.0/uWine.Core.Domain.AssemblyInfoInputs.cache +++ b/uWine.Core.Domain/obj/Debug/net8.0/uWine.Core.Domain.AssemblyInfoInputs.cache @@ -1 +1 @@ -8b28d92b53d240bb0fa1329b33b29da5b306fb49220cf2f4e3d5082767ed6f9b +90a65fc50c45509dd6f76eaeb434d71392cfcabf236fe20248645f330d5292ae diff --git a/uWine.Core.Domain/obj/project.assets.json b/uWine.Core.Domain/obj/project.assets.json index ec9622b..b67c62a 100644 --- a/uWine.Core.Domain/obj/project.assets.json +++ b/uWine.Core.Domain/obj/project.assets.json @@ -54,6 +54,60 @@ } } } + }, + "net8.0/linux-x64": { + "Microsoft.Extensions.DependencyInjection.Abstractions/8.0.2": { + "type": "package", + "compile": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/_._": {} + } + }, + "Microsoft.Extensions.Logging.Abstractions/8.0.2": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/Microsoft.Extensions.Logging.Abstractions.dll": { + "related": ".xml" + } + }, + "build": { + "buildTransitive/net6.0/Microsoft.Extensions.Logging.Abstractions.targets": {} + } + }, + "MySqlConnector/2.4.0": { + "type": "package", + "dependencies": { + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.2", + "Microsoft.Extensions.Logging.Abstractions": "8.0.2" + }, + "compile": { + "lib/net8.0/MySqlConnector.dll": { + "related": ".xml" + } + }, + "runtime": { + "lib/net8.0/MySqlConnector.dll": { + "related": ".xml" + } + } + } } }, "libraries": { @@ -265,6 +319,11 @@ }, "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400/PortableRuntimeIdentifierGraph.json" } + }, + "runtimes": { + "linux-x64": { + "#import": [] + } } } } \ No newline at end of file diff --git a/uWine.Core.Domain/obj/project.nuget.cache b/uWine.Core.Domain/obj/project.nuget.cache index 42f1b24..092821c 100644 --- a/uWine.Core.Domain/obj/project.nuget.cache +++ b/uWine.Core.Domain/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "xoU7wD+w/v0=", + "dgSpecHash": "dpwl0H+ZmD8=", "success": true, "projectFilePath": "M:\\uv\\uWine\\uWine.Core.Domain\\uWine.Core.Domain.csproj", "expectedPackageFiles": [ diff --git a/uWine.Core.Domain/obj/uWine.Core.Domain.csproj.nuget.dgspec.json b/uWine.Core.Domain/obj/uWine.Core.Domain.csproj.nuget.dgspec.json index cb03b6a..e47e34c 100644 --- a/uWine.Core.Domain/obj/uWine.Core.Domain.csproj.nuget.dgspec.json +++ b/uWine.Core.Domain/obj/uWine.Core.Domain.csproj.nuget.dgspec.json @@ -69,6 +69,11 @@ }, "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.400/PortableRuntimeIdentifierGraph.json" } + }, + "runtimes": { + "linux-x64": { + "#import": [] + } } } } diff --git a/uWine.Core.Infrastructure/Repository/MariaDbUserRepository.cs b/uWine.Core.Infrastructure/Repository/MariaDbUserRepository.cs new file mode 100644 index 0000000..5089d5d --- /dev/null +++ b/uWine.Core.Infrastructure/Repository/MariaDbUserRepository.cs @@ -0,0 +1,46 @@ +using Microsoft.Extensions.Configuration; +using MySqlConnector; +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.Repository +{ + + public class MariaDbUserRepository : MariaDbServerRepository, IUserRepository + { + public MariaDbUserRepository(IConfiguration configuration) : base(configuration) + { + + } + + public User UserById(int userId) + { + using (var conn = Connection()) + { + conn.Open(); + var cmd = new MySqlCommand($@"SELECT u.id, + username, + u.role as role_id, + r.role as name, + description + FROM t_users u + JOIN t_role r on r.id = u.role + WHERE u.id = @userId ", conn); + cmd.Parameters.AddWithValue("userId", userId); + using (var reader = cmd.ExecuteReader()) + { + if (reader.Read()) + { + return User.LoginUser(reader); + } + } + } + return new User(); + } + } +} diff --git a/uWine.Core.Infrastructure/Repository/MariadbOwnerRepository.cs b/uWine.Core.Infrastructure/Repository/MariadbOwnerRepository.cs index bee4afe..dfe6532 100644 --- a/uWine.Core.Infrastructure/Repository/MariadbOwnerRepository.cs +++ b/uWine.Core.Infrastructure/Repository/MariadbOwnerRepository.cs @@ -113,5 +113,23 @@ namespace uWine.Core.Infrastructure.Repository } return new Owner(); } + + public List FromUser(int userId) + { + var list = new List(); + using (var connection = Connection()) { + connection.Open(); + var cmd = new MySqlCommand("SELECT owner_id as id FROM t_user_owner WHERE user_id = @userId",connection); + cmd.Parameters.AddWithValue("userId", userId); + using (var reader = cmd.ExecuteReader()) + { + while (reader.Read()) + { + list.Add(Simple(reader.GetInt32("id"))); + } + } + } + return list; + } } } diff --git a/uWine.Core.Infrastructure/Services/UserService.cs b/uWine.Core.Infrastructure/Services/UserService.cs new file mode 100644 index 0000000..64eaac5 --- /dev/null +++ b/uWine.Core.Infrastructure/Services/UserService.cs @@ -0,0 +1,40 @@ +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 UserService + { + public IUserRepository _userRepository; + readonly OwnerService _ownerService; + readonly IOwnerRepository _ownerRepository; + + + public UserService( + IUserRepository userRepository, OwnerService ownerService, IOwnerRepository ownerRepository) + { + _userRepository = userRepository; + _ownerService = ownerService; + _ownerRepository = ownerRepository; + } + + public User Process(int userId) + { + var user = _userRepository.UserById(userId); + if (user == null) + throw new ArgumentException($"User with ID {userId} not found."); + + var owners = _ownerRepository.FromUser(userId) + ?.Select(owner => _ownerService.FillData(owner)) + .ToList(); + + user.Owners = owners ?? new List(); + return user; + } + } +}