private bool IsTargetValueSetsEqual(SinglePropertyValueBasedCalendarItemStateDefinition <TValue> first, SinglePropertyValueBasedCalendarItemStateDefinition <TValue> second) { if (first.TargetValueSet.Count == second.TargetValueSet.Count) { foreach (TValue item in first.TargetValueSet) { if (!second.TargetValueSet.Contains(item)) { return(false); } } return(true); } return(false); }
public bool Equals(SinglePropertyValueBasedCalendarItemStateDefinition <TValue> other) { return(other != null && (object.ReferenceEquals(this, other) || (this.TargetProperty.Equals(other.TargetProperty) && this.IsTargetValueSetsEqual(this, other)))); }
public SinglePropertyValueBasedCalendarItemStateDefinition(StorePropertyDefinition targetProperty, TValue targetValue, IEqualityComparer <TValue> equalityComparer) : this(targetProperty, SinglePropertyValueBasedCalendarItemStateDefinition <TValue> .GetValueSetFromSingleValue(targetValue, equalityComparer)) { }