Beispiel #1
0
        public async Task Handle(IUserSession userIssuingCommand, AddAbilitiesToUser command)
        {
            User user = await _userReadRepo.GetById <User>(command.UserId);

            var abilities = new List <UserAbility>();

            foreach (Guid abilityId in command.Abilities)
            {
                UserAbility userAbility = await _abilityReadRepo.GetById(abilityId);

                abilities.Add(userAbility);
                user.AddAbility(userAbility);
            }

            await _userReadRepo.Update(user);

            NotifyObservers(new UserAbilitiesAdded(user.Id, abilities.Select(x => x.Id)));
        }
Beispiel #2
0
        public async Task Handle(IUserSession userIssuingCommand, CreateEmailLoginUser command)
        {
            var userCreated = new UserEmailLogin(Guid.NewGuid(), command.Name, command.Email, command.EncryptedPassword,
                                                 command.PhoneNumber);

            foreach (UserAbility ability in command.Abilities)
            {
                UserAbility userAbility = await _abilityReadRepo.GetById(ability.Id);

                userCreated.AddAbility(userAbility);
            }

            Role basicRole = await _roleReadRepo.First(x => x.Description == "Basic");

            userCreated.AddRole(basicRole);
            User userSaved = await _userRepo.Create(userCreated);

            NotifyObservers(new UserEmailCreated(userSaved.Id, command.Email, command.Name, command.PhoneNumber));
        }