private void ResolveAction(string action)
        {
            var rxThisAction      = new Regex($"-{(typeof(T)).Name}", RegexOptions.IgnoreCase);
            var rxAllSpreadAction = new Regex(@"-\*");

            var thisAction = rxThisAction.IsMatch(action) || rxAllSpreadAction.IsMatch(action);

            //По шаблону always true
            if (!thisAction)
            {
                throw new SyntaxErrorException($"список правил должен включать хотя-бы '*' если нет конкретного определения для этого класса ({(typeof(T)).Name})");
            }

            var ac = "";

            foreach (var a in action.Split(';'))
            {
                if (rxAllSpreadAction.IsMatch(a))
                {
                    ac = a.Split('-').First();
                }

                if (false == (rxThisAction.IsMatch(a)))
                {
                    continue;
                }

                ac = a.Split('-').First();
                break;
            }

            SchemaAction.Custom(ac);
        }
예제 #2
0
 public void CustomShouldHaveCorrectValue()
 {
     SchemaAction.Custom("a,b").ToString().ShouldEqual("a,b");
 }