示例#1
0
        public async Task Save(RoleDto dto)
        {
            var role = await repository.GetByName(dto.Name);
            if (role == null)
                role = new Role(dto.Name, dto.Description, dto.Enabled);
            else
            {
                role.ChangeDescription(dto.Description);
                role.ChangeName(dto.Name);


                if (dto.Enabled)
                    role.Enable();
                else
                    role.Disable();
            }


            //como este é um exemplo, associar aleatoriamente permissões
            var authorizations = await authorizationRep.List();
            var rnd = new Random();
            foreach (var p in authorizations)
            {
                if (rnd.Next(0, 2) == 1)
                {
                    role.AddAccess(p);
                }
            }

            await this.repository.SaveAsync(role);

            /* return */
            this.mapper.Map<RoleDto>(role);
        }