選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

UserService.cs 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. }
  39. }