private IUndoableEdit MergeEffects(IList <Combination> combinationsToMerge) { CompoundEdit ce = new CompoundEdit(); foreach (Combination combi in combinationsToMerge) { foreach (Effect effect in combi.Effects) { if (!combination.Effects.Contains(effect)) { ce.AddEdit(EditFactory.instance.CreateAddEffectEdit(combination, effect)); combination.AddEffect(effect); } } } foreach (Combination combi in combinationsToMerge) { foreach (Effect effect in combi.Effects) { if (!combi.Effects.Contains(effect)) { ce.AddEdit(EditFactory.instance.CreateAddEffectEdit(combi, effect)); combi.AddEffect(effect); } //update risk level RiskLevelManager rlm = new RiskLevelManager(effect); ce.AddEdit(rlm.ApplyRiskLevelToChildren()); //update state StateObjectManager som = new StateObjectManager(effect); ce.AddEdit(som.ApplyStateToChildren()); } } return(ce); }
public IUndoableEdit AddEquivalenceClass(EquivalenceClass equivalenceClass) { if (testCase == null) { throw new Exception("The test case cannot be null"); } CompoundEdit ce = new CompoundEdit(); ce.AddEdit(EditFactory.instance.CreateAddEquivalenceClassEdit(testCase, equivalenceClass)); testCase.AddEquivalenceClass(equivalenceClass); RiskLevelManager rlc = new RiskLevelManager(equivalenceClass); ce.AddEdit(rlc.ApplyRiskLevelToChildren()); StateObjectManager som = new StateObjectManager(equivalenceClass); ce.AddEdit(som.ApplyStateToChildren()); return(ce); }