示例#1
0
        public async Task UpdateAsync(EndpointRuleEntity endpointRuleEntity)
        {
            //var entity = await _appDbContext.EndpointRules.Include(endp => endp.Actions).FirstOrDefaultAsync(endp => endp.Id == endpointRuleEntity.Id);
            //_appDbContext.Update(endpointRuleEntity);
            //_appDbContext.Attach(endpointRuleEntity);
            _appDbContext.Entry(endpointRuleEntity).State = EntityState.Modified;
            await _appDbContext.SaveChangesAsync();

            EventDispatcher.DispatchUpdatedEvent("EndpointRule", endpointRuleEntity);
        }
示例#2
0
        public static EndpointRuleEntity Patch(this EndpointRuleEntity entity, EndpointRuleDto dto)
        {
            entity.Order       = dto.Order;
            entity.Name        = dto.Name;
            entity.Path        = dto.Path;
            entity.Enabled     = dto.Enabled;
            entity.Hostname    = dto.Hostname;
            entity.Scheme      = string.Join(";", dto.Scheme);
            entity.HttpMethods = string.Join(";", dto.HttpMethods);

            entity.Actions     = dto.Actions.Select(dtoAction => dtoAction.ToEntity()).ToList();
            entity.Permissions = dto.Permissions.Select(dtoPermission => dtoPermission.ToEntity()).ToList();

            return(entity);
        }
示例#3
0
        public async Task AddAsync(EndpointRuleEntity endpointRuleEntity)
        {
            if (String.IsNullOrWhiteSpace(endpointRuleEntity.Name))
            {
                endpointRuleEntity.Name = await GenerateRuleName();
            }

            if (endpointRuleEntity.Order == 0)
            {
                endpointRuleEntity.Order = _appDbContext.EndpointRules.Max(r => r.Order) + 10;
            }

            await _appDbContext.EndpointRules.AddAsync(endpointRuleEntity);

            await _appDbContext.SaveChangesAsync();

            EventDispatcher.DispatchCreatedEvent("EndpointRule", endpointRuleEntity);
        }
示例#4
0
        public static MiddlerRule ToMiddlerRule(this EndpointRuleEntity entity)
        {
            if (entity == null)
            {
                return(null);
            }

            var mRule = new MiddlerRule();

            mRule.Name        = entity.Name;
            mRule.Hostname    = entity.Hostname;
            mRule.Path        = entity.Path;
            mRule.Scheme      = MappingHelper.Split(entity.Scheme);
            mRule.HttpMethods = MappingHelper.Split(entity.HttpMethods);
            mRule.Actions     = entity.Actions.OrderBy(p => p.Order).Select(ToMiddlerAction).ToList();
            mRule.Permissions = entity.Permissions.OrderBy(p => p.Order).Select(ToMiddlerPermissionRule).ToList();

            return(mRule);
        }
示例#5
0
        public static EndpointRuleDto ToEndpointRuleDto(this EndpointRuleEntity entity, InternalHelper internalHelper)
        {
            if (entity == null)
            {
                return(null);
            }

            var dto = new EndpointRuleDto();

            dto.Id          = entity.Id;
            dto.Name        = entity.Name;
            dto.Enabled     = entity.Enabled;
            dto.Hostname    = entity.Hostname;
            dto.Path        = entity.Path;
            dto.Order       = entity.Order;
            dto.Scheme      = MappingHelper.Split(entity.Scheme);
            dto.HttpMethods = MappingHelper.Split(entity.HttpMethods);
            dto.Actions     = entity.Actions.OrderBy(a => a.Order).Select(a => a.ToEndpointRuleDto(internalHelper)).ToList();
            dto.Permissions = entity.Permissions.OrderBy(a => a.Order).Select(ToDto).ToList();
            return(dto);
        }