AccountAppService.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using System.Threading.Tasks;
  2. using WeApp.Authorization.Accounts.Dto;
  3. using WeApp.Authorization.Users;
  4. using Abp.Configuration;
  5. using IwbZero.Zero.Configuration;
  6. namespace WeApp.Authorization.Accounts
  7. {
  8. public class AccountAppService : IwbAppServiceBase, IAccountAppService
  9. {
  10. private readonly UserRegistrationManager _userRegistrationManager;
  11. public AccountAppService(
  12. UserRegistrationManager userRegistrationManager)
  13. {
  14. _userRegistrationManager = userRegistrationManager;
  15. }
  16. public async Task<IsTenantAvailableOutput> IsTenantAvailable(IsTenantAvailableInput input)
  17. {
  18. var tenant = await TenantManager.FindByTenancyNameAsync(input.TenancyName);
  19. if (tenant == null)
  20. {
  21. return new IsTenantAvailableOutput(TenantAvailabilityState.NotFound);
  22. }
  23. if (!tenant.IsActive)
  24. {
  25. return new IsTenantAvailableOutput(TenantAvailabilityState.InActive);
  26. }
  27. return new IsTenantAvailableOutput(TenantAvailabilityState.Available, tenant.Id);
  28. }
  29. public async Task<RegisterOutput> Register(RegisterInput input)
  30. {
  31. var user = await _userRegistrationManager.RegisterAsync(
  32. input.Name,
  33. input.Surname,
  34. input.EmailAddress,
  35. input.UserName,
  36. input.Password,
  37. false
  38. );
  39. var isEmailConfirmationRequiredForLogin = await SettingManager.GetSettingValueAsync<bool>(IwbZeroSettingNames.UserManagement.IsEmailConfirmationRequiredForLogin);
  40. return new RegisterOutput
  41. {
  42. CanLogin = user.IsActive && (user.IsEmailConfirmed || !isEmailConfirmationRequiredForLogin)
  43. };
  44. }
  45. }
  46. }