You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

UserService.cs 2.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using Diligent.WebAPI.Business.Services.Interfaces;
  2. using Diligent.WebAPI.Business.Settings;
  3. using Diligent.WebAPI.Data;
  4. using Microsoft.AspNetCore.Identity;
  5. using Microsoft.Extensions.Logging;
  6. namespace Diligent.WebAPI.Business.Services
  7. {
  8. public class UserService : IUserService
  9. {
  10. private readonly AuthorizationSettings _authSettings;
  11. private readonly FrontEndSettings _frontEndSettings;
  12. private readonly UserManager<User> _userManager;
  13. private readonly IMapper _mapper;
  14. private readonly DatabaseContext _databaseContext;
  15. private readonly IEmailer _emailer;
  16. private readonly ILogger<UserService> _logger;
  17. private const string GoogleApiTokenInfoUrl = "https://www.googleapis.com/oauth2/v3/tokeninfo?id_token={0}";
  18. private string[] SupportedClientsIds = { "" };
  19. public UserService(IOptions<AuthorizationSettings> authSettings, IOptions<FrontEndSettings> frontEndSettings, UserManager<User> userManager, IMapper mapper, DatabaseContext databaseContext, IEmailer emailer, ILogger<UserService> logger)
  20. {
  21. _authSettings = authSettings.Value;
  22. _frontEndSettings = frontEndSettings.Value;
  23. _userManager = userManager;
  24. _mapper = mapper;
  25. _databaseContext = databaseContext;
  26. _emailer = emailer;
  27. _logger = logger;
  28. }
  29. public async Task<IEnumerable<User?>> GetAll() =>
  30. await _userManager.Users.ToListAsync();
  31. public async Task<User?> GetById(int id) =>
  32. await _userManager.FindByIdAsync(id.ToString());
  33. public async Task CreateUser(CreateUserRequestDto model)
  34. {
  35. var user = _mapper.Map<User>(model);
  36. await _userManager.CreateAsync(user, model.Password);
  37. }
  38. public async Task RemoveUser(User user)
  39. {
  40. await _userManager.DeleteAsync(user);
  41. await _databaseContext.SaveChangesAsync();
  42. }
  43. public async Task ToggleEnable(User user)
  44. {
  45. user.IsEnabled = !user.IsEnabled;
  46. await _databaseContext.SaveChangesAsync();
  47. }
  48. }
  49. }