Inheritance: System.IComparable, System.ICloneable, INotifyPropertyChanged
 ///<summary>
 /// Returns a value indicating whether this instance is equal to a specified object.
 ///</summary>
 ///<param name="toObject">An object to compare to this instance.</param>
 ///<returns>true if toObject is a <see cref="VJobCandidateBase"/> and has the same value as this instance; otherwise, false.</returns>
 public virtual bool Equals(VJobCandidateBase toObject)
 {
     if (toObject == null)
     {
         return(false);
     }
     return(Equals(this, toObject));
 }
		///<summary>
		/// Determines whether the specified <see cref="VJobCandidateBase"/> instances are considered equal.
		///</summary>
		///<param name="Object1">The first <see cref="VJobCandidateBase"/> to compare.</param>
		///<param name="Object2">The second <see cref="VJobCandidateBase"/> to compare. </param>
		///<returns>true if Object1 is the same instance as Object2 or if both are null references or if objA.Equals(objB) returns true; otherwise, false.</returns>
		public static bool Equals(VJobCandidateBase Object1, VJobCandidateBase Object2)
		{
			// both are null
			if (Object1 == null && Object2 == null)
				return true;

			// one or the other is null, but not both
			if (Object1 == null ^ Object2 == null)
				return false;

			bool equal = true;
			if (Object1.JobCandidateId != Object2.JobCandidateId)
				equal = false;
			if (Object1.EmployeeId != null && Object2.EmployeeId != null )
			{
				if (Object1.EmployeeId != Object2.EmployeeId)
					equal = false;
			}
			else if (Object1.EmployeeId == null ^ Object1.EmployeeId == null )
			{
				equal = false;
			}
			if (Object1.SafeNameNamePrefix != null && Object2.SafeNameNamePrefix != null )
			{
				if (Object1.SafeNameNamePrefix != Object2.SafeNameNamePrefix)
					equal = false;
			}
			else if (Object1.SafeNameNamePrefix == null ^ Object1.SafeNameNamePrefix == null )
			{
				equal = false;
			}
			if (Object1.SafeNameNameFirst != null && Object2.SafeNameNameFirst != null )
			{
				if (Object1.SafeNameNameFirst != Object2.SafeNameNameFirst)
					equal = false;
			}
			else if (Object1.SafeNameNameFirst == null ^ Object1.SafeNameNameFirst == null )
			{
				equal = false;
			}
			if (Object1.SafeNameNameMiddle != null && Object2.SafeNameNameMiddle != null )
			{
				if (Object1.SafeNameNameMiddle != Object2.SafeNameNameMiddle)
					equal = false;
			}
			else if (Object1.SafeNameNameMiddle == null ^ Object1.SafeNameNameMiddle == null )
			{
				equal = false;
			}
			if (Object1.SafeNameNameLast != null && Object2.SafeNameNameLast != null )
			{
				if (Object1.SafeNameNameLast != Object2.SafeNameNameLast)
					equal = false;
			}
			else if (Object1.SafeNameNameLast == null ^ Object1.SafeNameNameLast == null )
			{
				equal = false;
			}
			if (Object1.SafeNameNameSuffix != null && Object2.SafeNameNameSuffix != null )
			{
				if (Object1.SafeNameNameSuffix != Object2.SafeNameNameSuffix)
					equal = false;
			}
			else if (Object1.SafeNameNameSuffix == null ^ Object1.SafeNameNameSuffix == null )
			{
				equal = false;
			}
			if (Object1.Skills != null && Object2.Skills != null )
			{
				if (Object1.Skills != Object2.Skills)
					equal = false;
			}
			else if (Object1.Skills == null ^ Object1.Skills == null )
			{
				equal = false;
			}
			if (Object1.SafeNameAddrType != null && Object2.SafeNameAddrType != null )
			{
				if (Object1.SafeNameAddrType != Object2.SafeNameAddrType)
					equal = false;
			}
			else if (Object1.SafeNameAddrType == null ^ Object1.SafeNameAddrType == null )
			{
				equal = false;
			}
			if (Object1.SafeNameAddrLocCountryRegion != null && Object2.SafeNameAddrLocCountryRegion != null )
			{
				if (Object1.SafeNameAddrLocCountryRegion != Object2.SafeNameAddrLocCountryRegion)
					equal = false;
			}
			else if (Object1.SafeNameAddrLocCountryRegion == null ^ Object1.SafeNameAddrLocCountryRegion == null )
			{
				equal = false;
			}
			if (Object1.SafeNameAddrLocState != null && Object2.SafeNameAddrLocState != null )
			{
				if (Object1.SafeNameAddrLocState != Object2.SafeNameAddrLocState)
					equal = false;
			}
			else if (Object1.SafeNameAddrLocState == null ^ Object1.SafeNameAddrLocState == null )
			{
				equal = false;
			}
			if (Object1.SafeNameAddrLocCity != null && Object2.SafeNameAddrLocCity != null )
			{
				if (Object1.SafeNameAddrLocCity != Object2.SafeNameAddrLocCity)
					equal = false;
			}
			else if (Object1.SafeNameAddrLocCity == null ^ Object1.SafeNameAddrLocCity == null )
			{
				equal = false;
			}
			if (Object1.SafeNameAddrPostalCode != null && Object2.SafeNameAddrPostalCode != null )
			{
				if (Object1.SafeNameAddrPostalCode != Object2.SafeNameAddrPostalCode)
					equal = false;
			}
			else if (Object1.SafeNameAddrPostalCode == null ^ Object1.SafeNameAddrPostalCode == null )
			{
				equal = false;
			}
			if (Object1.Email != null && Object2.Email != null )
			{
				if (Object1.Email != Object2.Email)
					equal = false;
			}
			else if (Object1.Email == null ^ Object1.Email == null )
			{
				equal = false;
			}
			if (Object1.WebSite != null && Object2.WebSite != null )
			{
				if (Object1.WebSite != Object2.WebSite)
					equal = false;
			}
			else if (Object1.WebSite == null ^ Object1.WebSite == null )
			{
				equal = false;
			}
			if (Object1.ModifiedDate != Object2.ModifiedDate)
				equal = false;
			return equal;
		}
		///<summary>
		/// Returns a value indicating whether this instance is equal to a specified object.
		///</summary>
		///<param name="toObject">An object to compare to this instance.</param>
		///<returns>true if toObject is a <see cref="VJobCandidateBase"/> and has the same value as this instance; otherwise, false.</returns>
		public virtual bool Equals(VJobCandidateBase toObject)
		{
			if (toObject == null)
				return false;
			return Equals(this, toObject);
		}
        ///<summary>
        /// Determines whether the specified <see cref="VJobCandidateBase"/> instances are considered equal.
        ///</summary>
        ///<param name="Object1">The first <see cref="VJobCandidateBase"/> to compare.</param>
        ///<param name="Object2">The second <see cref="VJobCandidateBase"/> to compare. </param>
        ///<returns>true if Object1 is the same instance as Object2 or if both are null references or if objA.Equals(objB) returns true; otherwise, false.</returns>
        public static bool Equals(VJobCandidateBase Object1, VJobCandidateBase Object2)
        {
            // both are null
            if (Object1 == null && Object2 == null)
            {
                return(true);
            }

            // one or the other is null, but not both
            if (Object1 == null ^ Object2 == null)
            {
                return(false);
            }

            bool equal = true;

            if (Object1.JobCandidateId != Object2.JobCandidateId)
            {
                equal = false;
            }
            if (Object1.EmployeeId != null && Object2.EmployeeId != null)
            {
                if (Object1.EmployeeId != Object2.EmployeeId)
                {
                    equal = false;
                }
            }
            else if (Object1.EmployeeId == null ^ Object1.EmployeeId == null)
            {
                equal = false;
            }
            if (Object1.SafeNameNamePrefix != null && Object2.SafeNameNamePrefix != null)
            {
                if (Object1.SafeNameNamePrefix != Object2.SafeNameNamePrefix)
                {
                    equal = false;
                }
            }
            else if (Object1.SafeNameNamePrefix == null ^ Object1.SafeNameNamePrefix == null)
            {
                equal = false;
            }
            if (Object1.SafeNameNameFirst != null && Object2.SafeNameNameFirst != null)
            {
                if (Object1.SafeNameNameFirst != Object2.SafeNameNameFirst)
                {
                    equal = false;
                }
            }
            else if (Object1.SafeNameNameFirst == null ^ Object1.SafeNameNameFirst == null)
            {
                equal = false;
            }
            if (Object1.SafeNameNameMiddle != null && Object2.SafeNameNameMiddle != null)
            {
                if (Object1.SafeNameNameMiddle != Object2.SafeNameNameMiddle)
                {
                    equal = false;
                }
            }
            else if (Object1.SafeNameNameMiddle == null ^ Object1.SafeNameNameMiddle == null)
            {
                equal = false;
            }
            if (Object1.SafeNameNameLast != null && Object2.SafeNameNameLast != null)
            {
                if (Object1.SafeNameNameLast != Object2.SafeNameNameLast)
                {
                    equal = false;
                }
            }
            else if (Object1.SafeNameNameLast == null ^ Object1.SafeNameNameLast == null)
            {
                equal = false;
            }
            if (Object1.SafeNameNameSuffix != null && Object2.SafeNameNameSuffix != null)
            {
                if (Object1.SafeNameNameSuffix != Object2.SafeNameNameSuffix)
                {
                    equal = false;
                }
            }
            else if (Object1.SafeNameNameSuffix == null ^ Object1.SafeNameNameSuffix == null)
            {
                equal = false;
            }
            if (Object1.Skills != null && Object2.Skills != null)
            {
                if (Object1.Skills != Object2.Skills)
                {
                    equal = false;
                }
            }
            else if (Object1.Skills == null ^ Object1.Skills == null)
            {
                equal = false;
            }
            if (Object1.SafeNameAddrType != null && Object2.SafeNameAddrType != null)
            {
                if (Object1.SafeNameAddrType != Object2.SafeNameAddrType)
                {
                    equal = false;
                }
            }
            else if (Object1.SafeNameAddrType == null ^ Object1.SafeNameAddrType == null)
            {
                equal = false;
            }
            if (Object1.SafeNameAddrLocCountryRegion != null && Object2.SafeNameAddrLocCountryRegion != null)
            {
                if (Object1.SafeNameAddrLocCountryRegion != Object2.SafeNameAddrLocCountryRegion)
                {
                    equal = false;
                }
            }
            else if (Object1.SafeNameAddrLocCountryRegion == null ^ Object1.SafeNameAddrLocCountryRegion == null)
            {
                equal = false;
            }
            if (Object1.SafeNameAddrLocState != null && Object2.SafeNameAddrLocState != null)
            {
                if (Object1.SafeNameAddrLocState != Object2.SafeNameAddrLocState)
                {
                    equal = false;
                }
            }
            else if (Object1.SafeNameAddrLocState == null ^ Object1.SafeNameAddrLocState == null)
            {
                equal = false;
            }
            if (Object1.SafeNameAddrLocCity != null && Object2.SafeNameAddrLocCity != null)
            {
                if (Object1.SafeNameAddrLocCity != Object2.SafeNameAddrLocCity)
                {
                    equal = false;
                }
            }
            else if (Object1.SafeNameAddrLocCity == null ^ Object1.SafeNameAddrLocCity == null)
            {
                equal = false;
            }
            if (Object1.SafeNameAddrPostalCode != null && Object2.SafeNameAddrPostalCode != null)
            {
                if (Object1.SafeNameAddrPostalCode != Object2.SafeNameAddrPostalCode)
                {
                    equal = false;
                }
            }
            else if (Object1.SafeNameAddrPostalCode == null ^ Object1.SafeNameAddrPostalCode == null)
            {
                equal = false;
            }
            if (Object1.Email != null && Object2.Email != null)
            {
                if (Object1.Email != Object2.Email)
                {
                    equal = false;
                }
            }
            else if (Object1.Email == null ^ Object1.Email == null)
            {
                equal = false;
            }
            if (Object1.WebSite != null && Object2.WebSite != null)
            {
                if (Object1.WebSite != Object2.WebSite)
                {
                    equal = false;
                }
            }
            else if (Object1.WebSite == null ^ Object1.WebSite == null)
            {
                equal = false;
            }
            if (Object1.ModifiedDate != Object2.ModifiedDate)
            {
                equal = false;
            }
            return(equal);
        }