/// <summary>
        /// Returns true if EmploymentDetails instances are equal
        /// </summary>
        /// <param name="other">Instance of EmploymentDetails to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(EmploymentDetails other)
        {
            if (other is null)
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     EmploymentStatus == other.EmploymentStatus ||
                     EmploymentStatus != null &&
                     EmploymentStatus.Equals(other.EmploymentStatus)
                     ) &&
                 (
                     EmployeeType == other.EmployeeType ||
                     EmployeeType != null &&
                     EmployeeType.Equals(other.EmployeeType)
                 ) &&
                 (
                     HireDetails == other.HireDetails ||
                     HireDetails != null &&
                     HireDetails.Equals(other.HireDetails)
                 ) &&
                 (
                     DateJoinedNHS == other.DateJoinedNHS ||
                     DateJoinedNHS != null &&
                     DateJoinedNHS.Equals(other.DateJoinedNHS)
                 ) &&
                 (
                     AlAccrualPlan == other.AlAccrualPlan ||
                     AlAccrualPlan != null &&
                     AlAccrualPlan.Equals(other.AlAccrualPlan)
                 ) &&
                 (
                     PrevEmployer == other.PrevEmployer ||
                     PrevEmployer != null &&
                     PrevEmployer.Equals(other.PrevEmployer)
                 ) &&
                 (
                     Agencies == other.Agencies ||
                     Agencies != null &&
                     Agencies.Equals(other.Agencies)
                 ));
        }
 /// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         var hashCode = 41;
         // Suitable nullity checks etc, of course :)
         if (EmploymentStatus != null)
         {
             hashCode = hashCode * 59 + EmploymentStatus.GetHashCode();
         }
         if (EmployeeType != null)
         {
             hashCode = hashCode * 59 + EmployeeType.GetHashCode();
         }
         if (HireDetails != null)
         {
             hashCode = hashCode * 59 + HireDetails.GetHashCode();
         }
         if (DateJoinedNHS != null)
         {
             hashCode = hashCode * 59 + DateJoinedNHS.GetHashCode();
         }
         if (AlAccrualPlan != null)
         {
             hashCode = hashCode * 59 + AlAccrualPlan.GetHashCode();
         }
         if (PrevEmployer != null)
         {
             hashCode = hashCode * 59 + PrevEmployer.GetHashCode();
         }
         if (Agencies != null)
         {
             hashCode = hashCode * 59 + Agencies.GetHashCode();
         }
         return(hashCode);
     }
 }