using AutoMapper; using Microsoft.AspNetCore.Identity; using BackendPIA.Services; using BackendPIA.Models; using BackendPIA.Forms; namespace BackendPIA.Logics{ public class CreateUserAccountLogic : BaseUserAccountLogic { private readonly UserAccountForm _form; private readonly IMapper _mapper; private readonly IUserAccountService _user_account_service; private readonly string _role; private IEnumerable? _errors; public IEnumerable? Errors { get => _errors; } public CreateUserAccountLogic(ITokenGenerator token_generator, UserManager manager, UserAccountForm form, IMapper mapper, IUserAccountService service, string role) : base(token_generator, manager) { _form = form; _mapper = mapper; _user_account_service = service; _role = role; } public async Task Call() { UserAccount user = _mapper.Map(_form); var result = await _user_account_service.CreateUserAccount(user, _form.Password, _role); if(result.Succeeded) { await SetAuthenticationToken(user); await SetUserRefreshToken(user); return true; } _errors = result.Errors; return false; } } }