public bool Equals(DestinyProgressionStepDefinition input)
        {
            if (input == null)
            {
                return(false);
            }

            return
                ((
                     StepName == input.StepName ||
                     (StepName != null && StepName.Equals(input.StepName))
                     ) &&
                 (
                     DisplayEffectType == input.DisplayEffectType ||
                     (DisplayEffectType != null && DisplayEffectType.Equals(input.DisplayEffectType))
                 ) &&
                 (
                     ProgressTotal == input.ProgressTotal ||
                     (ProgressTotal.Equals(input.ProgressTotal))
                 ) &&
                 (
                     RewardItems == input.RewardItems ||
                     (RewardItems != null && RewardItems.SequenceEqual(input.RewardItems))
                 ) &&
                 (
                     Icon == input.Icon ||
                     (Icon != null && Icon.Equals(input.Icon))
                 ));
        }
        public override bool Equals(object obj)
        {
            if (obj == null || !(obj is PathTravellingSalesmanStep))
            {
                return(false);
            }
            PathTravellingSalesmanStep rhs = obj as PathTravellingSalesmanStep;

            bool result = StepName.Equals(rhs.StepName) &&
                          Edges.Count == rhs.Edges.Count;

//				&& Edges.Equals(rhs.Edges);
            return(result);
        }