public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = (Ukprn != null ? Ukprn.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (Name != null ? Name.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (int)ProviderType;
         hashCode = (hashCode * 397) ^ ContractedForNonLeviedEmployers.GetHashCode();
         hashCode = (hashCode * 397) ^ ParentCompanyGuarantee.GetHashCode();
         hashCode = (hashCode * 397) ^ NewOrganisationWithoutFinancialTrackRecord.GetHashCode();
         hashCode = (hashCode * 397) ^ StartDate.GetHashCode();
         hashCode = (hashCode * 397) ^ EndDate.GetHashCode();
         hashCode = (hashCode * 397) ^ ApplicationDeterminedDate.GetHashCode();
         hashCode = (hashCode * 397) ^ CurrentlyNotStartingNewApprentices.GetHashCode();
         return(hashCode);
     }
 }
 public bool Equals(RoatpProviderDocument other)
 {
     if (ReferenceEquals(null, other))
     {
         return(false);
     }
     if (ReferenceEquals(this, other))
     {
         return(true);
     }
     return(string.Equals(Ukprn, other.Ukprn) &&
            ProviderType == other.ProviderType &&
            ContractedForNonLeviedEmployers == other.ContractedForNonLeviedEmployers &&
            ParentCompanyGuarantee == other.ParentCompanyGuarantee &&
            NewOrganisationWithoutFinancialTrackRecord == other.NewOrganisationWithoutFinancialTrackRecord &&
            StartDate.Equals(other.StartDate) &&
            EndDate.Equals(other.EndDate) &&
            ApplicationDeterminedDate.Equals(other.ApplicationDeterminedDate) &&
            CurrentlyNotStartingNewApprentices == other.CurrentlyNotStartingNewApprentices);
 }