* Managed API to handle User maintenance

* Managed Users view in application
This commit is contained in:
2025-02-20 06:39:06 +01:00
parent cd5990039d
commit 9b8d621f42
19 changed files with 530 additions and 195 deletions

View File

@@ -0,0 +1,36 @@
using OrdersManagementDataModel.Dtos;
namespace OrdersManagement.Services;
public class FunctionService(HttpClient httpClient)
{
public async Task<IEnumerable<FunctionDto>?> GetFunctionsAsync()
{
return await httpClient.GetFromJsonAsync<IEnumerable<FunctionDto>>("api/Functions");
}
public async Task<FunctionDto?> GetFunctionAsync(Guid functionId)
{
return await httpClient.GetFromJsonAsync<FunctionDto>($"api/Functions/by-id/?id={functionId}");
}
public async Task<FunctionDto?> GetFunctionByNameAsync(string functionName)
{
return await httpClient.GetFromJsonAsync<FunctionDto>($"api/Functions/by-name/?name={functionName}");
}
public async Task AddFunctionAsync(FunctionDto function)
{
await httpClient.PostAsJsonAsync("api/Functions", function);
}
public async Task UpdateFunctionAsync(FunctionDto function)
{
await httpClient.PutAsJsonAsync("api/Functions", function);
}
public async Task DeleteFunctionAsync(Guid functionId)
{
await httpClient.DeleteAsync($"api/Functions/?id={functionId}");
}
}

View File

@@ -0,0 +1,41 @@
using OrdersManagementDataModel.Dtos;
namespace OrdersManagement.Services;
public class RoleService(HttpClient httpClient)
{
public async Task<IEnumerable<RoleDto>?> GetRolesAsync()
{
return await httpClient.GetFromJsonAsync<IEnumerable<RoleDto>>("api/Roles");
}
public async Task<RoleDto?> GetRoleAsync(Guid roleId)
{
return await httpClient.GetFromJsonAsync<RoleDto>($"api/Roles/by-id/?id={roleId}");
}
public async Task<RoleDto?> GetRoleByNameAsync(string roleName)
{
return await httpClient.GetFromJsonAsync<RoleDto>($"api/Roles/by-name/?name={roleName}");
}
public async Task AddRoleAsync(RoleDto role)
{
await httpClient.PostAsJsonAsync("api/Roles", role);
}
public async Task UpdateRoleAsync(RoleDto role)
{
await httpClient.PutAsJsonAsync("api/Roles", role);
}
public async Task DeleteRoleAsync(Guid roleId)
{
await httpClient.DeleteAsync($"api/Roles/?id={roleId}");
}
// public async Task<IEnumerable<UserDto>?> GetUsersInRoleAsync(Guid roleId)
// {
// return await httpClient.GetFromJsonAsync<IEnumerable<UserDto>>($"api/Roles/{roleId}/Users");
// }
}

View File

@@ -0,0 +1,36 @@
using OrdersManagementDataModel.Dtos;
namespace OrdersManagement.Services;
public class UserService(HttpClient httpClient)
{
public async Task<IEnumerable<UserDto>?> GetUsersAsync()
{
return await httpClient.GetFromJsonAsync<IEnumerable<UserDto>>("api/Users");
}
public async Task<UserDto?> GetUserAsync(Guid userId)
{
return await httpClient.GetFromJsonAsync<UserDto>($"api/Users/by-id/?id={userId}");
}
public async Task<UserDto?> GetUserByUsernameAsync(string username)
{
return await httpClient.GetFromJsonAsync<UserDto>($"api/Users/by-username/?username={username}");
}
public async Task AddUserAsync(UserDto user)
{
await httpClient.PostAsJsonAsync("api/Users", user);
}
public async Task UpdateUserAsync(UserDto user)
{
await httpClient.PutAsJsonAsync("api/Users", user);
}
public async Task DeleteUserAsync(Guid userId)
{
await httpClient.DeleteAsync($"api/Users/?id={userId}");
}
}