public async Task SubscriptionEndDateUtc_ShouldBe_Null_After_Free_Registration() { //Arrange var edition = new SubscribableEdition { DisplayName = "Free Edition" }; await UsingDbContextAsync(async context => { context.SubscribableEditions.Add(edition); await context.SaveChangesAsync(); }); //Act var registerResult = await _tenantRegistrationAppService.RegisterTenant(new RegisterTenantInput { EditionId = edition.Id, AdminEmailAddress = "*****@*****.**", AdminPassword = "******", Name = "Volosoft", SubscriptionStartType = SubscriptionStartType.Free, TenancyName = "Volosoft" }); //Assert await UsingDbContextAsync(async context => { var tenant = await context.Tenants.FirstOrDefaultAsync(t => t.Id == registerResult.TenantId); tenant.ShouldNotBe(null); tenant.SubscriptionEndDateUtc.HasValue.ShouldBe(false); }); }
public virtual async Task <ActionResult> Register(RegisterTenantInput model) { try { if (UseCaptchaOnRegistration()) { model.CaptchaResponse = HttpContext.Request.Form[RecaptchaValidator.RecaptchaResponseKey]; } var result = await _tenantRegistrationAppService.RegisterTenant(model); CurrentUnitOfWork.SetTenantId(result.TenantId); var user = await _userManager.FindByNameAsync(AbpUserBase.AdminUserName); //Directly login if possible if (result.IsTenantActive && result.IsActive && !result.IsEmailConfirmationRequired && !_webUrlService.SupportsTenancyNameInUrl) { var loginResult = await GetLoginResultAsync(user.UserName, model.AdminPassword, model.TenancyName); if (loginResult.Result == AbpLoginResultType.Success) { await _signInManager.SignOutAsync(); await _signInManager.SignInAsync(loginResult.Identity, false); SetTenantIdCookie(result.TenantId); return(Redirect(Url.Action("Index", "Home", new { area = "AppAreaName" }))); } Logger.Warn("New registered user could not be login. This should not be normally. login result: " + loginResult.Result); } //Show result page var resultModel = ObjectMapper.Map <TenantRegisterResultViewModel>(result); resultModel.TenantLoginAddress = _webUrlService.SupportsTenancyNameInUrl ? _webUrlService.GetSiteRootAddress(model.TenancyName).EnsureEndsWith('/') + "Account/Login" : ""; return(View("RegisterResult", resultModel)); } catch (UserFriendlyException ex) { ViewBag.UseCaptcha = UseCaptchaOnRegistration(); ViewBag.ErrorMessage = ex.Message; var viewModel = new TenantRegisterViewModel { PasswordComplexitySetting = await _passwordComplexitySettingStore.GetSettingsAsync(), EditionId = model.EditionId, SubscriptionStartType = model.SubscriptionStartType, EditionPaymentType = EditionPaymentType.NewRegistration, Gateway = model.Gateway, PaymentId = model.PaymentId }; if (model.EditionId.HasValue) { viewModel.Edition = await _tenantRegistrationAppService.GetEdition(model.EditionId.Value); viewModel.EditionId = model.EditionId.Value; } return(View("Register", viewModel)); } }