コード例 #1
0
        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;
        }
コード例 #2
0
 /// <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;
 }
コード例 #3
0
        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");
        }
コード例 #4
0
 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);
 }
コード例 #5
0
 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();
 }
コード例 #6
0
        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");
        }
コード例 #7
0
        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");
        }
コード例 #8
0
        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);
        }
コード例 #9
0
ファイル: TestType.cs プロジェクト: yonglehou/modSIC
        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));
        }
コード例 #10
0
        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");
        }
コード例 #11
0
ファイル: Process.cs プロジェクト: ZeLye/uEmuera
        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);
        }
コード例 #12
0
 public ExpressionMediator(Process proc, VariableEvaluator vev, EmueraConsole console)
 {
     VEvaluator = vev;
     Process    = proc;
     Console    = console;
 }
コード例 #13
0
 public override void UpdateVariables(Dictionary <string, OverlayVariableBaseModel> variableDictionary)
 {
     ImageLocation = Path.Combine(OverlaySettings.Instance.Location.Directory.FullName,
                                  VariableEvaluator.ReplaceVariables(originalImageLocation, variableDictionary));
 }
コード例 #14
0
 public override void UpdateVariables(Dictionary <string, OverlayVariableBaseModel> variableDictionary)
 {
     Text      = VariableEvaluator.ReplaceVariables(originalText, variableDictionary);
     TextColor = GetColorBrush(VariableEvaluator.ReplaceVariables(originalColor, variableDictionary));
 }