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; /// public class RegisterService( IUsersRepository users, IApplicantsRepository applicants, IUnitOfWork unitOfWork, IMapper mapper) : IRegisterService { async Task IRegisterService.RegisterApplicant(RegisterApplicantRequest request, CancellationToken cancellationToken) { var user = mapper.Map(request.RegisterRequest.AuthData); user.Role = Role.Applicant; var applicant = mapper.Map(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(request.AuthData); user.Role = Role.ApprovingAuthority; await users.AddAsync(user, cancellationToken); await unitOfWork.SaveAsync(cancellationToken); } }