public bool Extract(Rule rule) { if (!JsRulesHandled.Contains(rule.Property)) { return(false); } if (!AutoValues.TryGetValue(Name, out var value)) { value = new AutoValue { Name = Name, }; AutoValues.Add(Name, value); } switch (rule.Property) { case "ZIndex": value.ZIndex = rule.InvariantScript; break; default: throw new Exception($"Rule Property {rule.Property} not defined for AutoValueExtractor.Extract"); } rule.InvariantScript = "AutoValue"; return(true); }
public void Inject(Rule rule, string controlPath) { if (!JsRulesHandled.Contains(rule.Property)) { return; } var name = string.Join(Environment.NewLine, Path.GetRelativePath(RootCodePath, Path.GetDirectoryName(controlPath)).Split(new[] { Path.DirectorySeparatorChar })); if (!AutoValues.TryGetValue(name, out var value)) { throw new KeyNotFoundException($"Unable to find auto value for rule {rule.Property} at {controlPath}"); } switch (rule.Property) { case "ZIndex": rule.InvariantScript = value.ZIndex; break; default: throw new Exception($"Rule Property {rule.Property} not defined for AutoValueExtractor.Inject"); } }