* Maintain DataModel for User, Role, Function and UserRole
This commit is contained in:
86
OrdersManagementDataModel/Services/UserRoleService.cs
Normal file
86
OrdersManagementDataModel/Services/UserRoleService.cs
Normal file
@@ -0,0 +1,86 @@
|
||||
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>> GetUserRoles()
|
||||
{
|
||||
IList<UserRoleDto> userRoles = await context.UserRoles.Select(x => mapper.Map<UserRoleDto>(x)).ToListAsync();
|
||||
|
||||
return userRoles;
|
||||
}
|
||||
|
||||
public async Task<UserRoleDto?> GetUserRoleById(Guid id)
|
||||
{
|
||||
UserRoleDto? userRole = await context.UserRoles.Where(x => x.RowPointer == id)
|
||||
.Select(x => mapper.Map<UserRoleDto>(x)).FirstOrDefaultAsync();
|
||||
|
||||
return userRole;
|
||||
}
|
||||
|
||||
public Task<int> AddUserRole(UserRoleDto userRoleDto)
|
||||
{
|
||||
UserRole userRole = mapper.Map<UserRole>(userRoleDto);
|
||||
context.UserRoles.Add(userRole);
|
||||
return context.SaveChangesAsync();
|
||||
}
|
||||
|
||||
public async Task<int> DeleteUserRole(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> UpdateUserRole(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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user