41 lines
1.4 KiB
C#
41 lines
1.4 KiB
C#
using ApplicationLayer.InfrastructureServicesInterfaces;
|
|
using ApplicationLayer.Services.Applicants.NeededServices;
|
|
using ApplicationLayer.Services.AuthServices.NeededServices;
|
|
using ApplicationLayer.Services.AuthServices.Requests;
|
|
using AutoMapper;
|
|
using Domains.ApplicantDomain;
|
|
using Domains.Users;
|
|
|
|
namespace ApplicationLayer.Services.AuthServices.RegisterService;
|
|
|
|
/// <inheritdoc cref="IRegisterService"/>
|
|
public class RegisterService(
|
|
IUsersRepository users,
|
|
IApplicantsRepository applicants,
|
|
IUnitOfWork unitOfWork,
|
|
IMapper mapper) : IRegisterService
|
|
{
|
|
async Task IRegisterService.RegisterApplicant(RegisterApplicantRequest request, CancellationToken cancellationToken)
|
|
{
|
|
var user = mapper.Map<User>(request.RegisterRequest.AuthData);
|
|
user.Role = Role.Applicant;
|
|
|
|
var applicant = mapper.Map<Applicant>(request);
|
|
applicant.UserId = user.Id;
|
|
|
|
await users.AddAsync(user, cancellationToken);
|
|
await applicants.AddAsync(applicant, cancellationToken);
|
|
|
|
await unitOfWork.SaveAsync(cancellationToken);
|
|
}
|
|
|
|
async Task IRegisterService.RegisterAuthority(RegisterRequest request, CancellationToken cancellationToken)
|
|
{
|
|
var user = mapper.Map<User>(request.AuthData);
|
|
user.Role = Role.ApprovingAuthority;
|
|
|
|
await users.AddAsync(user, cancellationToken);
|
|
|
|
await unitOfWork.SaveAsync(cancellationToken);
|
|
}
|
|
} |