public void Post([FromBody] AccessControlPolicyInsertCommand command)
        {
            bool IsResourceRequired = false;

            if (command.Target.Contains("\"Resource."))
            {
                IsResourceRequired = true;
            }

            var accessControlRules = new List <AccessControlRule>();

            foreach (var rule in command.Rules)
            {
                var condition         = _conditionalExpressionService.Parse(rule.Condition);
                var accessControlRule = new AccessControlRule()
                {
                    Id        = rule.RuleID,
                    Effect    = rule.Effect,
                    Condition = condition
                };
                accessControlRules.Add(accessControlRule);

                if (!IsResourceRequired)
                {
                    IsResourceRequired = rule.Condition.Contains("\"Resource.");
                }
            }
            var target             = _conditionalExpressionService.Parse(command.Target);
            var accessControlModel = new AccessControlPolicy()
            {
                Id             = command.PolicyID,
                CollectionName = command.CollectionName,
                Action         = command.Action,
                Description    = command.Description,
                RuleCombining  = command.RuleCombining,
                Target         = target,
                Rules          = accessControlRules,
                IsAttributeResourceRequired = IsResourceRequired
            };

            _accessControlPolicyRepository.Add(accessControlModel);
        }
        public void Create([FromBody] PrivacyPolicyInsertCommand command)
        {
            bool IsResourceRequired = false;

            if (command.Target.Contains("\"Resource."))
            {
                IsResourceRequired = true;
            }

            var fieldRules = new List <FieldRule>();
            var target     = _conditionalExpressionService.Parse(command.Target);

            foreach (var rule in command.Rules)
            {
                var condition = _conditionalExpressionService.Parse(rule.Condition);
                var fieldRule = new FieldRule()
                {
                    Identifer    = rule.RuleID,
                    FieldEffects = rule.FieldEffects,
                    Condition    = condition
                };
                fieldRules.Add(fieldRule);

                if (!IsResourceRequired)
                {
                    IsResourceRequired = rule.Condition.Contains("\"Resource.");
                }
            }

            var policy = new PrivacyPolicy()
            {
                CollectionName = command.CollectionName,
                Description    = command.Description,
                Id             = command.PolicyID,
                Rules          = fieldRules,
                IsAttributeResourceRequired = IsResourceRequired,
                Target = target
            };

            _privacyPolicyRepository.Add(policy);
        }