public async Task <UserManagerResponseModel> AddUserRoleAsync(AddUserToRoleRequestModel addUserToRoleRequestModel) { if (string.IsNullOrEmpty(addUserToRoleRequestModel.Rolename) && string.IsNullOrEmpty(addUserToRoleRequestModel.Username) || string.IsNullOrWhiteSpace(addUserToRoleRequestModel.Rolename) && string.IsNullOrWhiteSpace(addUserToRoleRequestModel.Username)) { throw new EShopperException("Please provide required information!"); } EShopperUser getUserInformation = await _eShopperUserManager.FindByNameAsync(addUserToRoleRequestModel.Username); if (getUserInformation == null) { throw new EShopperException($"User : {addUserToRoleRequestModel.Username} not found!"); } bool isRoleExist = await _roleManager.RoleExistsAsync(addUserToRoleRequestModel.Rolename); if (!isRoleExist) { throw new EShopperException($"Role : {addUserToRoleRequestModel.Rolename} not exist!"); } IdentityResult addToRoleResult = await _eShopperUserManager.AddToRoleAsync(getUserInformation, addUserToRoleRequestModel.Rolename); if (addToRoleResult.Succeeded) { return(new UserManagerResponseModel { Message = $"User added to Role : {addUserToRoleRequestModel.Rolename}" }); } throw new EShopperException(); }
public async Task <AuthenticationResponseModel> RegisterAsync(RegisterRequestModel registerRequestModel) { if (registerRequestModel == null) { throw new EShopperException("Please provide required information!"); } EShopperUser isEmailExist = await _eShopperUserManager.FindByEmailAsync(registerRequestModel.Email); if (isEmailExist != null) { throw new EShopperException("Email address already exist!"); } EShopperUser eShopperIdentity = new EShopperUser { Email = registerRequestModel.Email, UserName = registerRequestModel.Username }; // Begin Transaction... using (var transaction = _unitOfWork.EShopperDbContext.Database.BeginTransaction()) { try { IdentityResult registerEShopperUserResult = await _eShopperUserManager.CreateAsync(eShopperIdentity, registerRequestModel.Password); if (registerEShopperUserResult.Succeeded) { UserDetails usersDetail = new UserDetails { User = eShopperIdentity, Fullname = registerRequestModel.Fullname, RegisterDate = DateTime.UtcNow }; IdentityResult addToRoleResult = await _eShopperUserManager.AddToRoleAsync(eShopperIdentity, "USER"); if (!addToRoleResult.Succeeded) { throw new EShopperException(); } _unitOfWork.UsersDetail.Add(usersDetail); _unitOfWork.Complete(); transaction.Commit(); JwtManagerResponse jwtResponse = await _jwtManager.GenerateToken(eShopperIdentity); EShopperUser getUserDetails = _eShopperUserManager.GetUserWithUserDetailsByEmail(registerRequestModel.Email); EShopperUserDto mappedUserDetails = _mapper.Map <EShopperUserDto>(getUserDetails); _logger.LogInformation($"{getUserDetails.Email} - Registered with EShopperAuthentication"); return(new AuthenticationResponseModel { AccessToken = jwtResponse.AccessToken, RefreshToken = jwtResponse.RefreshToken, EShopperUser = mappedUserDetails }); } } catch (Exception ex) { _logger.LogError(ex.Message); throw new EShopperException(); } finally { transaction.Dispose(); } } throw new EShopperException(); }