bool IsMatch(UIHint uiHint, UIHintDefinition definition)
        {
            if (definition.Parameters.Count != uiHint.Parameters.Count)
            {
                return(false);
            }

            for (var i = 0; i < definition.Parameters.Count; i++)
            {
                var parameter           = uiHint.Parameters[i];
                var parameterDefinition = definition.Parameters[i];

                if (parameterDefinition.Type == UIHintParameterType.Any)
                {
                    continue;
                }

                if (parameterDefinition.Type != parameter.Type)
                {
                    return(false);
                }
            }

            return(true);
        }
Beispiel #2
0
        public bool IsMatch(UIHint uiHint, UIHintDefinition definition)
        {
            var minParameters = definition.Parameters.Where(p => !p.Optional).Count();
            var maxParameters = definition.Parameters.Count();

            if (uiHint.Parameters.Count < minParameters)
            {
                return(false);
            }

            if (uiHint.Parameters.Count > maxParameters)
            {
                return(false);
            }

            for (var i = 0; i < uiHint.Parameters.Count; i++)
            {
                var parameter           = uiHint.Parameters[i];
                var parameterDefinition = definition.Parameters[i];

                if (parameterDefinition.Type == UIHintParameterType.Any)
                {
                    continue;
                }

                if (parameterDefinition.Type != parameter.Type)
                {
                    return(false);
                }
            }

            return(true);
        }
        public void AllowsOptionalParameters(int parameterCount, bool expectedResult)
        {
            var definition = new UIHintDefinition("lorem", new List <UIHintParameterDefinition> {
                new UIHintParameterDefinition("ipsum", UIHintParameterType.Any, false),
                new UIHintParameterDefinition("dolor", UIHintParameterType.Any, true),
            });

            var parameters = new List <UIHintParameterValue>();

            for (var i = 0; i < parameterCount; i++)
            {
                parameters.Add(new UIHintParameterValue(1));
            }

            Assert.Equal(expectedResult, new UIHintControlMatchEvaluator().IsMatch(new UIHint("lorem", parameters), definition));
        }
 public UIHintControlMapping(UIHintDefinition uiHintDefinition, string controlId)
 {
     UIHintDefinition = uiHintDefinition;
     ControlId        = controlId;
 }