Example #1
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;
        }
        /// <summary>
        /// Executes the collect for the one probe.
        /// </summary>
        /// <param name="collectRequest">The request collect.</param>
        /// <param name="probe">The probe.</param>
        /// <param name="collectExecution">the object that represents the execution of a collect</param>
        /// <returns></returns>
        private ProbeExecution ExecuteCollect(IDocumentSession session, SelectedProbe probe, CollectRequest collectRequest, VariablesEvaluated variables,
                                              IEnumerable<StateType> states, ExecutionLogBuilder executionLog)
        {
            ProbeResult probeResult = null;

            executionLog.StartCollectOf(probe.Capability.OvalObject);

            var initialTimeStamp = DateTime.Now;
            this.SetStartInstrumentationLog(executionLog, initialTimeStamp, probe.Capability.OvalObject);

            probeResult = probe.Execute(connectionContext, Target, variables, collectRequest.GetSystemCharacteristics(session), states);

            this.SetEndInstrumentationLog(executionLog, initialTimeStamp, probe.Capability.OvalObject);

            this.MergeExecutionLogs(executionLog, probe, probeResult);
            return this.CreateTheProbeExecution(probeResult, probe);
        }