48 lines
1.3 KiB
C#
48 lines
1.3 KiB
C#
using API.Authentication.Interfaces;
|
|
using API.DTO.Base;
|
|
using API.DTO.Login;
|
|
using DAL.Contexts;
|
|
using DAL.Models;
|
|
using DAL.Models.Audits;
|
|
|
|
namespace API.Services
|
|
{
|
|
public class UserService : ServiceBase<UserService, UserDTO, User, AuditUser, IUserAuthentication>
|
|
{
|
|
private readonly ulong _defaultUserPermission;
|
|
private readonly PermissionService _permissionService;
|
|
public UserService(ILogger<UserService> logger, SASGContext context, IUserAuthentication auth, PermissionService permissionService, ulong defaultUserPermission) : base(logger, context, auth)
|
|
{
|
|
_permissionService = permissionService;
|
|
_defaultUserPermission = defaultUserPermission;
|
|
}
|
|
|
|
public User add(UserRegisterDTO registerDTO, string hashedPassword, byte[] salt)
|
|
{
|
|
Permission? defaultPermission = _permissionService.getNoAuthentication(_defaultUserPermission);
|
|
|
|
if (defaultPermission == null)
|
|
throw new InvalidOperationException("defaultUserPermission doesn't exist.");
|
|
|
|
User model = new User
|
|
{
|
|
firstName = registerDTO.firstName,
|
|
lastName = registerDTO.lastName,
|
|
phoneNumber = registerDTO.phoneNumber,
|
|
|
|
password = hashedPassword,
|
|
salt = salt,
|
|
|
|
permissionId = defaultPermission.id,
|
|
|
|
updated = DateTime.Now
|
|
};
|
|
|
|
Context.Add(model);
|
|
Context.SaveChanges();
|
|
|
|
return model;
|
|
}
|
|
}
|
|
}
|