예제 #1
0
파일: ProbeBase.cs 프로젝트: ywcsz/modSIC
        /// <summary>
        /// This method executes the process of  a setElement in the ObjectType.
        /// For the objectType that has a setElement the process is a some different. 
        /// Actually, the setElement uses the objectType already was  collected. 
        /// In this process the setElement process uses a systemCharacteristics for the get a reference for the objectType 
        /// collected and makes the references are used in the new CollectedObject of the process.
        /// </summary>
        /// <param name="ovalObject">The Oval Object.</param>
        /// <param name="collectInfo">The collect info.</param>
        /// <returns></returns>
        private CollectedObject ProcessSet(Definitions.ObjectType ovalObject, CollectInfo collectInfo)
        {
            CollectedObject collectedObject = null;
            try
            {
                var setElement = this.GetSetElement(ovalObject);
                var setEvaluator = new SetEvaluator(collectInfo.SystemCharacteristics, collectInfo.States, collectInfo.Variables);
                var resultOfSet = setEvaluator.Evaluate(setElement);
                var objectReferences = resultOfSet.Result;

                if (objectReferences.Count() > 0)
                {
                    collectedObject = new CollectedObject(ovalObject.id);
                    foreach (string reference in objectReferences)
                    {
                        var itemType = collectInfo.SystemCharacteristics.GetSystemDataByReferenceId(reference);
                        collectedObject.AddItemToSystemData(itemType);
                    }

                    collectedObject.SetEspecificObjectStatus(resultOfSet.ObjectFlag);
                }

                return collectedObject;
            }
            catch (Exception ex)
            {
                collectedObject = new CollectedObject(ovalObject.id);
                collectedObject.SetEspecificObjectStatus(FlagEnumeration.error);
                collectedObject.ObjectType.message = MessageType.FromErrorString(String.Format("An error occurred while set processing: '{0}'", ex.Message));
                return collectedObject;
            }
        }
예제 #2
0
파일: ProbeBase.cs 프로젝트: ywcsz/modSIC
 public ProbeResult CreateCollectedObjectForNotSupportedObjects(
     IEnumerable<Definitions.ObjectType> objectNotSupported)
 {
     ProbeResultBuilder probeResultBuilder = new ProbeResultBuilder();
     foreach (var objectType in objectNotSupported)
     {
         var collectedObject = new CollectedObject(objectType.id);
         collectedObject.SetEspecificObjectStatus(FlagEnumeration.notcollected);
         probeResultBuilder.AddCollectedObject(collectedObject);
     }
     return probeResultBuilder.ProbeResult;
 }