예제 #1
0
            public async Task <CommandResult <FirewallRuleDto> > Handle(Command message, CancellationToken cancellationToken)
            {
                var firewallRule = await _repository.GetById(message.FirewallRule.Id);

                if (firewallRule == null)
                {
                    return(new CommandResult <FirewallRuleDto>()
                    {
                        IsSucceeded = false
                    });
                }

                firewallRule.Expression = message.FirewallRule.Expression;
                firewallRule.IsActive   = message.FirewallRule.IsActive;
                firewallRule.Title      = message.FirewallRule.Title;

                var expr = _parser.GetRules(firewallRule.Expression);

                if (expr.Item2 && expr.Item1?.Any() == true)
                {
                    foreach (var item in expr.Item1)
                    {
                        if (item.Action == null)
                        {
                            continue;
                        }

                        item.Action.Phase = firewallRule.RuleFor == Infrastructure.Entity.RuleFor.Request ? 1 : 3;
                    }
                }
                else
                {
                    return(new CommandResult <FirewallRuleDto>()
                    {
                        IsSucceeded = false,
                        Message = "Can't parse given rule!",
                        Result = _mapper.Map <FirewallRuleDto>(firewallRule)
                    });
                }

                firewallRule.SerializedExpression = JsonConvert.SerializeObject(expr);

                await _repository.Update(firewallRule);

                return(new CommandResult <FirewallRuleDto>()
                {
                    IsSucceeded = true,
                    Result = _mapper.Map <FirewallRuleDto>(firewallRule)
                });
            }
예제 #2
0
파일: Delete.cs 프로젝트: asalih/GuardianUI
            public async Task <CommandResult <FirewallRuleDto> > Handle(Command message, CancellationToken cancellationToken)
            {
                var wafRule = await _repository.GetById(message.Id);

                if (wafRule == null)
                {
                    return(new CommandResult <FirewallRuleDto>()
                    {
                        IsSucceeded = false
                    });
                }

                return(new CommandResult <FirewallRuleDto>()
                {
                    Result = _mapper.Map <FirewallRuleDto>(wafRule),
                    IsSucceeded = await _repository.Remove(wafRule) > 0
                });
            }