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); }
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; }