public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl = returnUrl ?? Url.Content("~/"); if (ModelState.IsValid) { var tenant = new IdentityTenant() { Name = Input.TeamName, Domain = Input.Domain, }; var result = await _tenantManager.CreateAsync(tenant); if (result.Succeeded) { var user = new MultiTenantUser { UserName = Input.Email, Email = Input.Email, TenantId = tenant.Id, }; result = await _userManager.CreateAsync(user, Input.Password); if (result.Succeeded) { _logger.LogInformation("User created a new account with password."); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); var callbackUrl = Url.Page( "/Account/ConfirmEmail", pageHandler: null, values: new { userId = user.Id, code = code }, protocol: Request.Scheme); await _emailSender.SendEmailAsync(Input.Email, "Confirm your email", $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>."); await _signInManager.SignInAsync(user, isPersistent : false); return(LocalRedirect(returnUrl)); } } else { await _tenantManager.DeleteAsync(tenant); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } // If we got this far, something failed, redisplay form return(Page()); }
public async Task <Operation> DeleteAsync(string id) { var operation = await FindByIdAsync(id); if (!operation.Succeeded) { return(operation); } var deleted = await _tenantManager.DeleteAsync(operation.Data); return(deleted.ToOperation()); }
public async Task Should_Delete_UserAccount_When_Tenant_Deleted() { var tenant = new Tenant("test-tenant-name", "test-tenant-name"); await _tenantManager.CreateAsync(tenant); var user = new User { TenantId = tenant.Id, UserName = "******", Name = "TestTenantUser", Surname = "TestTenantUser", EmailAddress = "*****@*****.**", IsEmailConfirmed = true, Password = "******" //123qwe }; using (var uow = _unitOfWorkManager.Begin()) { await _userManager.CreateAsync(user); await _unitOfWorkManager.Current.SaveChangesAsync(); await uow.CompleteAsync(); } UsingDbContext( context => { var userAccount = context.UserAccounts.First(u => u.UserName == "TestTenantUser"); userAccount.IsDeleted.ShouldBe(false); }); using (var uow = _unitOfWorkManager.Begin()) { await _tenantManager.DeleteAsync(tenant); await _unitOfWorkManager.Current.SaveChangesAsync(); await uow.CompleteAsync(); } UsingDbContext( context => { var userAccount = context.UserAccounts.First(u => u.UserName == "TestTenantUser"); userAccount.IsDeleted.ShouldBe(true); }); }
public async Task DeleteTenant(EntityDto input) { var tenant = await TenantManager.GetByIdAsync(input.Id); await TenantManager.DeleteAsync(tenant); }
/// <summary> /// 删除租户 /// </summary> /// <param name="id">租户ID</param> public async Task DeleteTenant(int id) { var tenant = await TenantManager.GetByIdAsync(id); CheckErrors(await TenantManager.DeleteAsync(tenant)); }