public async Task<IActionResult> RegisterCompany([FromBody] RegisterCompanyModel model) { if (await userManager.FindByEmailAsync(model.Email) != null) { return BadRequest("Company already exists!"); } var identityResult = await userManager.CreateAsync(new ApplicationUser { UserName = model.Email, Email = model.Email }, model.Password); if (!identityResult.Succeeded) { return BadRequest("Something went wrong!"); } var user = await userManager.FindByEmailAsync(model.Email); await companiesProvider.AddCompany(new Company { Name = model.CompanyName, ApplicationUserId = user.Id }); var token = await userManager.GenerateEmailConfirmationTokenAsync(user); await emailProvider.SendConfirmEmail(user, token); var appToken = await jwtFactory.GenerateEncodedToken(user); var newRefreshToken = jwtFactory.GenerateRefreshToken(); user.RefreshToken = newRefreshToken; await userManager.UpdateAsync(user); return new ObjectResult(new { token = appToken, refreshToken = newRefreshToken }); }