public async Task <ApplicationUser> SignInUserAsync(UpdateApplicationUserRequest userSingInRequestModel) { var applicationUserDb = _mapper.Map <ApplicationUserDb>(userSingInRequestModel); var userCheck = await _userManager.FindByNameAsync(applicationUserDb?.UserName); if (userCheck is null) { return(null); } var passwordCheck = await _userManager.CheckPasswordAsync(userCheck, userSingInRequestModel.UserPassword); if (!passwordCheck) { throw new Exception($"Incorrect password or login"); } var result = _mapper.Map <ApplicationUser>(userCheck); result.ApplicationUserPassword = userSingInRequestModel.UserPassword; result.ApplicationUserRole = (await _userManager.GetRolesAsync(userCheck)).First(); return(result); }
public async Task <string> ChangePassword( UpdateApplicationUserRequest userChangePassApplicationUserRequest) { var applicationUserToCreateMapped = _mapper.Map <ApplicationUserDb>(userChangePassApplicationUserRequest); try { var user = await _userManager.FindByIdAsync(applicationUserToCreateMapped.Id); var identityResult = await _userManager.ChangePasswordAsync(user, userChangePassApplicationUserRequest.UserPassword, userChangePassApplicationUserRequest.NewPassword); if (identityResult.Succeeded) { return(userChangePassApplicationUserRequest.NewPassword); } return(null); } catch (Exception ex) { throw ex; } }
public async Task <ApplicationUser> CreateApplicationUserAsync(UpdateApplicationUserRequest userSignUpRequestModel) { var applicationUserToCreateMapped = _mapper.Map <ApplicationUserDb>(userSignUpRequestModel); try { var identityResultOfCreatingUser = await _userManager.CreateAsync(applicationUserToCreateMapped, userSignUpRequestModel.UserPassword); if (identityResultOfCreatingUser.Succeeded) { var identityResultOfAddingRoleToCreatedUser = await _userManager.AddToRoleAsync(applicationUserToCreateMapped, userSignUpRequestModel.UserRole); if (identityResultOfAddingRoleToCreatedUser.Succeeded) { var appUserDb = await _userManager.FindByNameAsync(userSignUpRequestModel.UserName); var role = (await _userManager.GetRolesAsync(appUserDb)).First(); var result = _mapper.Map <ApplicationUser>(appUserDb); result.ApplicationUserPassword = userSignUpRequestModel.UserPassword; result.ApplicationUserRole = role; return(result); } } return(null); } catch (Exception ex) { throw ex; } }