public FlightDataEntitiesRT.Decisions.Decision[] GetFaultDecisions() { var decisions = new FlightDataEntitiesRT.Decisions.Decision[]{ //new FlightDataEntitiesRT.Decisions.Decision(){ // LastTime = 1, Conditions = new FlightDataEntitiesRT.Decisions.SubCondition[]{ // new FlightDataEntitiesRT.Decisions.CompareSubCondition(){ ParameterID = "T6R", // ParameterValue = 630 , Operator = FlightDataEntitiesRT.Decisions.CompareOperator.GreaterThan}, // new FlightDataEntitiesRT.Decisions.CompareSubCondition(){ ParameterID = "KG14", // ParameterValue = 1 , Operator = FlightDataEntitiesRT.Decisions.CompareOperator.Equal}, // }}, new FlightDataEntitiesRT.Decisions.Decision(){ LastTime = 10, Conditions = new FlightDataEntitiesRT.Decisions.SubCondition[]{ new FlightDataEntitiesRT.Decisions.CompareSubCondition(){ ParameterID = "Vi", ParameterValue = 100 , Operator = FlightDataEntitiesRT.Decisions.CompareOperator.GreaterThan}, new FlightDataEntitiesRT.Decisions.CompareSubCondition(){ ParameterID = "NHL", ParameterValue = 99 , Operator = FlightDataEntitiesRT.Decisions.CompareOperator.GreaterThan}, }} }; foreach (var decision in decisions) { Queue<SubCondition> conds = new Queue<SubCondition>(); foreach (var sub in decision.Conditions) { conds.Enqueue(sub); } while (conds.Count > 0) { var s = conds.Dequeue(); s.RootDecision = decision; if (s.SubConditions != null) { foreach (var sub in s.SubConditions) { conds.Enqueue(sub); } } } } return decisions; }
/// <summary> /// 判据封装类 /// </summary> /// <param name="one">如果这个是空则说明是空判据</param> /// <param name="decision"></param> public DecisionWrap(DecisionRecord one, Decision decision) { // TODO: Complete member initialization this.one = one; this.decision = decision; }
/// <summary> /// 通过判据找到记录 /// </summary> /// <param name="one"></param> /// <param name="decisionRecords"></param> /// <returns></returns> private DecisionRecord FindDecisionRecord(Decision one, DecisionRecord[] decisionRecords) { var finded = decisionRecords.FirstOrDefault(new Func<DecisionRecord, bool>( delegate(DecisionRecord rec) { if (rec.DecisionID == one.DecisionID) return true; return false; })); return finded; }