Exemple #1
0
 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
     });
 }