コード例 #1
0
        public async Task <User> CreateNewUser(string sub, string role, string email)
        {
            var userRole = await _roles.FindByRole(role) ??
                           throw new NotFoundException(nameof(UserRole), $"role = {role}");

            var exists = await Exists(sub);

            if (exists)
            {
                throw new Exception("User already exists");
            }

            var u = new User
            {
                Sub   = sub,
                Email = email,
                AllowNotifications = true,
                Role     = userRole,
                IsActive = true
            };

            _ctx.Users.Add(u);
            await _ctx.SaveChangesAsync();

            return(u);
        }
コード例 #2
0
        public async Task <DomainUser> PromoteUser(PromoteUserCommand cmd)
        {
            var user = await _users.FindById(cmd.Id);

            if (user?.Role?.RoleName != Roles.User)
            {
                throw new EntityNotFoundException(nameof(user), $"(id == {cmd.Id} && role == user)");
            }

            var modRole = await _roles.FindByRole(Roles.Moderator);

            user.Role = modRole;
            var promoted = await _users.UpdateUser(user);

            return(_mapper.Map <DomainUser>(promoted));
        }