/// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         int hashCode = 41;
         if (Copyrights != null)
         {
             hashCode = hashCode * 59 + Copyrights.GetHashCode();
         }
         if (JobId != null)
         {
             hashCode = hashCode * 59 + JobId.GetHashCode();
         }
         if (Status != null)
         {
             hashCode = hashCode * 59 + Status.GetHashCode();
         }
         if (WaitingInQueue != null)
         {
             hashCode = hashCode * 59 + WaitingInQueue.GetHashCode();
         }
         if (ProcessingTime != null)
         {
             hashCode = hashCode * 59 + ProcessingTime.GetHashCode();
         }
         if (Solution != null)
         {
             hashCode = hashCode * 59 + Solution.GetHashCode();
         }
         return(hashCode);
     }
 }
        /// <summary>
        /// Returns true if Response instances are equal
        /// </summary>
        /// <param name="input">Instance of Response to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(Response input)
        {
            if (input == null)
            {
                return(false);
            }

            return
                ((
                     Copyrights == input.Copyrights ||
                     Copyrights != null &&
                     Copyrights.SequenceEqual(input.Copyrights)
                     ) &&
                 (
                     JobId == input.JobId ||
                     (JobId != null &&
                      JobId.Equals(input.JobId))
                 ) &&
                 (
                     Status == input.Status ||
                     (Status != null &&
                      Status.Equals(input.Status))
                 ) &&
                 (
                     WaitingInQueue == input.WaitingInQueue ||
                     (WaitingInQueue != null &&
                      WaitingInQueue.Equals(input.WaitingInQueue))
                 ) &&
                 (
                     ProcessingTime == input.ProcessingTime ||
                     (ProcessingTime != null &&
                      ProcessingTime.Equals(input.ProcessingTime))
                 ) &&
                 (
                     Solution == input.Solution ||
                     (Solution != null &&
                      Solution.Equals(input.Solution))
                 ));
        }