public override void UpdateVariables(Dictionary <string, OverlayVariableBaseModel> variableDictionary) { LinearGradientBrush lgb = new LinearGradientBrush(); foreach (GradientColor gsPair in originalGradientStops) { GradientStop gs = new GradientStop(); Color gradColor = (Color)ColorConverter.ConvertFromString(VariableEvaluator.ReplaceVariables(gsPair.color, variableDictionary)); if (gsPair.transparent.HasValue && gsPair.transparent.Value) { gradColor.A = 0; } gs.Color = gradColor; if (gsPair.offset.HasValue) { gs.Offset = gsPair.offset.Value; } lgb.GradientStops.Add(gs); } lgb.StartPoint = GradientStart; lgb.EndPoint = GradientEnd; GradientBrush = lgb; }
/// <summary> /// Initializes a new instance of the <see cref="EvaluationVariable"/> class. /// </summary> public EvaluationVariable( VariableEvaluator eval, VariableSelectResolver selectResolver = null, VariablePathsResolver pathsResolver = null) { _eval = eval ?? throw new ArgumentNullException(nameof(eval)); _selectResolver = selectResolver; _pathsResolver = pathsResolver; }
public void Should_be_possible_evaluate_a_variable_given_variableID() { oval_definitions definitions = new OvalDocumentLoader().GetFakeOvalDefinitions("oval_definitions.oval.org.mitre.oval.def.5921.xml"); Assert.IsNotNull(definitions, "the definitios is not created"); VariableEvaluator variableEvaluator = new VariableEvaluator(definitions.variables, null, null); IEnumerable <string> values = variableEvaluator.EvaluateVariable("oval:org.mitre.oval:var:932"); Assert.IsNotNull(values, "the valueToMatch of variable is null"); Assert.IsTrue(values.Count() == 1, "the quantity of values is not expected"); Assert.IsTrue(values.ElementAt(0) == "1", "the valueToMatch is not expected"); }
public LocalVariableVariablesComponent( VariableType localVariable, VariableComponentType variable, IEnumerable <VariableType> variablesOfOvalDefinitions, oval_system_characteristics systemCharacteristics, Modulo.Collect.OVAL.Variables.oval_variables externalVariables = null) { this.variablesOfDefinitions = variablesOfOvalDefinitions; this.variable = variable; this.systemCharacteristics = systemCharacteristics; this.localVariable = localVariable; this.variableEvaluator = new VariableEvaluator(variablesOfDefinitions, systemCharacteristics, externalVariables); }
public static void Reset() { Process = null; ConstantData = null; GameBaseData = null; EMediator = null; VEvaluator = null; VariableData = null; Console = null; MainWindow = null; LabelDictionary = null; IdentifierDictionary = null; tempDic.Clear(); }
public void Should_be_possible_to_evaluate_a_constant_variables_of_an_entitytype() { oval_definitions definitions = new OvalDocumentLoader().GetFakeOvalDefinitions("oval_definitions.oval.org.mitre.oval.def.5921.xml"); Assert.IsNotNull(definitions, "the definitios is not created"); EntityObjectStringType entityType = new EntityObjectStringType(); entityType.var_ref = "oval:org.mitre.oval:var:932"; VariableEvaluator variableEvaluator = new VariableEvaluator(definitions.variables, null, null); IEnumerable <string> values = variableEvaluator.Evaluate(entityType); Assert.IsNotNull(values, "the valueToMatch of variable is null"); Assert.IsTrue(values.Count() == 1, "the quantity of values is not expected"); Assert.IsTrue(values.ElementAt(0) == "1", "the valueToMatch is not expected"); }
public void Should_not_evaluate_a_variable_if_the_entityType_not_have_a_variable_reference() { oval_definitions definitions = new OvalDocumentLoader().GetFakeOvalDefinitions("definitionsSimple.xml"); Assert.IsNotNull(definitions, "the definitios is not created"); registry_object registryObject = (registry_object)definitions.objects[1]; Dictionary <String, EntityObjectStringType> registryEntities = this.GetRegistryEntitiesFromName(registryObject); EntitySimpleBaseType keyName = registryEntities[registry_object_ItemsChoices.key.ToString()]; VariableEvaluator variableEvaluator = new VariableEvaluator(definitions.variables, null, null); IEnumerable <string> values = variableEvaluator.Evaluate(keyName); Assert.IsNotNull(values, "the valueToMatch of variable is null"); Assert.IsTrue(values.Count() == 1, "the quantity of values is not expected"); Assert.IsTrue(values.ElementAt(0) == @"Software\Microsoft\Windows NT\CurrentVersion", "the valueToMatch is not expected"); }
private IEnumerable <VariableValue> GetVariableValuesFrom(CollectRequest collectRequest, IDocumentSession session) { List <VariableValue> variableValues = new List <VariableValue>(); VariableType[] variables = collectRequest.GetOvalVariables(session).ToArray(); VariableEvaluator variableEvaluator = new VariableEvaluator(variables, collectRequest.GetSystemCharacteristics(session), collectRequest.GetExternalVariables()); foreach (VariableType variable in collectRequest.GetOvalVariables(session)) { IEnumerable <string> valuesOfVariable = variableEvaluator.EvaluateVariable(variable.id); IEnumerable <ObjectType> objectsByVariable = collectRequest.GetObjectTypesByVariableId(session, variable.id); variableValues.AddRange(this.CreateVariableValuesFrom(objectsByVariable, variable.id, valuesOfVariable)); IEnumerable <StateType> statesByVariable = collectRequest.GetStateTypeByVariableId(session, variable.id); variableValues.AddRange(this.CreateVariableValuesFrom(statesByVariable, variable.id, valuesOfVariable)); } return(variableValues); }
private OVAL.Definitions.variableEvaluator.VariableValue CreateVariableValuesFromStateEntity( string stateID, string stateEntityVariable, oval_results ovalResults) { if (string.IsNullOrEmpty(stateEntityVariable)) { return(null); } var variableEvaluator = new VariableEvaluator( ovalResults.oval_definitions.variables.ToArray(), ovalResults.results[0].oval_system_characteristics, ovalResults.EvaluatedExternalVariables); var variableValues = variableEvaluator.EvaluateVariable(stateEntityVariable); return(new VariableValue(stateID, stateEntityVariable, variableValues)); }
public void Should_be_evaluate_a_local_Variables_of_an_entityType() { OvalDocumentLoader ovalDocument = new OvalDocumentLoader(); oval_definitions definitions = ovalDocument.GetFakeOvalDefinitions("definitionsWithLocalVariable.xml"); Assert.IsNotNull(definitions, "the definitios is not created"); oval_system_characteristics systemCharacteristics = ovalDocument.GetFakeOvalSystemCharacteristics("system_characteristics_with_local_variable.xml"); Assert.IsNotNull(definitions, "the system Characteristics is not was created"); EntityObjectStringType entityType = new EntityObjectStringType(); entityType.var_ref = "oval:org.mitre.oval:var:4000"; VariableEvaluator variableEvaluator = new VariableEvaluator(definitions.variables, systemCharacteristics, null); IEnumerable <string> values = variableEvaluator.Evaluate(entityType); Assert.IsNotNull(values, "the valueToMatch of variable is null"); Assert.IsTrue(values.Count() == 1, "the quantity of values is not expected"); Assert.IsTrue(values.ElementAt(0) == @"Software\Microsoft\Windows NT\CurrentVersion", "the value is not expected"); }
public bool Initialize() { LexicalAnalyzer.UseMacro = false; state = new ProcessState(console); originalState = state; initialiing = true; try { ParserMediator.Initialize(console); if (ParserMediator.HasWarning) { ParserMediator.FlushWarningList(); if (MessageBox.Show("コンフィグファイルに異常があります\nEmueraを終了しますか", "コンフィグエラー", MessageBoxButtons.YesNo) == DialogResult.Yes) { console.PrintSystemLine("コンフィグファイルに異常があり、終了が選択されたため処理を終了しました"); return(false); } } Content.AppContents.LoadContents(); if (Config.UseKeyMacro && !Program.AnalysisMode) { if (File.Exists(Program.ExeDir + "macro.txt")) { if (Config.DisplayReport) { console.PrintSystemLine("macro.txt読み込み中・・・"); } KeyMacro.LoadMacroFile(Program.ExeDir + "macro.txt"); } } if (Config.UseReplaceFile && !Program.AnalysisMode) { if (File.Exists(Program.CsvDir + "_Replace.csv")) { if (Config.DisplayReport) { console.PrintSystemLine("_Replace.csv読み込み中・・・"); } ConfigData.Instance.LoadReplaceFile(Program.CsvDir + "_Replace.csv"); if (ParserMediator.HasWarning) { ParserMediator.FlushWarningList(); if (MessageBox.Show("_Replace.csvに異常があります\nEmueraを終了しますか", "_Replace.csvエラー", MessageBoxButtons.YesNo) == DialogResult.Yes) { console.PrintSystemLine("_Replace.csvに異常があり、終了が選択されたため処理を終了しました"); return(false); } } } } Config.SetReplace(ConfigData.Instance); //ここでBARを設定すれば、いいことに気づいた予感 console.setStBar(Config.DrawLineString); if (Config.UseRenameFile) { if (File.Exists(Program.CsvDir + "_Rename.csv")) { if (Config.DisplayReport || Program.AnalysisMode) { console.PrintSystemLine("_Rename.csv読み込み中・・・"); } ParserMediator.LoadEraExRenameFile(Program.CsvDir + "_Rename.csv"); } else { console.PrintError("csv\\_Rename.csvが見つかりません"); } } if (!Config.DisplayReport) { console.PrintSingleLine(Config.LoadLabel); console.RefreshStrings(true); } gamebase = new GameBase(); if (!gamebase.LoadGameBaseCsv(Program.CsvDir + "GAMEBASE.CSV")) { console.PrintSystemLine("GAMEBASE.CSVの読み込み中に問題が発生したため処理を終了しました"); return(false); } console.SetWindowTitle(gamebase.ScriptWindowTitle); GlobalStatic.GameBaseData = gamebase; ConstantData constant = new ConstantData(gamebase); constant.LoadData(Program.CsvDir, console, Config.DisplayReport); GlobalStatic.ConstantData = constant; TrainName = constant.GetCsvNameList(VariableCode.TRAINNAME); vEvaluator = new VariableEvaluator(gamebase, constant); GlobalStatic.VEvaluator = vEvaluator; idDic = new IdentifierDictionary(vEvaluator.VariableData); GlobalStatic.IdentifierDictionary = idDic; StrForm.Initialize(); VariableParser.Initialize(); exm = new ExpressionMediator(this, vEvaluator, console); GlobalStatic.EMediator = exm; labelDic = new LabelDictionary(); GlobalStatic.LabelDictionary = labelDic; HeaderFileLoader hLoader = new HeaderFileLoader(console, idDic, this); LexicalAnalyzer.UseMacro = false; if (!hLoader.LoadHeaderFiles(Program.ErbDir, Config.DisplayReport)) { console.PrintSystemLine("ERHの読み込み中にエラーが発生したため処理を終了しました"); return(false); } LexicalAnalyzer.UseMacro = idDic.UseMacro(); ErbLoader loader = new ErbLoader(console, exm, this); if (Program.AnalysisMode) { noError = loader.loadErbs(Program.AnalysisFiles, labelDic); } else { noError = loader.LoadErbFiles(Program.ErbDir, Config.DisplayReport, labelDic); } initSystemProcess(); initialiing = false; } catch (Exception e) { handleException(e, null, true); console.PrintSystemLine("初期化中に致命的なエラーが発生したため処理を終了しました"); return(false); } if (labelDic == null) { return(false); } state.Begin(BeginType.TITLE); GC.Collect(); return(true); }
public ExpressionMediator(Process proc, VariableEvaluator vev, EmueraConsole console) { VEvaluator = vev; Process = proc; Console = console; }
public override void UpdateVariables(Dictionary <string, OverlayVariableBaseModel> variableDictionary) { ImageLocation = Path.Combine(OverlaySettings.Instance.Location.Directory.FullName, VariableEvaluator.ReplaceVariables(originalImageLocation, variableDictionary)); }
public override void UpdateVariables(Dictionary <string, OverlayVariableBaseModel> variableDictionary) { Text = VariableEvaluator.ReplaceVariables(originalText, variableDictionary); TextColor = GetColorBrush(VariableEvaluator.ReplaceVariables(originalColor, variableDictionary)); }