public async Task <Role> Add(Role role)
        {
            role.Id = Guid.NewGuid();
            var roleEntity = role.ToEntity();

            roleEntity.SecurableItem =
                AuthorizationDbContext.SecurableItems.First(s => !s.IsDeleted && s.Name == role.SecurableItem);

            if (role.ChildRoles.Any())
            {
                var childRoles = await AuthorizationDbContext.Roles.Where(r => role.ChildRoles.Contains(r.RoleId))
                                 .ToListAsync();

                foreach (var childRole in childRoles)
                {
                    childRole.ParentRole = roleEntity;
                }
            }

            AuthorizationDbContext.Roles.Add(roleEntity);
            await AuthorizationDbContext.SaveChangesAsync();

            await EventService.RaiseEventAsync(new EntityAuditEvent <Role>(EventTypes.EntityCreatedEvent, role.Id.ToString(), roleEntity.ToModel()));

            return(roleEntity.ToModel());
        }
Exemple #2
0
        public async Task <Role> Add(Role model)
        {
            model.Id = Guid.NewGuid();
            var entity = model.ToEntity();

            entity.SecurableItem =
                _authorizationDbContext.SecurableItems.First(s => !s.IsDeleted && s.Name == model.SecurableItem);
            _authorizationDbContext.Roles.Add(entity);
            await _authorizationDbContext.SaveChangesAsync();

            return(entity.ToModel());
        }
Exemple #3
0
        public async Task Update(Role model)
        {
            var role = await _authorizationDbContext.Roles
                       .SingleOrDefaultAsync(r =>
                                             r.RoleId == model.Id &&
                                             !r.IsDeleted);

            if (role == null)
            {
                throw new NotFoundException <Role>($"Could not find {typeof(Role).Name} entity with ID {model.Id}");
            }

            model.ToEntity(role);
            _authorizationDbContext.Roles.Update(role);
            await _authorizationDbContext.SaveChangesAsync();
        }
        public async Task Update(Role role)
        {
            var roleEntity = await AuthorizationDbContext.Roles
                             .SingleOrDefaultAsync(r =>
                                                   r.RoleId == role.Id &&
                                                   !r.IsDeleted);

            if (roleEntity == null)
            {
                throw new NotFoundException <Role>($"Could not find {typeof(Role).Name} entity with ID {role.Id}");
            }

            role.ToEntity(roleEntity);
            AuthorizationDbContext.Roles.Update(roleEntity);
            await AuthorizationDbContext.SaveChangesAsync();

            await EventService.RaiseEventAsync(new EntityAuditEvent <Role>(EventTypes.EntityUpdatedEvent, role.Id.ToString(), roleEntity.ToModel()));
        }