public async Task Register([FromBody] UserRegisterInputDto input) { var result = new IdentityResult(); var user = new ApplicationUser { UserName = input.UserName, Email = input.EmailAddress, Age = input.Age }; if (!string.IsNullOrEmpty(input.VehicleNumber)) { user = new ApplicationUser { UserName = input.UserName, Email = input.EmailAddress, Age = input.Age, VehicleNumber = input.VehicleNumber }; result = await _userManager.CreateAsync(user, input.Password); if (result.Succeeded) { await _userManager.AddToRoleAsync(user, StaticRoleNames.Driver); await _userManager.AddClaimAsync(user, new System.Security.Claims.Claim("role", StaticRoleNames.Driver)); } } else { result = await _userManager.CreateAsync(user, input.Password); if (result.Succeeded) { await _userManager.AddToRoleAsync(user, StaticRoleNames.Client); await _userManager.AddClaimAsync(user, new System.Security.Claims.Claim("role", StaticRoleNames.Client)); } } await _userManager.AddClaimAsync(user, new System.Security.Claims.Claim("userName", user.UserName)); await _userManager.AddClaimAsync(user, new System.Security.Claims.Claim("email", user.Email)); }
public async Task Register([FromBody] UserRegisterInputDto input) { var result = new IdentityResult(); var user = new ApplicationUser { UserName = input.UserName, Email = input.EmailAddress, NationalId = input.NationalId }; if (!string.IsNullOrEmpty(user.NationalId)) { if (input.NationalId.Length != 10) { throw new Exception("NationalId should be a legal 10 digit value"); } user.IsActive = true; result = await _userManager.CreateAsync(user, input.Password); await _userManager.AddToRoleAsync(user, StaticRoleNames.LocalUser); await _userManager.AddClaimAsync(user, new System.Security.Claims.Claim("role", StaticRoleNames.LocalUser)); } else { user.IsActive = false; result = await _userManager.CreateAsync(user, input.Password); await _userManager.AddToRoleAsync(user, StaticRoleNames.ForeignUser); await _userManager.AddClaimAsync(user, new System.Security.Claims.Claim("role", StaticRoleNames.ForeignUser)); } await _userManager.AddClaimAsync(user, new System.Security.Claims.Claim("userName", user.UserName)); await _userManager.AddClaimAsync(user, new System.Security.Claims.Claim("email", user.Email)); }