Files
FA_WEB/OrdersManagementDataModel/Services/UserRoleService.cs
Piotr Kus 9b8d621f42 * Managed API to handle User maintenance
* Managed Users view in application
2025-02-20 06:39:06 +01:00

86 lines
2.7 KiB
C#

using AutoMapper;
using Microsoft.EntityFrameworkCore;
using OrdersManagementDataModel.Dtos;
using OrdersManagementDataModel.Entities;
namespace OrdersManagementDataModel.Services;
public class UserRoleService(OrdersManagementDbContext context, IMapper mapper) : IUserRoleService
{
public async Task<IEnumerable<UserRoleDto>> GetAll()
{
IList<UserRoleDto> userRoles = await context.UserRoles.Select(x => mapper.Map<UserRoleDto>(x)).ToListAsync();
return userRoles;
}
public async Task<UserRoleDto?> GetById(Guid id)
{
UserRoleDto? userRole = await context.UserRoles.Where(x => x.RowPointer == id)
.Select(x => mapper.Map<UserRoleDto>(x)).FirstOrDefaultAsync();
return userRole;
}
public Task<int> Add(UserRoleDto userRoleDto)
{
UserRole userRole = mapper.Map<UserRole>(userRoleDto);
context.UserRoles.Add(userRole);
return context.SaveChangesAsync();
}
public async Task<int> Delete(Guid id)
{
UserRole? userRole = await context.UserRoles.Where(x => x.RowPointer == id).FirstOrDefaultAsync() ?? null;
if (userRole == null) return 0;
context.UserRoles.Remove(userRole);
return await context.SaveChangesAsync();
}
public async Task<int> Update(UserRoleDto userRoleDto)
{
UserRole userRole = mapper.Map<UserRole>(userRoleDto);
context.UserRoles.Update(userRole);
return await context.SaveChangesAsync();
}
public async Task<IEnumerable<UserRoleDto>> GetUserRolesByUserId(Guid userId)
{
IList<UserRoleDto> userRoles = await context.UserRoles
.Where(x => x.User.RowPointer == userId)
.Select(x => mapper.Map<UserRoleDto>(x))
.ToListAsync();
return userRoles;
}
public async Task<IEnumerable<UserRoleDto>> GetUserRolesByRoleId(Guid roleId)
{
IList<UserRoleDto> userRoles = await context.UserRoles
.Where(x => x.Role.RowPointer == roleId)
.Select(x => mapper.Map<UserRoleDto>(x))
.ToListAsync();
return userRoles;
}
public async Task<int> AddRoleToUser(Guid userId, Guid roleId)
{
User? user = await context.Users.FirstOrDefaultAsync(x => x.RowPointer == userId);
Role? role = await context.Roles.FirstOrDefaultAsync(x => x.RowPointer == roleId);
if (user == null || role == null) return 0;
UserRole userRole = new UserRole
{
User = user,
Role = role,
RowPointer = Guid.NewGuid()
};
context.UserRoles.Add(userRole);
return await context.SaveChangesAsync();
}
}