public override int GetHashCode()
 {
     unchecked {
         var hashCode = Level.GetHashCode();
         hashCode = (hashCode * 397) ^ StartTime.GetHashCode();
         hashCode = (hashCode * 397) ^ Duration.GetHashCode();
         hashCode = (hashCode * 397) ^ IsProgress.GetHashCode();
         hashCode = (hashCode * 397) ^ RemainToComplete.GetHashCode();
         return(hashCode);
     }
 }
 public bool Equals(ItemProgress other)
 {
     if (ReferenceEquals(null, other))
     {
         return(false);
     }
     if (ReferenceEquals(this, other))
     {
         return(true);
     }
     return(Level == other.Level && StartTime == other.StartTime && Duration == other.Duration &&
            IsProgress == other.IsProgress && RemainToComplete.Equals(other.RemainToComplete));
 }