private bool ArePropertyPathParametersEqual( StoryboardTargetProperties targetPropsA, StoryboardTargetProperties targetPropsB) { var parametersA = targetPropsA.TargetProperty.PathParameters; var parametersB = targetPropsB.TargetProperty.PathParameters; return(parametersA.SequenceEqual(parametersB)); }
public int GetHashCode(Timeline timelines) { var targetProps = new StoryboardTargetProperties(timelines); int targetHash = targetProps.Target?.GetHashCode() ?? 0; int targetNameHash = targetProps.TargetName?.GetHashCode() ?? 0; int targetPropertyHash = targetProps.TargetProperty?.Path?.GetHashCode() ?? 0; return((targetProps.TargetName == null ? targetHash : targetNameHash) ^ targetPropertyHash); }
public bool Equals(Timeline a, Timeline b) { var sbA = new StoryboardTargetProperties(a); var sbB = new StoryboardTargetProperties(b); return(AreTargetsAndTargetNamesEqual(sbA, sbB) && ArePropertyPathsEqual(sbA, sbB) && ArePropertyPathParametersEqual(sbA, sbB)); }
private bool AreTargetsAndTargetNamesEqual( StoryboardTargetProperties targetPropsA, StoryboardTargetProperties targetPropsB) { if (targetPropsA.TargetName == null) { if (targetPropsA.Target == null) { return(targetPropsB.Target == null && targetPropsB.TargetName == null); } else { return(targetPropsA.Target == targetPropsB.Target); } } else { return(targetPropsA.TargetName == targetPropsB.TargetName); } }
private bool ArePropertyPathsEqual(StoryboardTargetProperties targetPropsA, StoryboardTargetProperties targetPropsB) { return(targetPropsA.TargetProperty.Path == targetPropsB.TargetProperty.Path); }