public IUndoableEdit ChangeRiskLevel(int newRiskLevel) { CompoundEdit ce = new CompoundEdit(); //check if is posible to assign the new risk level if (riskLevelObject.GetParentRiskLevels() != null) { foreach (IRiskLevelObject parentRiskLevel in riskLevelObject.GetParentRiskLevels()) { if (newRiskLevel < parentRiskLevel.RiskLevel) { throw new Exception("The risk level cannot change, contains a greater risk level as a parent"); } } } //change the risk level of each children if (riskLevelObject.GetChildrenRiskLevels() != null) { foreach (IRiskLevelObject o in riskLevelObject.GetChildrenRiskLevels()) { RiskLevelManager rlm = new RiskLevelManager(o); ce.AddEdit(rlm.ChangeRiskLevel(newRiskLevel)); } } ce.AddEdit(EditFactory.instance.CreateChangeRiskLevelEdit(riskLevelObject, newRiskLevel)); riskLevelObject.RiskLevel = newRiskLevel; return(ce); }
public IUndoableEdit ApplyRiskLevelToChildren() { if (riskLevelObject == null) { return(null); } CompoundEdit ce = new CompoundEdit(); if (riskLevelObject.GetChildrenRiskLevels() == null) { return(ce); } foreach (IRiskLevelObject o in riskLevelObject.GetChildrenRiskLevels()) { if (o.RiskLevel < riskLevelObject.RiskLevel) { RiskLevelManager rlc = new RiskLevelManager(o); ce.AddEdit(rlc.ChangeRiskLevel(riskLevelObject.RiskLevel)); } } return(ce); }
public IUndoableEdit ApplyRiskLevel(IRiskLevelObject riskObject, int newRiskLevel) { RiskLevelManager rlm = new RiskLevelManager(riskObject); return(rlm.ChangeRiskLevel(newRiskLevel)); }