Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ADMINAPI-1085]: Create a shared library code for Admin API #194

Merged
merged 9 commits into from
Nov 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/api-e2e-mssql-multitenant.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ jobs:
- name: Copy admin console folder to docker context
run: cp -r ../EdFi.Ods.AdminApi.AdminConsole ../../Docker/Application

- name: Copy admin api common folder to docker context
run: cp -r ../EdFi.Ods.AdminApi.Common ../../Docker/Application

- name: Copy nuget config to docker context
run: cp ../NuGet.Config ../../Docker/Application

Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/api-e2e-mssql-singletenant.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ jobs:
- name: Copy admin console folder to docker context
run: cp -r ../EdFi.Ods.AdminApi.AdminConsole ../../Docker/Application

- name: Copy admin api common folder to docker context
run: cp -r ../EdFi.Ods.AdminApi.Common ../../Docker/Application

- name: Copy nuget config to docker context
run: cp ../NuGet.Config ../../Docker/Application

Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/api-e2e-pgsql-multitenant.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,9 @@ jobs:
- name: Copy admin console folder to docker context
run: cp -r ../EdFi.Ods.AdminApi.AdminConsole ../../Docker/Application

- name: Copy admin api common folder to docker context
run: cp -r ../EdFi.Ods.AdminApi.Common ../../Docker/Application

- name: Copy nuget config to docker context
run: cp ../NuGet.Config ../../Docker/Application

Expand Down
1 change: 1 addition & 0 deletions .github/workflows/api-e2e-pgsql-singletenant.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ jobs:
mkdir ../../Docker/Application
cp -r ../EdFi.Ods.AdminApi ../../Docker/Application
cp -r ../EdFi.Ods.AdminApi.AdminConsole ../../Docker/Application
cp -r ../EdFi.Ods.AdminApi.Common ../../Docker/Application

- name: Copy nuget config to docker context
run: cp ../NuGet.Config ../../Docker/Application
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/on-pullrequest-dockerfile-ac.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
mkdir Docker/Application
cp -r ./Application/EdFi.Ods.AdminApi ./Docker/Application
cp -r ./Application/EdFi.Ods.AdminApi.AdminConsole ./Docker/Application
cp -r ./Application/EdFi.Ods.AdminApi.Common ./Docker/Application
cp ./Application/NuGet.Config ./Docker/Application

- uses: hadolint/hadolint-action@54c9adbab1582c2ef04b2016b760714a4bfde3cf # v3.1.0
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/on-pullrequest-dockerfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ jobs:
mkdir Docker/Application
cp -r ./Application/EdFi.Ods.AdminApi ./Docker/Application
cp -r ./Application/EdFi.Ods.AdminApi.AdminConsole ./Docker/Application
cp -r ./Application/EdFi.Ods.AdminApi.Common ./Docker/Application
cp ./Application/NuGet.Config ./Docker/Application

- name: Set Version Numbers
Expand Down
10 changes: 10 additions & 0 deletions Application/Ed-Fi-ODS-AdminApi.sln
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EdFi.Ods.AdminApi.AdminCons
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EdFi.Ods.AdminConsole.DBTests", "EdFi.Ods.AdminConsole.DBTests\EdFi.Ods.AdminConsole.DBTests.csproj", "{A2DC17AC-66C2-4119-BB47-4266E8ACB055}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EdFi.Ods.AdminApi.Common", "EdFi.Ods.AdminApi.Common\EdFi.Ods.AdminApi.Common.csproj", "{C9C86866-562B-4EA3-9AAC-F3297F0754D6}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -71,6 +73,14 @@ Global
{A2DC17AC-66C2-4119-BB47-4266E8ACB055}.Release|Any CPU.Build.0 = Release|Any CPU
{A2DC17AC-66C2-4119-BB47-4266E8ACB055}.Release|x64.ActiveCfg = Release|Any CPU
{A2DC17AC-66C2-4119-BB47-4266E8ACB055}.Release|x64.Build.0 = Release|Any CPU
{C9C86866-562B-4EA3-9AAC-F3297F0754D6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C9C86866-562B-4EA3-9AAC-F3297F0754D6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C9C86866-562B-4EA3-9AAC-F3297F0754D6}.Debug|x64.ActiveCfg = Debug|Any CPU
{C9C86866-562B-4EA3-9AAC-F3297F0754D6}.Debug|x64.Build.0 = Debug|Any CPU
{C9C86866-562B-4EA3-9AAC-F3297F0754D6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C9C86866-562B-4EA3-9AAC-F3297F0754D6}.Release|Any CPU.Build.0 = Release|Any CPU
{C9C86866-562B-4EA3-9AAC-F3297F0754D6}.Release|x64.ActiveCfg = Release|Any CPU
{C9C86866-562B-4EA3-9AAC-F3297F0754D6}.Release|x64.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@
<Nullable>enable</Nullable>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
</PropertyGroup>

<ItemGroup>
<Compile Remove="Mockdata\**" />
<EmbeddedResource Remove="Mockdata\**" />
Expand All @@ -27,17 +35,23 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="8.0.1" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="9.0.0" />
<PackageReference Include="Microsoft.NETCore.App" Version="2.1.30" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<PackageReference Include="Npgsql" Version="8.0.6" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.4" />
<PackageReference Include="Rijndael256" Version="3.2.0" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.7.0" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.7.0" />
<PackageReference Include="System.Text.Json" Version="8.0.5" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="7.1.0" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="7.1.0" />
<PackageReference Include="System.Text.Json" Version="9.0.0" />
</ItemGroup>

<ItemGroup>
<Folder Include="Infrastructure\DataAccess\Artifacts\" />
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\EdFi.Ods.AdminApi.Common\EdFi.Ods.AdminApi.Common.csproj" />
</ItemGroup>

</Project>
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@

using System.ComponentModel.DataAnnotations;
using EdFi.Ods.AdminApi.AdminConsole.Infrastructure.Services.HealthChecks.Commands;
using EdFi.Ods.AdminApi.Common.Features;
using EdFi.Ods.AdminApi.Common.Infrastructure;
using FluentValidation;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Routing;
Expand All @@ -16,9 +18,9 @@ public class AddHealthCheck : IFeature
{
public void MapEndpoints(IEndpointRouteBuilder endpoints)
{
AdminApiAdminConsoleEndpointBuilder.MapPost(endpoints, "/healthcheck", Execute)
AdminApiEndpointBuilder.MapPost(endpoints, "/healthcheck", Execute)
.WithRouteOptions(b => b.WithResponseCode(201))
.BuildForVersions();
.BuildForVersions(AdminApiVersions.AdminConsole);
}

public async Task<IResult> Execute(Validator validator, IAddHealthCheckCommand addHealthCheckCommand, AddHealthCheckRequest request)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
using AutoMapper;
using EdFi.Ods.AdminApi.AdminConsole.Infrastructure.DataAccess.Models;
using EdFi.Ods.AdminApi.AdminConsole.Infrastructure.Services.HealthChecks.Queries;
using EdFi.Ods.AdminApi.Common.Features;
using EdFi.Ods.AdminApi.Common.Infrastructure;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Routing;

Expand All @@ -15,11 +17,11 @@ public class ReadHealthcheck : IFeature
{
public void MapEndpoints(IEndpointRouteBuilder endpoints)
{
AdminApiAdminConsoleEndpointBuilder.MapGet(endpoints, "/healthcheck", GetHealthchecks)
.BuildForVersions();
AdminApiEndpointBuilder.MapGet(endpoints, "/healthcheck", GetHealthchecks)
.BuildForVersions(AdminApiVersions.AdminConsole);

AdminApiAdminConsoleEndpointBuilder.MapGet(endpoints, "/healthcheck/{tenantId}", GetHealthcheck)
.BuildForVersions();
AdminApiEndpointBuilder.MapGet(endpoints, "/healthcheck/{tenantId}", GetHealthcheck)
.BuildForVersions(AdminApiVersions.AdminConsole);
}

internal async Task<IResult> GetHealthcheck(IMapper mapper, IGetHealthCheckQuery getHealthCheckQuery, int tenantId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@

using System.ComponentModel.DataAnnotations;
using EdFi.Ods.AdminApi.AdminConsole.Infrastructure.Services.Instances.Commands;
using EdFi.Ods.AdminApi.Common.Features;
using EdFi.Ods.AdminApi.Common.Infrastructure;
using FluentValidation;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Routing;
Expand All @@ -15,9 +17,9 @@ public class AddInstance : IFeature
{
public void MapEndpoints(IEndpointRouteBuilder endpoints)
{
AdminApiAdminConsoleEndpointBuilder.MapPost(endpoints, "/instances", Execute)
AdminApiEndpointBuilder.MapPost(endpoints, "/instances", Execute)
.WithRouteOptions(b => b.WithResponseCode(201))
.BuildForVersions();
.BuildForVersions(AdminApiVersions.AdminConsole);
}

public async Task<IResult> Execute(Validator validator, IAddInstanceCommand addInstanceCommand, AddInstanceRequest request)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
using System.Text.Json;
using EdFi.Ods.AdminApi.AdminConsole.Infrastructure.DataAccess.Models;
using EdFi.Ods.AdminApi.AdminConsole.Infrastructure.Services.Instances.Queries;
using EdFi.Ods.AdminApi.Common.Features;
using EdFi.Ods.AdminApi.Common.Infrastructure;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Routing;
Expand All @@ -18,16 +20,16 @@ public class ReadInstances : IFeature
{
public void MapEndpoints(IEndpointRouteBuilder endpoints)
{
AdminApiAdminConsoleEndpointBuilder.MapGet(endpoints, "/instances", GetInstances)
.BuildForVersions();
AdminApiEndpointBuilder.MapGet(endpoints, "/instances", GetInstances)
.BuildForVersions(AdminApiVersions.AdminConsole);

AdminApiAdminConsoleEndpointBuilder.MapGet(endpoints, "/instances/{tenantId}/{id}", GetInstanceById)
AdminApiEndpointBuilder.MapGet(endpoints, "/instances/{tenantId}/{id}", GetInstanceById)
.WithRouteOptions(b => b.WithResponse<InstanceModel>(200))
.BuildForVersions();
.BuildForVersions(AdminApiVersions.AdminConsole);

AdminApiAdminConsoleEndpointBuilder.MapGet(endpoints, "/instances/{tenantId}", GetInstancesByTenantId)
AdminApiEndpointBuilder.MapGet(endpoints, "/instances/{tenantId}", GetInstancesByTenantId)
.WithRouteOptions(b => b.WithResponse<InstanceModel>(200))
.BuildForVersions();
.BuildForVersions(AdminApiVersions.AdminConsole);
}

internal async Task<IResult> GetInstances([FromServices] IGetInstancesQuery getInstancesQuery)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
using System.ComponentModel.DataAnnotations;
using EdFi.Ods.AdminApi.AdminConsole.Infrastructure.Services.Instances.Commands;
using EdFi.Ods.AdminApi.AdminConsole.Infrastructure.Services.Permissions.Commands;
using EdFi.Ods.AdminApi.Common.Features;
using EdFi.Ods.AdminApi.Common.Infrastructure;
using FluentValidation;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Routing;
Expand All @@ -16,9 +18,9 @@ public class AddPermission: IFeature
{
public void MapEndpoints(IEndpointRouteBuilder endpoints)
{
AdminApiAdminConsoleEndpointBuilder.MapPost(endpoints, "/permissions", Execute)
AdminApiEndpointBuilder.MapPost(endpoints, "/permissions", Execute)
.WithRouteOptions(b => b.WithResponseCode(201))
.BuildForVersions();
.BuildForVersions(AdminApiVersions.AdminConsole);
}

public async Task<IResult> Execute(Validator validator, IAddPermissionCommand addPermissionCommand, AddPermissionRequest request)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
using EdFi.Ods.AdminApi.AdminConsole.Features.Permissions;
using EdFi.Ods.AdminApi.AdminConsole.Infrastructure.DataAccess.Models;
using EdFi.Ods.AdminApi.AdminConsole.Infrastructure.Services.Permissions.Queries;
using EdFi.Ods.AdminApi.Common.Features;
using EdFi.Ods.AdminApi.Common.Infrastructure;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Routing;
Expand All @@ -21,16 +23,16 @@ public class ReadPermissions : IFeature
{
public void MapEndpoints(IEndpointRouteBuilder endpoints)
{
AdminApiAdminConsoleEndpointBuilder.MapGet(endpoints, "/permissions", GetPermissions)
.BuildForVersions();
AdminApiEndpointBuilder.MapGet(endpoints, "/permissions", GetPermissions)
.BuildForVersions(AdminApiVersions.AdminConsole);

AdminApiAdminConsoleEndpointBuilder.MapGet(endpoints, "/permissions/{tenantId}/{id}", GetPermissionById)
AdminApiEndpointBuilder.MapGet(endpoints, "/permissions/{tenantId}/{id}", GetPermissionById)
.WithRouteOptions(b => b.WithResponse<PermissionModel>(200))
.BuildForVersions();
.BuildForVersions(AdminApiVersions.AdminConsole);

AdminApiAdminConsoleEndpointBuilder.MapGet(endpoints, "/permissions/{tenantId}", GetPermissionsByTenantId)
AdminApiEndpointBuilder.MapGet(endpoints, "/permissions/{tenantId}", GetPermissionsByTenantId)
.WithRouteOptions(b => b.WithResponse<PermissionModel>(200))
.BuildForVersions();
.BuildForVersions(AdminApiVersions.AdminConsole);
}

internal async Task<IResult> GetPermissions([FromServices] IGetPermissionsQuery getPermissionQuery)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@

using System.ComponentModel.DataAnnotations;
using EdFi.Ods.AdminApi.AdminConsole.Infrastructure.Services.Steps.Commands;
using EdFi.Ods.AdminApi.Common.Features;
using EdFi.Ods.AdminApi.Common.Infrastructure;
using FluentValidation;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Routing;
Expand All @@ -15,9 +17,9 @@ public class AddStep: IFeature
{
public void MapEndpoints(IEndpointRouteBuilder endpoints)
{
AdminApiAdminConsoleEndpointBuilder.MapPost(endpoints, "/steps", Execute)
AdminApiEndpointBuilder.MapPost(endpoints, "/steps", Execute)
.WithRouteOptions(b => b.WithResponseCode(201))
.BuildForVersions();
.BuildForVersions(AdminApiVersions.AdminConsole);
}

public async Task<IResult> Execute(Validator validator, IAddStepCommand addStepCommand, AddStepRequest request)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
using EdFi.Ods.AdminApi.AdminConsole.Infrastructure.DataAccess.Models;
using EdFi.Ods.AdminApi.AdminConsole.Infrastructure.Services.Permissions.Queries;
using EdFi.Ods.AdminApi.AdminConsole.Infrastructure.Services.Steps.Queries;
using EdFi.Ods.AdminApi.Common.Features;
using EdFi.Ods.AdminApi.Common.Infrastructure;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Routing;
Expand All @@ -18,16 +20,16 @@ public class ReadSteps : IFeature
{
public void MapEndpoints(IEndpointRouteBuilder endpoints)
{
AdminApiAdminConsoleEndpointBuilder.MapGet(endpoints, "/steps", GetSteps)
.BuildForVersions();
AdminApiEndpointBuilder.MapGet(endpoints, "/steps", GetSteps)
.BuildForVersions(AdminApiVersions.AdminConsole);

AdminApiAdminConsoleEndpointBuilder.MapGet(endpoints, "/steps/{tenantId}/{id}", GetStepById)
AdminApiEndpointBuilder.MapGet(endpoints, "/steps/{tenantId}/{id}", GetStepById)
.WithRouteOptions(b => b.WithResponse<StepModel>(200))
.BuildForVersions();
.BuildForVersions(AdminApiVersions.AdminConsole);

AdminApiAdminConsoleEndpointBuilder.MapGet(endpoints, "/steps/{tenantId}", GetStepsByTenantId)
AdminApiEndpointBuilder.MapGet(endpoints, "/steps/{tenantId}", GetStepsByTenantId)
.WithRouteOptions(b => b.WithResponse<StepModel>(200))
.BuildForVersions();
.BuildForVersions(AdminApiVersions.AdminConsole);
}

internal async Task<IResult> GetSteps([FromServices] IGetStepsQuery getStepsQuery)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
using System.Text;
using System.Threading.Tasks;
using EdFi.Ods.AdminApi.AdminConsole.Infrastructure.Services.Tenants.Commands;
using EdFi.Ods.AdminApi.Common.Features;
using EdFi.Ods.AdminApi.Common.Infrastructure;
using FluentValidation;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Routing;
Expand All @@ -20,9 +22,9 @@ public class AddTenant : IFeature
{
public void MapEndpoints(IEndpointRouteBuilder endpoints)
{
AdminApiAdminConsoleEndpointBuilder.MapPost(endpoints, "/tenants", Execute)
AdminApiEndpointBuilder.MapPost(endpoints, "/tenants", Execute)
.WithRouteOptions(b => b.WithResponseCode(201))
.BuildForVersions();
.BuildForVersions(AdminApiVersions.AdminConsole);
}

public async Task<IResult> Execute(Validator validator, IAddTenantCommand addTenantCommand, AddTenantRequest request)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
using System.Text.Json;
using EdFi.Ods.AdminApi.AdminConsole.Infrastructure.DataAccess.Models;
using EdFi.Ods.AdminApi.AdminConsole.Infrastructure.Services.Tenants.Queries;
using EdFi.Ods.AdminApi.Common.Features;
using EdFi.Ods.AdminApi.Common.Infrastructure;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Routing;
using Newtonsoft.Json;
Expand All @@ -17,11 +19,11 @@ public class ReadTenants : IFeature
{
public void MapEndpoints(IEndpointRouteBuilder endpoints)
{
AdminApiAdminConsoleEndpointBuilder.MapGet(endpoints, "/tenants", GetTenants)
.BuildForVersions();
AdminApiEndpointBuilder.MapGet(endpoints, "/tenants", GetTenants)
.BuildForVersions(AdminApiVersions.AdminConsole);

AdminApiAdminConsoleEndpointBuilder.MapGet(endpoints, "/tenants/{tenantId}", GetTenantsByTenantId)
.BuildForVersions();
AdminApiEndpointBuilder.MapGet(endpoints, "/tenants/{tenantId}", GetTenantsByTenantId)
.BuildForVersions(AdminApiVersions.AdminConsole);
}

internal async Task<IResult> GetTenants(IGetTenantsQuery getTenantQuery)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@

using System.ComponentModel.DataAnnotations;
using EdFi.Ods.AdminApi.AdminConsole.Infrastructure.Services.UserProfiles.Commands;
using EdFi.Ods.AdminApi.Common.Features;
using EdFi.Ods.AdminApi.Common.Infrastructure;
using FluentValidation;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Routing;
Expand All @@ -15,9 +17,9 @@ public class AddUserProfile : IFeature
{
public void MapEndpoints(IEndpointRouteBuilder endpoints)
{
AdminApiAdminConsoleEndpointBuilder.MapPost(endpoints, "/userprofile", Execute)
AdminApiEndpointBuilder.MapPost(endpoints, "/userprofile", Execute)
.WithRouteOptions(b => b.WithResponseCode(201))
.BuildForVersions();
.BuildForVersions(AdminApiVersions.AdminConsole);
}

public async Task<IResult> Execute(Validator validator, IAddUserProfileCommand addUserProfileCommand, AddUserProfileRequest request)
Expand Down
Loading