Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }