public override bool Equals(object obj)
        {
            if (obj == null || !(obj is InteractionDefinition))
            {
                return(false);
            }
            InteractionDefinition otherDef = (InteractionDefinition)obj;

            return(base.Equals(obj) &&
                   CommonFunctions.AreListsEqual(correctResponsesPattern, otherDef.correctResponsesPattern) &&
                   CommonFunctions.AreListsEqual(this.Choices, otherDef.Choices) &&
                   CommonFunctions.AreListsEqual(this.Scale, otherDef.Scale) &&
                   CommonFunctions.AreListsEqual(this.Source, otherDef.Source) &&
                   CommonFunctions.AreListsEqual(this.Target, otherDef.Target) &&
                   CommonFunctions.AreListsEqual(this.Steps, otherDef.Steps));
        }
 protected bool NotNullAndNotEqual <T>(List <T> list1, List <T> list2)
 {
     return(list1 != null && list1.Count > 0 && !CommonFunctions.AreListsEqual(list1, list2));
 }