///<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="VwMenuPermissionBase"/> and has the same value as this instance; otherwise, false.</returns>
 public virtual bool Equals(VwMenuPermissionBase toObject)
 {
     if (toObject == null)
     {
         return(false);
     }
     return(Equals(this, toObject));
 }
        ///<summary>
        /// Determines whether the specified <see cref="VwMenuPermissionBase"/> instances are considered equal.
        ///</summary>
        ///<param name="Object1">The first <see cref="VwMenuPermissionBase"/> to compare.</param>
        ///<param name="Object2">The second <see cref="VwMenuPermissionBase"/> 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(VwMenuPermissionBase Object1, VwMenuPermissionBase 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.MenuId != Object2.MenuId)
            {
                equal = false;
            }
            if (Object1.MenuName != null && Object2.MenuName != null)
            {
                if (Object1.MenuName != Object2.MenuName)
                {
                    equal = false;
                }
            }
            else if (Object1.MenuName == null ^ Object1.MenuName == null)
            {
                equal = false;
            }
            if (Object1.MenuStatus != Object2.MenuStatus)
            {
                equal = false;
            }
            if (Object1.PermissionId != Object2.PermissionId)
            {
                equal = false;
            }
            if (Object1.PermissionName != null && Object2.PermissionName != null)
            {
                if (Object1.PermissionName != Object2.PermissionName)
                {
                    equal = false;
                }
            }
            else if (Object1.PermissionName == null ^ Object1.PermissionName == null)
            {
                equal = false;
            }
            if (Object1.PermissionUrl != null && Object2.PermissionUrl != null)
            {
                if (Object1.PermissionUrl != Object2.PermissionUrl)
                {
                    equal = false;
                }
            }
            else if (Object1.PermissionUrl == null ^ Object1.PermissionUrl == null)
            {
                equal = false;
            }
            if (Object1.PermissionStatus != Object2.PermissionStatus)
            {
                equal = false;
            }
            if (Object1.ParentMenuId != null && Object2.ParentMenuId != null)
            {
                if (Object1.ParentMenuId != Object2.ParentMenuId)
                {
                    equal = false;
                }
            }
            else if (Object1.ParentMenuId == null ^ Object1.ParentMenuId == null)
            {
                equal = false;
            }
            if (Object1.ShowOrder != null && Object2.ShowOrder != null)
            {
                if (Object1.ShowOrder != Object2.ShowOrder)
                {
                    equal = false;
                }
            }
            else if (Object1.ShowOrder == null ^ Object1.ShowOrder == null)
            {
                equal = false;
            }
            if (Object1.PageUrl != null && Object2.PageUrl != null)
            {
                if (Object1.PageUrl != Object2.PageUrl)
                {
                    equal = false;
                }
            }
            else if (Object1.PageUrl == null ^ Object1.PageUrl == null)
            {
                equal = false;
            }
            if (Object1.HelpInfo != null && Object2.HelpInfo != null)
            {
                if (Object1.HelpInfo != Object2.HelpInfo)
                {
                    equal = false;
                }
            }
            else if (Object1.HelpInfo == null ^ Object1.HelpInfo == null)
            {
                equal = false;
            }
            return(equal);
        }