protected internal virtual IEscalationEventDefinition CreateEscalationEventDefinition(string escalationCode)
        {
            IEscalation escalation = FindEscalationForCode(escalationCode);
            IEscalationEventDefinition escalationEventDefinition = CreateInstance <IEscalationEventDefinition>(typeof(IEscalationEventDefinition));

            escalationEventDefinition.Escalation = escalation;
            return(escalationEventDefinition);
        }
        protected internal virtual IEscalation FindEscalationForCode(string escalationCode)
        {
            IEnumerable <IEscalation> escalations = modelInstance.GetModelElementsByType <IEscalation>(typeof(IEscalation));

            foreach (IEscalation e in escalations)
            {
                if (escalationCode.Equals(e.EscalationCode))
                {
                    // return already existing escalation
                    return(e);
                }
            }

            IDefinitions definitions = modelInstance.Definitions;
            IEscalation  escalation  = CreateChild <IEscalation>(definitions, typeof(IEscalation));

            escalation.EscalationCode = escalationCode;
            return(escalation);
        }