using System.Threading.Tasks; using WeOnlineApp.Authorization.Accounts.Dto; using WeOnlineApp.Authorization.Users; using Abp.Configuration; using IwbZero.Zero.Configuration; namespace WeOnlineApp.Authorization.Accounts { public class AccountAppService : IwbAppServiceBase, IAccountAppService { private readonly UserRegistrationManager _userRegistrationManager; public AccountAppService( UserRegistrationManager userRegistrationManager) { _userRegistrationManager = userRegistrationManager; } public async Task IsTenantAvailable(IsTenantAvailableInput input) { var tenant = await TenantManager.FindByTenancyNameAsync(input.TenancyName); if (tenant == null) { return new IsTenantAvailableOutput(TenantAvailabilityState.NotFound); } if (!tenant.IsActive) { return new IsTenantAvailableOutput(TenantAvailabilityState.InActive); } return new IsTenantAvailableOutput(TenantAvailabilityState.Available, tenant.Id); } public async Task Register(RegisterInput input) { var user = await _userRegistrationManager.RegisterAsync( input.Name, input.Surname, input.EmailAddress, input.UserName, input.Password, false ); var isEmailConfirmationRequiredForLogin = await SettingManager.GetSettingValueAsync(IwbZeroSettingNames.UserManagement.IsEmailConfirmationRequiredForLogin); return new RegisterOutput { CanLogin = user.IsActive && (user.IsEmailConfirmed || !isEmailConfirmationRequiredForLogin) }; } } }